package mapper; import api.v1.Recipient; import exceptions.PoseidonException; import models.RecipientModel; import org.junit.Test; import service.OrderService; import util.InMemoryDbTest; import java.util.List; import static org.junit.Assert.*; public class RecipientMapperTest extends InMemoryDbTest { @Test public void testMappingRecipientFromModelToApi() { List<RecipientModel> recipientModels = new OrderService(fakeUser).getRecipientsForOrder(1L); assertNotNull("recipientModels", recipientModels); assertEquals("recipientModels", 1, recipientModels.size()); List<Recipient> recipients = new RecipientMapper().mapToApi(recipientModels); Recipient r = recipients.get(0); assertNotNull("recipientModel", r); assertEquals("email", r.email, recipientModels.get(0).email); } @Test public void testMappingRecipientFromApiToModel() { List<RecipientModel> recipientModels = new OrderService(fakeUser).getRecipientsForOrder(1L); assertNotNull(recipientModels); assertEquals(1, recipientModels.size()); RecipientMapper recipientMapper = new RecipientMapper(); Recipient recipient = recipientMapper.mapToApi(recipientModels.get(0)); assertNotNull(recipient); RecipientModel recipientModel = recipientMapper.mapToModel(recipient, fakeUser); assertEquals("email", recipient.email, recipientModel.email); } @Test(expected = PoseidonException.class) public void testMapInvalidRecipientIdToModel() { Recipient recipient = new Recipient(); // This recipient.id does not exist in the db, and mapping it to a model will // fail with a PoseidonException recipient.id = 1000L; recipient.email = "bjarne@example.com"; new RecipientMapper().mapToModel(recipient, fakeUser); assertTrue(true); } }