package mapper; import api.v1.Order; import models.OrderModel; import org.junit.Test; import service.OrderService; import util.InMemoryDbTest; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; public class OrderMapperTest extends InMemoryDbTest { @Test public void testMappingOrderFromModelToApi() { OrderModel orderModel = new OrderService(fakeUser).getById(1); assertNotNull(orderModel); Order order = new OrderMapper().mapToApi(orderModel); assertNotNull(order); assertEquals("met_ref", order.met_ref, orderModel.met_ref); assertEquals("custref_po_calloff", order.custref_po_calloff, orderModel.custref_po_calloff); assertEquals("custref_contractnum", order.custref_contractnum, orderModel.custref_contractnum); assertEquals("custref_email", order.custref_email, orderModel.custref_email); assertEquals("customer_name", order.customer_name, orderModel.customer_name); assertEquals("customer_email", order.customer_email, orderModel.customer_email); assertEquals("customer_phone", order.customer_phone, orderModel.customer_phone); assertEquals("start_date1", order.start_date1, orderModel.start_date1); assertEquals("start_termin1", order.start_termin1, orderModel.start_termin1); assertEquals("end_date1", order.end_date1, orderModel.end_date1); assertEquals("end_termin1", order.end_termin1, orderModel.end_termin1); assertNotNull("termins1", order.termins1); assertEquals("termins1 length", 8, order.termins1.length); assertEquals("termin 0", 0, order.termins1[0].hour); assertEquals("termin 0", false, order.termins1[0].selected); assertEquals("termin 1", 3, order.termins1[1].hour); assertEquals("termin 1", true, order.termins1[1].selected); assertEquals("termin 2", 6, order.termins1[2].hour); assertEquals("termin 2", true, order.termins1[2].selected); assertEquals("termin 3", 9, order.termins1[3].hour); assertEquals("termin 3", true, order.termins1[3].selected); assertEquals("termin 4", 12, order.termins1[4].hour); assertEquals("termin 4", false, order.termins1[4].selected); assertEquals("termin 5", 15, order.termins1[5].hour); assertEquals("termin 5", false, order.termins1[5].selected); assertEquals("termin 6", 18, order.termins1[6].hour); assertEquals("termin 6", true, order.termins1[6].selected); assertEquals("termin 7", 21, order.termins1[7].hour); assertEquals("termin 7", false, order.termins1[7].selected); assertNotNull("position null", order.position); assertNotNull("customer null", order.customer); assertEquals("customer name", order.customer.name, orderModel.customer.name); assertEquals("customer username", order.customer.username, orderModel.customer.username); assertEquals("customer password", order.customer.password, orderModel.customer.password); assertEquals("customer info", order.customer.info, orderModel.customer.info); assertEquals("position name", order.position.name, orderModel.position.name); assertEquals("position lat", order.position.dec.getLatitude(), orderModel.position.latitude, 0.0001); assertEquals("position lon", order.position.dec.getLongitude(), orderModel.position.longitude, 0.0001); assertEquals("position name", order.position.name, orderModel.position.name); assertEquals("info_for_meteorologist", order.info_for_meteorologist, orderModel.info_for_meteorologist); assertEquals("other_info", order.other_info, orderModel.other_info); assertNotNull("recipients null", order.recipients); assertEquals("recipients size", 1, order.recipients.size()); assertEquals("recipient username", "leifj@met.no", order.recipients.get(0).email); } @Test public void testMappingOrderFromApiToModel() { OrderModel orderModel = new OrderService(fakeUser).getById(1); assertNotNull(orderModel); OrderMapper orderMapper = new OrderMapper(); Order order = orderMapper.mapToApi(orderModel); assertNotNull(order); orderModel = orderMapper.mapToModel(order, orderModel, fakeUser); assertNotNull(order); assertEquals("met_ref", order.met_ref, orderModel.met_ref); assertEquals("custref_po_calloff", order.custref_po_calloff, orderModel.custref_po_calloff); assertEquals("custref_contractnum", order.custref_contractnum, orderModel.custref_contractnum); assertEquals("custref_email", order.custref_email, orderModel.custref_email); assertEquals("customer_name", order.customer_name, orderModel.customer_name); assertEquals("customer_email", order.customer_email, orderModel.customer_email); assertEquals("customer_phone", order.customer_phone, orderModel.customer_phone); assertEquals("start_date1", order.start_date1, orderModel.start_date1); assertEquals("start_termin1", order.start_termin1, orderModel.start_termin1); assertEquals("end_date1", order.end_date1, orderModel.end_date1); assertEquals("end_termin1", order.end_termin1, orderModel.end_termin1); assertEquals("start_date11", order.start_date2, orderModel.start_date2); assertEquals("start_termin1", order.start_termin2, orderModel.start_termin2); assertEquals("end_date1", order.end_date2, orderModel.end_date2); assertEquals("end_termin1", order.end_termin2, orderModel.end_termin2); assertEquals("start_date3", order.start_date3, orderModel.start_date3); assertEquals("start_termin3", order.start_termin3, orderModel.start_termin3); assertEquals("end_date3", order.end_date3, orderModel.end_date3); assertEquals("end_termin3", order.end_termin3, orderModel.end_termin3); assertNotNull("termins", orderModel.termins1); assertEquals("termins string", "3,6,9,18", orderModel.termins1); assertNotNull("customer null", orderModel.customer); assertEquals("customer name", orderModel.customer.name, order.customer.name); assertEquals("customer username", orderModel.customer.username, order.customer.username); assertEquals("customer password", orderModel.customer.password, order.customer.password); assertEquals("customer info", orderModel.customer.info, order.customer.info); assertNotNull("position null", orderModel.position); assertEquals("position name", order.position.name, orderModel.position.name); assertEquals("position lat", order.position.dec.getLatitude(), orderModel.position.latitude, 0.0001); assertEquals("position lon", order.position.dec.getLongitude(), orderModel.position.longitude, 0.0001); assertEquals("position name", order.position.name, orderModel.position.name); assertEquals("info_for_meteorologist", order.info_for_meteorologist, orderModel.info_for_meteorologist); assertEquals("other_info", order.other_info, orderModel.other_info); assertNotNull("recipients null", orderModel.recipients); assertEquals("recipients size", 1, orderModel.recipients.size()); assertEquals("recipient username", "leifj@met.no", orderModel.recipients.get(0).email); } }