package io.vivarium.net.messages; import org.junit.Test; import org.junit.experimental.categories.Category; import com.fasterxml.jackson.databind.ObjectMapper; import com.johnuckele.vtest.Tester; import io.vivarium.test.FastTest; import io.vivarium.test.UnitTest; import io.vivarium.util.UUID; import io.vivarium.util.Version; public class WorkerPledgeMessageTest { @Test @Category({ FastTest.class, UnitTest.class }) public void testSerializeDeserialize() throws Exception { ObjectMapper mapper = new ObjectMapper(); WorkerPledgeMessage pledge = new WorkerPledgeMessage(UUID.randomUUID(), new long[] { 10, 15, 20 }); String jsonEncoding = mapper.writeValueAsString(pledge); Message decodedPledge = mapper.readValue(jsonEncoding, Message.class); Tester.equal("Decoded object should be the same as the original object", pledge, decodedPledge); } @Test @Category({ FastTest.class, UnitTest.class }) public void testEqualsAndHashCode() { WorkerPledgeMessage pledge1; Message pledge2; UUID messageID = UUID.randomUUID(); UUID workerID = UUID.randomUUID(); pledge1 = new WorkerPledgeMessage(messageID, workerID, true, Version.CURRENT_VERSION, Version.FILE_FORMAT_VERSION, new long[] { 10, 15, 20 }); pledge2 = new WorkerPledgeMessage(messageID, workerID, true, Version.CURRENT_VERSION, Version.FILE_FORMAT_VERSION, new long[] { 10, 15, 20 }); Tester.equal("Two messages that are the same are equal", pledge1, pledge2); pledge1 = new WorkerPledgeMessage(UUID.randomUUID(), new long[] { 10, 15, 20 }); pledge2 = new WorkerPledgeMessage(UUID.randomUUID(), new long[] { 10, 15, 20 }); Tester.notEqual("Two messages with different workerIDs should not be equal", pledge1, pledge2); pledge1 = new WorkerPledgeMessage(UUID.randomUUID(), new long[] { 10, 15, 20 }); pledge2 = null; Tester.equal("Messages are equal to themselves", pledge1, pledge1); Tester.notEqual("Messages are not equal to null", pledge1, pledge2); Tester.notEqual("Messages are not equal to null", pledge2, pledge1); } }