package quba.service;
import models.OrderModel;
import org.joda.time.DateTime;
import org.junit.Test;
import service.PoseidonService;
import util.InMemoryDbTest;
import java.util.HashSet;
import java.util.Set;
import static org.junit.Assert.*;
public class QubaServiceTest extends InMemoryDbTest {
@Test
public void testFetchDataAgeForPosition() throws Exception {
DateTime dateTime = new DateTime(2016,1,15,0,0,PoseidonService.getTimeZone());
Integer termin = 12;
boolean exists = QubaService.qubaHasDataForPositionAndTermin("Station 2", dateTime, termin);
assertTrue("Data i quba mangler",exists);
}
@Test
public void testCopyPositions () {
QubaService service = new QubaService(fakeUser);
DateTime now = new DateTime(2016,2,12,12,0, PoseidonService.getTimeZone());
QubaService.setNow(now);
DateTime tomorrow = now.plusDays(1).withTimeAtStartOfDay();
QubaSyncSummary result = service.copyPositions();
assertNotNull("ikke noe resultat fra sync", result);
assertEquals("Uventet antall aktive ordre", 4,result.activeOrders);
assertEquals("Uventet antall synkede posisjoner",3, result.positionsSynced);
assertEquals("Uventet antall synkede posisjoner",3, result.positionsSynced);
assertEquals("Uventet antall stations ", 2,result.insertedStations);
assertEquals("Uventet antall stationprofiles ", 8,result.insertedStationProfiles);
for (OrderModel o : result.orders) {
boolean isActive = o.isInPeriod(tomorrow,1) ||
o.isInPeriod(tomorrow,2) ||
o.isInPeriod(tomorrow,3);
assertTrue(isActive);
}
}
@Test
public void testGetTerminsList() {
QubaService service = new QubaService(fakeUser);
Set<Integer> termins = new HashSet<Integer>();
termins.add(12);
termins.add(18);
String terminStr = "18,12";
assertEquals("Termin List is wrong", terminStr, service.terminsList(termins));
}
}