package quba; import models.OrderModel; import org.joda.time.DateTime; import org.junit.Test; import quba.models.QubaStation; import quba.models.QubaStationProfile; import quba.service.QubaPositionSyncer; import util.InMemoryDbTest; import java.util.List; import java.util.Set; import static org.junit.Assert.*; public class QubaPositionSyncerTest extends InMemoryDbTest { @Test public void testSyncPosition(){ QubaPositionSyncer syncer = new QubaPositionSyncer(); OrderModel orderModel = OrderModel.find.fetch("position").where().eq("id",1L).findUnique(); DateTime now = getTime(2015, 10, 7, 10, 0); QubaStation station = QubaStation.findStationByName(orderModel.position.name); assertNull("Fant stasjon som ikke skulle funnets",station); int expected = 4; Set<Integer> activeTermins = orderModel.getActiveTerminsForDayContainingTimestamp(now); assertEquals("Uventet antall terminer for angitt dag", expected,activeTermins.size()); syncer.syncPosition(orderModel.position, activeTermins); station = QubaStation.findStationByName(orderModel.position.name); assertNotNull("Fant ikke stasjon, skulle ha funnets",station); List<QubaStationProfile> profiles = QubaStationProfile.findAllProfilesForStation(station.stationid); assertNotNull("Fant ikke profiler",profiles); assertEquals("Uventet antall profiler", expected,profiles.size()); } @Test public void testMakeQubaPos() { assertEquals("Feil i konvertering til Quba posisjon", 603100, QubaPositionSyncer.makeQubaPos(60d, 30d, 55d)); assertEquals("Feil i konvertering til Quba posisjon", 51000, QubaPositionSyncer.makeQubaPos(5d, 10d, 25d)); } @Test public void testSyncPositionAddTermins(){ QubaPositionSyncer syncer = new QubaPositionSyncer(); OrderModel orderModel = OrderModel.find.fetch("position").where().eq("id",2L).findUnique(); DateTime now = getTime(2015, 11, 7, 10, 0); QubaStation station = QubaStation.findStationByName(orderModel.position.name); assertNotNull("Fant ikke stasjon",station); List<QubaStationProfile> profiles = QubaStationProfile.findAllProfilesForStation(station.stationid); assertNotNull("Fant ikke profiler",profiles); assertEquals("Uventet antall pre-eksisterende profiler", 3,profiles.size()); Set<Integer> activeTermins = orderModel.getActiveTerminsForDayContainingTimestamp(now); assertEquals("Uventet antall terminer for angitt dag",4,activeTermins.size()); syncer.syncPosition(orderModel.position, activeTermins); profiles = QubaStationProfile.findAllProfilesForStation(station.stationid); assertNotNull("Fant ikke profiler",profiles); assertEquals("Uventet antall profiler", 6,profiles.size()); } }