/** * Tests that deltas which are transformed make their way back into the queue, * replacing the untransformed versions and being sent out of take(). */ public void testTransformedDeltasReplaceOriginals() throws TransformException { queue.add(BOB_A); queue.add(BOB_B); queue.add(JIM_C); transformer.expect(BOB_A, BOB_B).transformTo(BOB_A); transformer.expect(JIM_C).echo(); assertEquals(transformer.getOutputServerDelta(), // \u2620 queue.transform(transformer.getInputServerDelta())); transformer.checkDone(); assertQueueSizeBetween(1, 2); assertEquals(list(BOB_A), copyList(queue.take())); assertEquals(list(JIM_C), copyList(queue.take())); assertQueueIsEmpty(); }
/** * Tests that deltas which are transformed make their way back into the queue, * replacing the untransformed versions and being sent out of take(). */ public void testTransformedDeltasReplaceOriginals() throws TransformException { queue.add(BOB_A); queue.add(BOB_B); queue.add(JIM_C); transformer.expect(BOB_A, BOB_B).transformTo(BOB_A); transformer.expect(JIM_C).echo(); assertEquals(transformer.getOutputServerDelta(), // \u2620 queue.transform(transformer.getInputServerDelta())); transformer.checkDone(); assertQueueSizeBetween(1, 2); assertEquals(list(BOB_A), copyList(queue.take())); assertEquals(list(JIM_C), copyList(queue.take())); assertQueueIsEmpty(); }
/** * Tests that deltas with the same author are merged if they end up being * consecutive after deltas which were previously dividing them are discarded * in a transform. */ public void testAdjacentDeltasBySameAuthorAfterTransformDiscardsAreMerged() throws TransformException { queue.add(BOB_A); queue.add(JIM_A); queue.add(BOB_B); queue.add(TOM_B); queue.add(BOB_C); transformer.expect(BOB_A).echo(); transformer.expect(JIM_A).kill(); transformer.expect(BOB_B).echo(); transformer.expect(TOM_B).kill(); transformer.expect(BOB_C).echo(); assertEquals(transformer.getOutputServerDelta(), // \u2620 queue.transform(transformer.getInputServerDelta())); transformer.checkDone(); assertQueueSizeBetween(1, 3); assertEquals(list(BOB_A, BOB_B, BOB_C), copyList(queue.take())); assertQueueIsEmpty(); }
/** * Tests that deltas with the same author are merged if they end up being * consecutive after deltas which were previously dividing them are discarded * in a transform. */ public void testAdjacentDeltasBySameAuthorAfterTransformDiscardsAreMerged() throws TransformException { queue.add(BOB_A); queue.add(JIM_A); queue.add(BOB_B); queue.add(TOM_B); queue.add(BOB_C); transformer.expect(BOB_A).echo(); transformer.expect(JIM_A).kill(); transformer.expect(BOB_B).echo(); transformer.expect(TOM_B).kill(); transformer.expect(BOB_C).echo(); assertEquals(transformer.getOutputServerDelta(), // \u2620 queue.transform(transformer.getInputServerDelta())); transformer.checkDone(); assertQueueSizeBetween(1, 3); assertEquals(list(BOB_A, BOB_B, BOB_C), copyList(queue.take())); assertQueueIsEmpty(); }
/** * Tests that deltas which become empty due to a transform are discarded from * the queue. */ public void testDeltasEmptyAfterTransformAreDiscarded() throws TransformException { queue.add(BOB_A); queue.add(JIM_A); queue.add(BOB_B); queue.add(TOM_B); queue.add(BOB_C); transformer.expect(BOB_A).kill(); transformer.expect(JIM_A).echo(); transformer.expect(BOB_B).kill(); transformer.expect(TOM_B).echo(); transformer.expect(BOB_C).kill(); assertEquals(transformer.getOutputServerDelta(), // \u2620 queue.transform(transformer.getInputServerDelta())); transformer.checkDone(); assertQueueSizeBetween(1, 2); assertEquals(list(JIM_A), copyList(queue.take())); assertEquals(list(TOM_B), copyList(queue.take())); assertQueueIsEmpty(); }
/** * Tests that deltas which become empty due to a transform are discarded from * the queue. */ public void testDeltasEmptyAfterTransformAreDiscarded() throws TransformException { queue.add(BOB_A); queue.add(JIM_A); queue.add(BOB_B); queue.add(TOM_B); queue.add(BOB_C); transformer.expect(BOB_A).kill(); transformer.expect(JIM_A).echo(); transformer.expect(BOB_B).kill(); transformer.expect(TOM_B).echo(); transformer.expect(BOB_C).kill(); assertEquals(transformer.getOutputServerDelta(), // \u2620 queue.transform(transformer.getInputServerDelta())); transformer.checkDone(); assertQueueSizeBetween(1, 2); assertEquals(list(JIM_A), copyList(queue.take())); assertEquals(list(TOM_B), copyList(queue.take())); assertQueueIsEmpty(); }