PortableErrorMessage { static PortableErrorMessage fromMessage(ErrorMessage message) { return new PortableErrorMessage(message.id, message.text); } PortableErrorMessage(String id, String text); String getId(); String getText(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }
@Test void marshal_to_json() throws IOException { String id = "c670dd37-62fb-4e86-95ed-c1f4953aaeaa"; String text = "Error message.\nDetails."; PortableErrorMessage portableErrorMessage = PortableErrorMessage.fromMessage(ErrorMessage.of(id, text)); assertThat(json.write(portableErrorMessage)).isStrictlyEqualToJson("portable-error-message.json"); }
@Test void equals_hashCode_toString() { String id = "1"; String text = "error message"; ErrorMessage message = ErrorMessage.of(id, text); PortableErrorMessage portableErrorMessage = PortableErrorMessage.fromMessage(message); assertThat(portableErrorMessage).isNotEqualTo(null) .isNotEqualTo(new PortableErrorMessage("", text)) .isNotEqualTo(new PortableErrorMessage(id, "")) .isNotEqualTo(message) .isEqualTo(portableErrorMessage) .isEqualTo(new PortableErrorMessage(id, text)) .hasSameHashCodeAs(new PortableErrorMessage(id, text)) .asString().contains(id, text); }