package dist.service;
import dist.models.*;
import models.OrderModel;
import models.OrderStatus;
import models.PositionModel;
import org.joda.time.DateTime;
import org.junit.Test;
import service.OrderService;
import service.PoseidonPropertyService;
import service.PoseidonService;
import util.InMemoryDbTest;
import static org.junit.Assert.*;
public class DistServiceTest extends InMemoryDbTest {
@Test
public void testSyncOrderImmediately() throws Exception {
DistService service = new DistService(fakeUser);
DateTime now = getTime(2015, 10, 14, 11, 6);
PoseidonService.setNow(now);
OrderModel orderModel = new OrderModel();
orderModel.start_date1 = getTime(2015,10,14,0,0).toDate();
orderModel.start_termin1 = 15;
orderModel.end_date1 = null;
orderModel.end_termin1 = null;
PositionModel position = new PositionModel();
position.name = "TestPosition";
position.latitude = 10.0;
position.longitude= 20.0;
position.save();
orderModel.position = position;
orderModel.assignStatus(now);
orderModel.save();
assertEquals("New 1", OrderStatus.ACTIVE, orderModel.orderStatus);
service.syncOrderImmediately(orderModel);
String locationName = PoseidonPropertyService.getProperty("dist.location.nameprefix") + String.valueOf(orderModel.id);
DistLocation distLocation = DistLocation.findByName(locationName);
assertNotNull("location ble ikke funnet etter sync", distLocation);
DistProduct product = DistProduct.find.byId(locationName);
assertNotNull("product ble ikke funnet etter sync", product);
DistLocationHostPK hostPk = new DistLocationHostPK();
String host1 = "c1vb1";
hostPk.host = host1;
hostPk.location = locationName;
DistLocationHost locationHost = DistLocationHost.find.byId(hostPk);
assertNotNull("locationHost ble ikke funnet etter sync", locationHost);
}
@Test
public void testSyncDistdata() throws Exception {
DistService service = new DistService(fakeUser);
DateTime now = getTime(2016, 2, 10, 11, 6);
PoseidonService.setNow(now);
DistSyncSummary syncSummary = service.syncDistdata();
assertNotNull("Uventet: syncDistData returnerte null summary",syncSummary);
assertEquals("Uventet antall slettede ordre", 8, syncSummary.deletedOrders);
assertEquals("Uventet antall synkede ordre", 4, syncSummary.syncedOrders);
}
}