@Test
public void shouldSerializeAndUnserializeAllAttributes() throws IOException, ClassNotFoundException {
HashMap<String, String> additionalData = new HashMap<>();
additionalData.put("foo", "bar");
Modification modification = new Modification("user", "comment", "foo@bar.com", new Date(), "pipe/1/stage/2", JsonHelper.toJsonString(additionalData));
modification.setPipelineLabel("label-1");
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
objectOutputStream.writeObject(modification);
ObjectInputStream inputStream1 = new ObjectInputStream(new ByteArrayInputStream(byteArrayOutputStream.toByteArray()));
Modification unserializedModification = (Modification) inputStream1.readObject();
assertThat(unserializedModification, is(modification));
assertThat(unserializedModification.getAdditionalData(), is(JsonHelper.toJsonString(additionalData)));
modification = new Modification("user", null, "foo@bar.com", new Date(), "pipe/1/stage/2", JsonHelper.toJsonString(additionalData));
byteArrayOutputStream = new ByteArrayOutputStream();
objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
objectOutputStream.writeObject(modification);
inputStream1 = new ObjectInputStream(new ByteArrayInputStream(byteArrayOutputStream.toByteArray()));
unserializedModification = (Modification) inputStream1.readObject();
assertThat(unserializedModification.getComment(), is(nullValue()));
assertThat(unserializedModification.getAdditionalData(), is(JsonHelper.toJsonString(additionalData)));
assertThat(unserializedModification, is(modification));
}