@Override public ShallowTrace getShallowTrace() { return _shallowTraceBuilder.build(); }
@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()); }
shallowBuilder.setTaskType(getTextField(traceNode, JsonTraceCodec.TRACE_TASK_TYPE)); traceMap.put(traceId, shallowBuilder.build());
@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 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 testAddRelationship() { final ShallowTraceBuilder trace1 = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("task1").setResultType(ResultType.UNFINISHED); final ShallowTraceBuilder trace2 = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("task2").setResultType(ResultType.UNFINISHED); final TraceBuilder builder = new TraceBuilder(1024, "test", 0L); builder.addRelationship(Relationship.SUCCESSOR_OF, trace1, trace2); Trace trace = builder.build(); assertEquals(trace1.build(), trace.getTraceMap().get(trace1.getId())); assertEquals(trace2.build(), trace.getTraceMap().get(trace2.getId())); assertEquals(1, trace.getRelationships().size()); assertTrue(trace.getRelationships() .contains(new TraceRelationship(trace1, trace2, Relationship.SUCCESSOR_OF))); }
@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 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 testAddRelationshipTwice() { final ShallowTraceBuilder trace1 = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("task1").setResultType(ResultType.UNFINISHED); final ShallowTraceBuilder trace2 = new ShallowTraceBuilder(IdGenerator.getNextId()).setName("task2").setResultType(ResultType.UNFINISHED); final TraceBuilder builder = new TraceBuilder(1024, "test", 0L); builder.addRelationship(Relationship.SUCCESSOR_OF, trace1, trace2); builder.addRelationship(Relationship.SUCCESSOR_OF, trace1, trace2); Trace trace = builder.build(); assertEquals(trace1.build(), trace.getTraceMap().get(trace1.getId())); assertEquals(trace2.build(), trace.getTraceMap().get(trace2.getId())); assertEquals(1, trace.getRelationships().size()); assertTrue(trace.getRelationships() .contains(new TraceRelationship(trace1, trace2, Relationship.SUCCESSOR_OF))); }
@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 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 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 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 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); }
builderCopy.setPendingNanos(234L); builderCopy.setEndNanos(345L); assertEquals(builder.build(), builderCopy.build()); builderCopy.setPendingNanos(234L); builderCopy.setEndNanos(345L); assertFalse(builder.build().equals(builderCopy.build())); builderCopy.setPendingNanos(234L); builderCopy.setEndNanos(345L); assertFalse(builder.build().equals(builderCopy.build())); builderCopy.setEndNanos(345L); builderCopy.setResultType(ResultType.ERROR); assertFalse(builder.build().equals(builderCopy.build()));
@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); }