package org.bitionaire.elbombillo.account.model; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; import io.dropwizard.jackson.Jackson; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.*; import static io.dropwizard.testing.FixtureHelpers.*; public class AccountTest { private ObjectMapper mapper; @Before public void setUpObjectMapper() { mapper = Jackson.newObjectMapper(); } @Test public void testAbbreviatedSerialization() throws Exception { final ObjectWriter objectWriter = mapper.writerWithView(AccountRepresentation.Abbreviated.class).forType(Account.class); final Account account = new Account(new Long(1), "john.doe", "John", "Doe", "john.doe@email.com"); final String expected = objectWriter.writeValueAsString(mapper.readValue(fixture("fixtures/account-abbreviated.json"), Account.class)); assertEquals(expected, objectWriter.writeValueAsString(account)); } @Test public void testCompleteSerialization() throws Exception { final ObjectWriter objectWriter = mapper.writerWithView(AccountRepresentation.Complete.class).forType(Account.class); final Account account = new Account(new Long(1), "john.doe", "John", "Doe", "john.doe@email.com"); final String expected = objectWriter.writeValueAsString(mapper.readValue(fixture("fixtures/account-complete.json"), Account.class)); assertEquals(expected, objectWriter.writeValueAsString(account)); } @Test public void testDeserialization() throws Exception { final Account account = new Account(new Long(1), "john.doe", "John", "Doe", "john.doe@email.com"); assertEquals(mapper.readValue(fixture("fixtures/account-complete.json"), Account.class), account); } }