package org.datatransferproject.types.common.models.mail; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.ImmutableList; import com.google.common.truth.Truth; import java.util.List; import org.datatransferproject.types.common.models.ContainerResource; import org.datatransferproject.types.common.models.mail.MailContainerModel; import org.datatransferproject.types.common.models.mail.MailContainerResource; import org.datatransferproject.types.common.models.mail.MailMessageModel; import org.junit.Test; public class MailContainerResourceTest { @Test public void verifySerializeDeserialize() throws Exception { ObjectMapper objectMapper = new ObjectMapper(); objectMapper.registerSubtypes(MailContainerResource.class); List<MailContainerModel> containers = ImmutableList.of( new MailContainerModel("id1", "container1"), new MailContainerModel("id2", "container2")); List<MailMessageModel> messages = ImmutableList.of( new MailMessageModel("foo", ImmutableList.of("1")), new MailMessageModel("bar", ImmutableList.of("1", "2'"))); ContainerResource data = new MailContainerResource(containers, messages); String serialized = objectMapper.writeValueAsString(data); ContainerResource deserializedModel = objectMapper.readValue(serialized, ContainerResource.class); Truth.assertThat(deserializedModel).isNotNull(); Truth.assertThat(deserializedModel).isInstanceOf(MailContainerResource.class); MailContainerResource deserialized = (MailContainerResource) deserializedModel; Truth.assertThat(deserialized.getMessages()).hasSize(2); Truth.assertThat(deserialized.getFolders()).hasSize(2); } }