@Test public void makeSureWeCanHaveNullValues() { Map<Keyword, Object> keywordMap = new HashMap<>(); keywordMap.put(Keyword.intern("type"), Keyword.intern("info")); keywordMap.put(Keyword.intern("f"), Keyword.intern(JepsenConstants.START_FUNCTION)); keywordMap.put(Keyword.intern("process"), Keyword.intern(JepsenConstants.NEMESIS_PROCESS_NAME)); keywordMap.put(Keyword.intern("time"), SOME_TIME); keywordMap.put(Keyword.intern("value"), null); Event event = Event.fromKeywordMap(keywordMap); assertThat(event).isInstanceOf(InfoEvent.class); assertThat(((InfoEvent) event).value().isPresent()).isFalse(); }
@Test public void canDeserialiseFailEventWithStacktrace() { String exceptionString = new RuntimeException("Error").toString(); Map<Keyword, Object> keywordMap = new HashMap<>(); keywordMap.put(Keyword.intern("type"), Keyword.intern("fail")); keywordMap.put(Keyword.intern("process"), SOME_PROCESS); keywordMap.put(Keyword.intern("time"), SOME_TIME); keywordMap.put(Keyword.intern("error"), exceptionString); Event event = Event.fromKeywordMap(keywordMap); FailEvent expectedEvent = ImmutableFailEvent.builder() .process(SOME_PROCESS) .time(SOME_TIME) .error(exceptionString) .build(); assertThat(event).isEqualTo(expectedEvent); }
@Test public void canDeserialiseInfoReadWithoutValue() { Map<Keyword, Object> keywordMap = new HashMap<>(); keywordMap.put(Keyword.intern("type"), Keyword.intern("info")); keywordMap.put(Keyword.intern("f"), Keyword.intern(JepsenConstants.START_FUNCTION)); keywordMap.put(Keyword.intern("process"), Keyword.intern(JepsenConstants.NEMESIS_PROCESS_NAME)); keywordMap.put(Keyword.intern("time"), SOME_TIME); Event event = Event.fromKeywordMap(keywordMap); assertThat(event).isInstanceOf(InfoEvent.class); }
@Test public void canDeserialiseInfoReadWithValue() { Map<Keyword, Object> keywordMap = new HashMap<>(); keywordMap.put(Keyword.intern("type"), Keyword.intern("info")); keywordMap.put(Keyword.intern("f"), Keyword.intern(JepsenConstants.START_FUNCTION)); keywordMap.put(Keyword.intern("process"), Keyword.intern(JepsenConstants.NEMESIS_PROCESS_NAME)); keywordMap.put(Keyword.intern("time"), SOME_TIME); keywordMap.put(Keyword.intern("value"), Keyword.intern(SOME_LONG_AS_STRING)); Event event = Event.fromKeywordMap(keywordMap); assertThat(event).isInstanceOf(InfoEvent.class); }
@Test public void canDeserialiseFailEventWithTimeoutKeyword() { Map<Keyword, Object> keywordMap = new HashMap<>(); keywordMap.put(Keyword.intern("type"), Keyword.intern("fail")); keywordMap.put(Keyword.intern("process"), SOME_PROCESS); keywordMap.put(Keyword.intern("time"), SOME_TIME); keywordMap.put(Keyword.intern("error"), Keyword.intern("timeout")); Event event = Event.fromKeywordMap(keywordMap); FailEvent expectedEvent = ImmutableFailEvent.builder() .process(SOME_PROCESS) .time(SOME_TIME) .error("timeout") .build(); assertThat(event).isEqualTo(expectedEvent); }
@Test public void canDeserialiseOkReadWithValueAsAnyString() { Map<Keyword, Object> keywordMap = new HashMap<>(); keywordMap.put(Keyword.intern("type"), Keyword.intern("ok")); keywordMap.put(Keyword.intern("f"), Keyword.intern(READ_OPERATION)); keywordMap.put(Keyword.intern("value"), SOME_STRING); keywordMap.put(Keyword.intern("process"), SOME_PROCESS); keywordMap.put(Keyword.intern("time"), SOME_TIME); Event event = Event.fromKeywordMap(keywordMap); OkEvent expectedEvent = ImmutableOkEvent.builder() .value(SOME_STRING) .process(SOME_PROCESS) .time(SOME_TIME) .function(READ_OPERATION) .build(); assertThat(event).isEqualTo(expectedEvent); }
@Test public void canDeserialiseInvokeEvent() { Map<Keyword, Object> keywordMap = new HashMap<>(); keywordMap.put(Keyword.intern("type"), Keyword.intern("invoke")); keywordMap.put(Keyword.intern("f"), Keyword.intern(READ_OPERATION)); keywordMap.put(Keyword.intern("value"), null); keywordMap.put(Keyword.intern("process"), SOME_PROCESS); keywordMap.put(Keyword.intern("time"), SOME_TIME); Event event = Event.fromKeywordMap(keywordMap); InvokeEvent expectedEvent = ImmutableInvokeEvent.builder() .process(SOME_PROCESS) .time(SOME_TIME) .function(READ_OPERATION) .build(); assertThat(event).isEqualTo(expectedEvent); }
@Test public void canDeserialiseOkReadWithValueAsLong() { Map<Keyword, Object> keywordMap = new HashMap<>(); keywordMap.put(Keyword.intern("type"), Keyword.intern("ok")); keywordMap.put(Keyword.intern("f"), Keyword.intern(READ_OPERATION)); keywordMap.put(Keyword.intern("value"), SOME_LONG); keywordMap.put(Keyword.intern("process"), SOME_PROCESS); keywordMap.put(Keyword.intern("time"), SOME_TIME); Event event = Event.fromKeywordMap(keywordMap); OkEvent expectedEvent = ImmutableOkEvent.builder() .value(SOME_LONG.toString()) .process(SOME_PROCESS) .time(SOME_TIME) .function(READ_OPERATION) .build(); assertThat(event).isEqualTo(expectedEvent); }
@Test public void canDeserialiseOkReadWhenValueIsMissing() { Map<Keyword, Object> keywordMap = new HashMap<>(); keywordMap.put(Keyword.intern("type"), Keyword.intern("ok")); keywordMap.put(Keyword.intern("f"), Keyword.intern(READ_OPERATION)); keywordMap.put(Keyword.intern("process"), SOME_PROCESS); keywordMap.put(Keyword.intern("time"), SOME_TIME); Event event = Event.fromKeywordMap(keywordMap); OkEvent expectedEvent = ImmutableOkEvent.builder() .process(SOME_PROCESS) .time(SOME_TIME) .value(null) .function(READ_OPERATION) .build(); assertThat(event).isEqualTo(expectedEvent); }
@Test public void canDeserialiseOkReadWithValueAsStringOfLong() { Map<Keyword, Object> keywordMap = new HashMap<>(); keywordMap.put(Keyword.intern("type"), Keyword.intern("ok")); keywordMap.put(Keyword.intern("f"), Keyword.intern(READ_OPERATION)); keywordMap.put(Keyword.intern("value"), SOME_LONG_AS_STRING); keywordMap.put(Keyword.intern("process"), SOME_PROCESS); keywordMap.put(Keyword.intern("time"), SOME_TIME); Event event = Event.fromKeywordMap(keywordMap); OkEvent expectedEvent = ImmutableOkEvent.builder() .value(SOME_LONG_AS_STRING) .process(SOME_PROCESS) .time(SOME_TIME) .function(READ_OPERATION) .build(); assertThat(event).isEqualTo(expectedEvent); }
@Test public void canDeserialiseOkReadWithNullValue() { Map<Keyword, Object> keywordMap = new HashMap<>(); keywordMap.put(Keyword.intern("type"), Keyword.intern("ok")); keywordMap.put(Keyword.intern("f"), Keyword.intern(READ_OPERATION)); keywordMap.put(Keyword.intern("value"), null); keywordMap.put(Keyword.intern("process"), SOME_PROCESS); keywordMap.put(Keyword.intern("time"), SOME_TIME); Event event = Event.fromKeywordMap(keywordMap); OkEvent expectedEvent = ImmutableOkEvent.builder() .value(null) .process(SOME_PROCESS) .time(SOME_TIME) .function(READ_OPERATION) .build(); assertThat(event).isEqualTo(expectedEvent); }