package org.ulyssis.ipp.snapshot; import org.junit.Test; import org.ulyssis.ipp.control.commands.Command; import org.ulyssis.ipp.control.commands.SetStatusMessageCommand; import org.ulyssis.ipp.utils.Serialization; import java.time.Instant; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; public class TestEvents { @Test public void testSerializeMessageCommand() throws Exception { String msg = "My status message"; SetStatusMessageCommand cmd = new SetStatusMessageCommand(Instant.EPOCH, msg); byte[] b = Serialization.getJsonMapper().writeValueAsBytes(cmd); SetStatusMessageCommand cmdAfter = (SetStatusMessageCommand)Serialization.getJsonMapper().readValue(b, Command.class); assertThat(cmdAfter.getMessage(), equalTo(msg)); assertThat(cmdAfter.getTime(), equalTo(Instant.EPOCH)); } @Test public void testSerializeMessageEvent() throws Exception { String msg = "My status message"; MessageEvent event = new MessageEvent(Instant.EPOCH, msg); byte[] b = Serialization.getJsonMapper().writeValueAsBytes(event); MessageEvent eventAfter = (MessageEvent)Serialization.getJsonMapper().readValue(b, Event.class); assertThat(eventAfter.getMessage(), equalTo(msg)); assertThat(eventAfter.getTime(), equalTo(Instant.EPOCH)); } @Test public void testMessageEventFromCommand() throws Exception { String msg = "My status message"; SetStatusMessageCommand cmd = new SetStatusMessageCommand(Instant.EPOCH, msg); MessageEvent event = MessageEvent.fromCommand(cmd); assertThat(event.getMessage(), equalTo(cmd.getMessage())); assertThat(event.getTime(), equalTo(cmd.getTime())); assertThat(event.getMessage(), equalTo(msg)); assertThat(event.getTime(), equalTo(Instant.EPOCH)); } }