package models; import org.joda.time.DateTime; import org.junit.Test; import util.InMemoryDbTest; import java.util.Date; import java.util.HashSet; import java.util.Set; import static org.junit.Assert.*; public class OrderModelTest extends InMemoryDbTest { @Test public void testAssignStatus(){ DateTime now = getTime(2015, 10, 14, 11, 6); OrderModel model = new OrderModel(); //=========No start date -> Dormant ========================================== model.start_date1 = null; model.start_date1 = null ; model.start_termin1 = null; model.end_termin1 = null; model.assignStatus(now); assertEquals("Dormant", OrderStatus.DORMANT, model.orderStatus); //=========Start date after now -> New ========================================== model.start_date1 = getTime(2015,11,1,12,0).toDate(); model.assignStatus(now); assertEquals("New", OrderStatus.NEW, model.orderStatus); //==========Now between start and end -> Active ========================================= model.start_date1 = getTime(2015,10,1,12,0).toDate(); model.end_date1 = getTime(2015,12,1,12,0).toDate(); model.assignStatus(now); assertEquals("Active", OrderStatus.ACTIVE, model.orderStatus); //=============Now after end -> Expired ====================================== model.end_date1 = getTime(2015,10,2,12,0).toDate(); model.assignStatus(now); assertEquals("Expired", OrderStatus.EXPIRED, model.orderStatus); } @Test public void testStatusDeleted(){ DateTime now = getTime(2015, 10, 14, 11, 6); OrderModel model = new OrderModel(); //=========No start date -> Dormant ========================================== model.start_date1 = null; model.start_date1 = null ; model.start_termin1 = null; model.end_termin1 = null; model.deleted = new Date(); model.assignStatus(now); assertEquals("Dormant but deleted", OrderStatus.DELETED, model.orderStatus); //=========Start date after now -> New ========================================== model.start_date1 = getTime(2015,11,1,12,0).toDate(); model.assignStatus(now); assertEquals("New but deleted", OrderStatus.DELETED, model.orderStatus); //==========Now between start and end -> Active ========================================= model.start_date1 = getTime(2015,10,1,12,0).toDate(); model.end_date1 = getTime(2015,12,1,12,0).toDate(); model.assignStatus(now); assertEquals("Active but deleted", OrderStatus.DELETED, model.orderStatus); //=============Now after end -> Expired ====================================== model.end_date1 = getTime(2015,10,2,12,0).toDate(); model.assignStatus(now); assertEquals("Expired but deleted", OrderStatus.DELETED, model.orderStatus); } @Test public void testAssignStatusSameDay(){ DateTime yesterday = getTime(2015, 10, 13, 11, 6); DateTime now = getTime(2015, 10, 14, 11, 6); DateTime tomorrow = getTime(2015, 10, 15, 11, 6); OrderModel model = new OrderModel(); //================================== model.start_date1 = getTime(2015,10,14,0,0).toDate(); model.start_termin1 = 18; model.end_date1 = null; model.end_termin1 = null; model.assignStatus(yesterday); assertEquals("New 1 yesterday", OrderStatus.NEW, model.orderStatus); model.assignStatus(now); assertEquals("Active 1 today", OrderStatus.ACTIVE, model.orderStatus); //======== Start date = after now -> New =========================== model.start_date1 = getTime(2015,10,14,0,0).toDate(); model.start_termin1 = 12; model.end_date1= getTime(2015,10,14,0,0).toDate(); model.end_termin1= null; model.assignStatus(yesterday); assertEquals("New 2", OrderStatus.NEW, model.orderStatus); // start date today -> active model.assignStatus(now); assertEquals("Active 2", OrderStatus.ACTIVE, model.orderStatus); //======= now between Start date and end date -> Active ========= model.start_date1 = getTime(2015,10,14).toDate(); model.start_termin1 = 3; model.end_date1= getTime(2015,10,14).toDate(); model.end_termin1= null; model.assignStatus(now); assertEquals("Active 1", OrderStatus.ACTIVE, model.orderStatus); //======= now between Start date and end date -> Active ========= model.start_date1 = getTime(2015,10,14).toDate(); model.start_termin1 = 3; model.end_date1 = getTime(2015,10,14).toDate(); model.end_termin1 = 21; model.assignStatus(now); assertEquals("Active 2", OrderStatus.ACTIVE, model.orderStatus); //===========End date before now -> Expired ======================================== model.start_date1 = getTime(2015,10,14).toDate(); model.start_termin1 = 3; model.end_date1 = getTime(2015,10,14).toDate(); model.end_termin1 = 6; model.assignStatus(tomorrow); assertEquals("Expired", OrderStatus.EXPIRED, model.orderStatus); } @Test public void testAssignStatusDormant() { DateTime now = getTime(2015, 10, 14, 11, 6); OrderModel model = new OrderModel(); //========== No start, but end specified -> Dormant ======================== model.start_date1 = null; model.end_date1 = getTime(2015, 10, 14, 0, 0).toDate(); model.assignStatus(now); assertEquals("New Dormant", OrderStatus.DORMANT, model.orderStatus); } @Test public void testAddTaskOrder(){ DateTime now = getTime(2015, 10, 14, 11, 6); CustomerModel customerModel = CustomerModel.find.byId(1L); OrderModel model = new OrderModel(); model.met_ref = "Gjøremål1"; model.customer = customerModel; model.position = null; // no position model.taskDescription = "Test 123"; model.save(); OrderModel model1 = OrderModel.findByMetref("Gjøremål1"); assertNotNull("Fant ikke bestilling", model1); assertNull("Posisjon er ikke null", model1.position); assertNotNull("Kunde er null",model1.customer); } @Test public void testGetTermin() { DateTime now = getTime(2015, 10, 14, 11, 6); OrderModel model = new OrderModel(); Set<Integer> termins = new HashSet<Integer>(); termins.add(6); termins.add(18); assertEquals("Parsing of termins are wrong", termins, model.parseTermins("6,18,")); } }