use of io.georocket.util.io.BufferWriteStream in project georocket by georocket.
the class AllSameStrategyTest method mergeUninitialized.
/**
* Test if chunks that have not been passed to the initalize method can be merged
* @param context the test context
*/
@Test
public void mergeUninitialized(TestContext context) {
Async async = context.async();
MergeStrategy strategy = new AllSameStrategy();
BufferWriteStream bws = new BufferWriteStream();
strategy.init(cm).flatMap(v -> strategy.merge(new DelegateChunkReadStream(chunk1), cm, bws)).flatMap(v -> strategy.merge(new DelegateChunkReadStream(chunk2), cm, bws)).doOnNext(v -> strategy.finish(bws)).subscribe(v -> {
context.assertEquals(XMLHEADER + "<root><test chunk=\"1\"></test><test chunk=\"2\"></test></root>", bws.getBuffer().toString("utf-8"));
async.complete();
}, context::fail);
}
use of io.georocket.util.io.BufferWriteStream in project georocket by georocket.
the class AllSameStrategyTest method simple.
/**
* Test a simple merge
* @param context the test context
*/
@Test
public void simple(TestContext context) {
Async async = context.async();
MergeStrategy strategy = new AllSameStrategy();
BufferWriteStream bws = new BufferWriteStream();
strategy.init(cm).flatMap(v -> strategy.init(cm)).flatMap(v -> strategy.merge(new DelegateChunkReadStream(chunk1), cm, bws)).flatMap(v -> strategy.merge(new DelegateChunkReadStream(chunk2), cm, bws)).doOnNext(v -> strategy.finish(bws)).subscribe(v -> {
context.assertEquals(XMLHEADER + "<root><test chunk=\"1\"></test><test chunk=\"2\"></test></root>", bws.getBuffer().toString("utf-8"));
async.complete();
}, context::fail);
}
use of io.georocket.util.io.BufferWriteStream in project georocket by georocket.
the class XMLMergerTest method doMerge.
private void doMerge(TestContext context, Observable<Buffer> chunks, Observable<XMLChunkMeta> metas, String xmlContents) {
XMLMerger m = new XMLMerger();
BufferWriteStream bws = new BufferWriteStream();
Async async = context.async();
metas.flatMap(meta -> m.init(meta).map(v -> meta)).toList().flatMap(l -> chunks.map(DelegateChunkReadStream::new).<XMLChunkMeta, Pair<ChunkReadStream, XMLChunkMeta>>zipWith(l, Pair::of)).flatMap(p -> m.merge(p.getLeft(), p.getRight(), bws)).last().subscribe(v -> {
m.finish(bws);
context.assertEquals(XMLHEADER + xmlContents, bws.getBuffer().toString("utf-8"));
async.complete();
}, err -> {
context.fail(err);
});
}
use of io.georocket.util.io.BufferWriteStream in project georocket by georocket.
the class MultiMergerTest method doMerge.
private void doMerge(TestContext context, Observable<Buffer> chunks, Observable<ChunkMeta> metas, String jsonContents) {
MultiMerger m = new MultiMerger();
BufferWriteStream bws = new BufferWriteStream();
Async async = context.async();
metas.flatMap(meta -> m.init(meta).map(v -> meta)).toList().flatMap(l -> chunks.map(DelegateChunkReadStream::new).<ChunkMeta, Pair<ChunkReadStream, ChunkMeta>>zipWith(l, Pair::of)).flatMap(p -> m.merge(p.getLeft(), p.getRight(), bws)).last().subscribe(v -> {
m.finish(bws);
context.assertEquals(jsonContents, bws.getBuffer().toString("utf-8"));
async.complete();
}, err -> {
context.fail(err);
});
}
use of io.georocket.util.io.BufferWriteStream in project georocket by georocket.
the class MergeNamespacesStrategyTest method simple.
/**
* Test a simple merge
* @param context the test context
*/
@Test
public void simple(TestContext context) {
Async async = context.async();
MergeStrategy strategy = new MergeNamespacesStrategy();
BufferWriteStream bws = new BufferWriteStream();
strategy.init(META1).flatMap(v -> strategy.init(META2)).flatMap(v -> strategy.merge(new DelegateChunkReadStream(CHUNK1), META1, bws)).flatMap(v -> strategy.merge(new DelegateChunkReadStream(CHUNK2), META2, bws)).doOnNext(v -> strategy.finish(bws)).subscribe(v -> {
context.assertEquals(XMLHEADER + EXPECTEDROOT + CONTENTS1 + CONTENTS2 + "</" + EXPECTEDROOT.getName() + ">", bws.getBuffer().toString("utf-8"));
async.complete();
}, context::fail);
}
Aggregations