@Test
public void testToAndFromBinary() throws NotSerializableException {

    SimpleReplicatedLogEntry expected = new SimpleReplicatedLogEntry(0, 1,
            new MockRaftActorContext.MockPayload("A"));
    final ExtendedActorSystem system = (ExtendedActorSystem) ExtendedActorSystem.create("test");
    final Object deserialized;
    try {
        final SimpleReplicatedLogEntrySerializer serializer = new SimpleReplicatedLogEntrySerializer(system);
        final byte[] bytes = serializer.toBinary(expected);
        deserialized = serializer.fromBinary(bytes, SimpleReplicatedLogEntry.class);
    } finally {
        TestKit.shutdownActorSystem(system);
    }
    assertNotNull("fromBinary returned null", deserialized);
    assertEquals("fromBinary return type", SimpleReplicatedLogEntry.class, deserialized.getClass());
    SimpleReplicatedLogEntry actual = (SimpleReplicatedLogEntry)deserialized;
    assertEquals("getTerm", expected.getTerm(), actual.getTerm());
    assertEquals("getIndex", expected.getIndex(), actual.getIndex());
    assertEquals("getData", expected.getData(), actual.getData());
}