@Test public void testSizeOverflow() { BatchBuilder<Integer, String> builder = new BatchBuilder<>(Integer.MAX_VALUE, new BatchAggregationTimeMetric()); assertTrue(builder.add(0, new ShallowTraceBuilder(0L), new BatchPromise<>(), Integer.MAX_VALUE - 3)); assertTrue(builder.add(1, new ShallowTraceBuilder(0L), new BatchPromise<>(), 1)); assertTrue(builder.add(2, new ShallowTraceBuilder(0L), new BatchPromise<>(), 1)); assertTrue(builder.add(3, new ShallowTraceBuilder(0L), new BatchPromise<>(), 1)); assertFalse(builder.add(4, new ShallowTraceBuilder(0L), new BatchPromise<>(), 1)); }
@Test public void testOverflowAfterFull() { BatchBuilder<Integer, String> builder = new BatchBuilder<>(10, new BatchAggregationTimeMetric()); assertTrue(builder.add(0, new ShallowTraceBuilder(0L), new BatchPromise<>(), 3)); assertTrue(builder.add(1, new ShallowTraceBuilder(1L), new BatchPromise<>(), 3)); assertTrue(builder.add(2, new ShallowTraceBuilder(2L), new BatchPromise<>(), 4)); assertFalse(builder.add(3, new ShallowTraceBuilder(3L), new BatchPromise<>(), 3)); }
@Test public void testOverflow() { BatchBuilder<Integer, String> builder = new BatchBuilder<>(10, new BatchAggregationTimeMetric()); assertTrue(builder.add(0, new ShallowTraceBuilder(0L), new BatchPromise<>(), 3)); assertTrue(builder.add(1, new ShallowTraceBuilder(1L), new BatchPromise<>(), 3)); assertTrue(builder.add(2, new ShallowTraceBuilder(2L), new BatchPromise<>(), 3)); assertFalse(builder.add(3, new ShallowTraceBuilder(3L), new BatchPromise<>(), 3)); }
@Test public void testNoOverflowOnEmptyBuilder() { BatchBuilder<Integer, String> builder = new BatchBuilder<>(10, new BatchAggregationTimeMetric()); assertTrue(builder.add(0, new ShallowTraceBuilder(0L), new BatchPromise<>(), 100)); assertFalse(builder.add(1, new ShallowTraceBuilder(0L), new BatchPromise<>(), 1)); }
public void createSurrogate() { if (_surrogate == null) { _surrogate = new ShallowTraceBuilder(IdGenerator.getNextId()); _surrogate.setName(_desc); ShallowTraceBuilder parentShallowTraceBuilder = _parent.getShallowTraceBuilder(); _surrogate.setHidden(parentShallowTraceBuilder.getHidden()); _surrogate.setSystemHidden(parentShallowTraceBuilder.getSystemHidden()); parentShallowTraceBuilder.setName("fused").setSystemHidden(true); } } }
@Test public void testUninishedWithValue() { final ShallowTraceBuilder builder = new ShallowTraceBuilder(IdGenerator.getNextId()); builder.setName("test"); builder.setResultType(ResultType.UNFINISHED); builder.setValue("non-null-value"); try { builder.build(); fail("Expected IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected case } }
@Test public void testEarlyFinishWithValue() { final ShallowTraceBuilder builder = new ShallowTraceBuilder(IdGenerator.getNextId()); builder.setName("test"); builder.setResultType(ResultType.EARLY_FINISH); builder.setValue("non-null-value"); try { builder.build(); fail("Expected IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected case } }
@Test public void testCopyconstructor() { final ShallowTraceBuilder builder = new ShallowTraceBuilder(IdGenerator.getNextId()); builder.setName("test"); builder.setResultType(ResultType.SUCCESS); builder.setValue("value"); builder.setStartNanos(123L); builder.setPendingNanos(234L); builder.setEndNanos(345L); builder.addAttribute("test", "value"); final ShallowTraceBuilder copied = new ShallowTraceBuilder(builder.build()); assertEquals(builder.build(), copied.build()); }
@Test public void testReversibleUnstartedTrace() throws IOException { final ShallowTraceBuilder test = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("test").setResultType(ResultType.UNFINISHED) .setTaskType(TaskType.FUSION.getName()); final Trace trace = Trace.single(test.build(), "test", 0L); assertReversible(trace); }
@Test public void testReversibleSuccessfulTraceWithNullValue() throws IOException { final ShallowTraceBuilder test = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("test") .setResultType(ResultType.SUCCESS).setStartNanos(0L).setPendingNanos(50L).setEndNanos(100L); final Trace trace = Trace.single(test.build(), "test", 0L); assertReversible(trace); }
@Test public void testReversibleUnfinishedTrace() throws IOException { // If we have started a task we also must set the end time final ShallowTraceBuilder test = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("test") .setResultType(ResultType.UNFINISHED).setStartNanos(0L).setPendingNanos(50L).setEndNanos(100L); final Trace trace = Trace.single(test.build(), "test", 0L); assertReversible(trace); }
@Test public void testReversibleErrorTrace() throws IOException { // If we have started a task we also must set the end time final ShallowTraceBuilder test = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("test").setResultType(ResultType.ERROR) .setValue("error value").setStartNanos(0L).setPendingNanos(50L).setEndNanos(100L); final Trace trace = Trace.single(test.build(), "test", 0L); assertReversible(trace); }
@Test public void testReversibleWithSingleAttributes() throws IOException { final ShallowTraceBuilder test = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("test").setResultType(ResultType.SUCCESS) .setStartNanos(0L).setPendingNanos(50L).addAttribute("key1", "value1").setEndNanos(100L); final Trace trace = Trace.single(test.build(), "test", 0L); assertReversible(trace); }
@Test public void testReversibleSuccessfulTrace() throws IOException { final ShallowTraceBuilder test = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("test").setResultType(ResultType.SUCCESS) .setValue("test value").setStartNanos(0L).setPendingNanos(50L).setEndNanos(100L); final Trace trace = Trace.single(test.build(), "test", 0L); assertReversible(trace); }
@Test public void testReversibleWithHiddenTrace() throws IOException { final ShallowTraceBuilder test = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("test").setResultType(ResultType.SUCCESS) .setValue("test value").setStartNanos(0L).setPendingNanos(50L).setHidden(true).setEndNanos(100L); final Trace trace = Trace.single(test.build(), "test", 0L); assertReversible(trace); }
@Test public void testReversibleTraceWithPredecessor() throws IOException { final ShallowTraceBuilder predecessor = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("predecessor").setResultType(ResultType.SUCCESS) .setValue("predecessor value").setStartNanos(0L).setPendingNanos(100L).setEndNanos(200L); final ShallowTraceBuilder successor = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("successor").setResultType(ResultType.SUCCESS) .setValue("successor value").setStartNanos(50L).setPendingNanos(75L).setEndNanos(100L); final TraceBuilder builder = new TraceBuilder(1024, "test", 0L); builder.addRelationship(Relationship.SUCCESSOR_OF, successor, predecessor); Trace trace = builder.build(); assertReversible(trace); }
@Test public void testWithDupAttributes() throws IOException { final ShallowTraceBuilder test = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("test") .setResultType(ResultType.SUCCESS).setStartNanos(0L).setPendingNanos(50L).addAttribute("key1", "value1") .addAttribute("key2", "value2").addAttribute("key2", "value3").setEndNanos(100L); final Trace trace = Trace.single(test.build(), "test", 0L); assertReversible(trace); }
@Test public void testWithNonExistingRemoveAttributes() throws IOException { final ShallowTraceBuilder test = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("test") .setResultType(ResultType.SUCCESS).setStartNanos(0L).setPendingNanos(50L).removeAttribute("key1") .removeAttribute("key2").removeAttribute("key3").setEndNanos(100L); final Trace trace = Trace.single(test.build(), "test", 0L); assertReversible(trace); }
@Test public void testReversibleWithMultipleAttributes() throws IOException { final ShallowTraceBuilder test = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("test") .setResultType(ResultType.SUCCESS).setStartNanos(0L).setPendingNanos(50L).addAttribute("key1", "value1") .addAttribute("key2", "value2").addAttribute("key3", "value3").setEndNanos(100L); final Trace trace = Trace.single(test.build(), "test", 0L); assertReversible(trace); }
@Test public void testReversibleWithRemoveAttributes() throws IOException { final ShallowTraceBuilder test = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("test") .setResultType(ResultType.SUCCESS).setStartNanos(0L).setPendingNanos(50L).addAttribute("key1", "value1") .addAttribute("key2", "value2").addAttribute("key3", "value3").removeAttribute("key1").removeAttribute("key2") .removeAttribute("key3").setEndNanos(100L); final Trace trace = Trace.single(test.build(), "test", 0L); assertReversible(trace); }