Search in sources :

Example 1 with DummyDeserializer

use of com.nextdoor.bender.testutils.DummyDeserializerHelper.DummyDeserializer in project bender by Nextdoor.

the class DeserializerProcessorTest method testOnUnexpectedError.

@Test(expected = RuntimeException.class)
public void testOnUnexpectedError() {
    DummyDeserializer mockDeser = mock(DummyDeserializer.class);
    when(mockDeser.deserialize("foo")).thenThrow(new RuntimeException("unexpected"));
    DeserializerProcessor deser = new DeserializerProcessor(mockDeser);
    /*
     * Mock the Stat object
     */
    Stat runtimeStat = mock(Stat.class);
    Stat successStat = mock(Stat.class);
    Stat errorStat = mock(Stat.class);
    deser.setRuntimeStat(runtimeStat);
    deser.setSuccessCountStat(successStat);
    deser.setErrorCountStat(errorStat);
    try {
        deser.deserialize("foo");
    } catch (DeserializationException e) {
    // expected
    }
}
Also used : DummyDeserializer(com.nextdoor.bender.testutils.DummyDeserializerHelper.DummyDeserializer) Stat(com.nextdoor.bender.monitoring.Stat) Test(org.junit.Test)

Example 2 with DummyDeserializer

use of com.nextdoor.bender.testutils.DummyDeserializerHelper.DummyDeserializer in project bender by Nextdoor.

the class DeserializerProcessorTest method testStatsLoggingOnError.

@Test
public void testStatsLoggingOnError() {
    DummyDeserializer mockDeser = mock(DummyDeserializer.class);
    when(mockDeser.deserialize("foo")).thenThrow(new DeserializationException(new RuntimeException("expected")));
    DeserializerProcessor deser = new DeserializerProcessor(mockDeser);
    /*
     * Mock the Stat object
     */
    Stat runtimeStat = mock(Stat.class);
    Stat successStat = mock(Stat.class);
    Stat errorStat = mock(Stat.class);
    deser.setRuntimeStat(runtimeStat);
    deser.setSuccessCountStat(successStat);
    deser.setErrorCountStat(errorStat);
    try {
        deser.deserialize("foo");
    } catch (DeserializationException e) {
    // expected
    }
    /*
     * Verify start, stop are called, increment error count and never increment success count.
     */
    verify(runtimeStat, times(1)).start();
    verify(runtimeStat, times(1)).stop();
    verify(successStat, never()).increment();
    verify(errorStat, times(1)).increment();
}
Also used : DummyDeserializer(com.nextdoor.bender.testutils.DummyDeserializerHelper.DummyDeserializer) Stat(com.nextdoor.bender.monitoring.Stat) Test(org.junit.Test)

Example 3 with DummyDeserializer

use of com.nextdoor.bender.testutils.DummyDeserializerHelper.DummyDeserializer in project bender by Nextdoor.

the class DeserializerProcessorTest method testStatsLogging.

@Test
public void testStatsLogging() throws InstantiationException, IllegalAccessException {
    DeserializerProcessor deser = new DeserializerProcessor(new DummyDeserializer());
    /*
     * Mock the Stat object
     */
    Stat runtimeStat = mock(Stat.class);
    Stat successStat = mock(Stat.class);
    Stat errorStat = mock(Stat.class);
    deser.setRuntimeStat(runtimeStat);
    deser.setSuccessCountStat(successStat);
    deser.setErrorCountStat(errorStat);
    deser.deserialize("foo");
    /*
     * Verify start, stop, increment success count, and never increment error count.
     */
    verify(runtimeStat, times(1)).start();
    verify(runtimeStat, times(1)).stop();
    verify(successStat, times(1)).increment();
    verify(errorStat, never()).increment();
}
Also used : DummyDeserializer(com.nextdoor.bender.testutils.DummyDeserializerHelper.DummyDeserializer) Stat(com.nextdoor.bender.monitoring.Stat) Test(org.junit.Test)

Aggregations

Stat (com.nextdoor.bender.monitoring.Stat)3 DummyDeserializer (com.nextdoor.bender.testutils.DummyDeserializerHelper.DummyDeserializer)3 Test (org.junit.Test)3