package quba.service;
import org.joda.time.DateTime;
import org.junit.Test;
import quba.models.QubaStation;
import quba.models.QubaSubjective;
import quba.service.QubaWindWarningFetcher;
import service.PoseidonService;
import util.InMemoryDbTest;
import java.util.List;
import static org.junit.Assert.*;
public class QubaWindWarningFetcherTest extends InMemoryDbTest {
@Test
public void testFetchWarning() throws Exception {
QubaWindWarningFetcher fetcher = new QubaWindWarningFetcher();
String position_name = "Gullfaks";
DateTime date = new DateTime(2016,2,25,0,0, PoseidonService.getTimeZone());
Integer termin = 15;
boolean warning = fetcher.fetchWarning(position_name,date,termin);
assertTrue(warning);
date = new DateTime(2016,1,10,0,0, PoseidonService.getTimeZone());
termin = 6;
warning = fetcher.fetchWarning(position_name,date,termin);
assertFalse(warning);
}
@Test
public void testGetWindValues() throws Exception {
QubaWindWarningFetcher fetcher = new QubaWindWarningFetcher();
String position_name = "Station 1";
QubaStation station = QubaStation.findStationByName(position_name);
assertNotNull(station);
DateTime date = new DateTime(2016,1,15,0,0, PoseidonService.getTimeZone());
Integer termin = 6;
List<QubaSubjective> windValues = fetcher.getWindValues(position_name, date, termin);
assertNotNull("Ingen vind-verdier funnet i quba", windValues);
}
@Test
public void testHasStrongWinds() throws Exception {
QubaWindWarningFetcher fetcher = new QubaWindWarningFetcher();
String position_name = "Gullfaks";
QubaStation station = QubaStation.findStationByName(position_name);
assertNotNull(station);
Integer termin = 15;
DateTime date = new DateTime(2016, 2, 25, 0, 0, PoseidonService.getTimeZone()).withHourOfDay(termin);
DateTime endOfWindow = date.plusHours(48);
List<QubaSubjective> windValues = fetcher.getWindValues(position_name, date, termin);
assertTrue("Liste over vindverdier har ingen over grensen", fetcher.hasStrongWinds(windValues,endOfWindow));
}
}