/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.freedomotic.plugins.devices.twilight;
import com.freedomotic.events.GenericEvent;
import com.freedomotic.plugins.devices.twilight.providers.EarthToolsWI;
import com.freedomotic.plugins.devices.twilight.providers.OpenWeatherMapWI;
import org.joda.time.DateTime;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
/**
*
* @author Matteo Mazzoni <matteo@bestmazzo.it>
*/
public class TwilightTest {
private static TwilightUtils twu;
private static WeatherInfo provider;
private static WeatherInfo provider_alt;
@BeforeClass
public static void setUpClass() throws Exception {
provider = new OpenWeatherMapWI("43.567", "11.021");
provider_alt = new EarthToolsWI("43.567", "11.021");
twu = new TwilightUtils(10000, provider);
}
@Test
public void updateTest() throws Exception{
provider.updateData();
System.out.println(provider.getClass().getCanonicalName() + " Sunrise: " + provider.getNextSunrise().toString() +" - Sunset: "+ provider.getNextSunset() );
provider_alt.updateData();
System.out.println(provider_alt.getClass().getCanonicalName() + " Sunrise: " + provider_alt.getNextSunrise().toString() +" - Sunset: "+ provider_alt.getNextSunset() );
}
@Test
public void NoonTest() {
provider.setNextSunrise(new DateTime(2013, 11, 20, 5, 0));
provider.setNextSunset(new DateTime(2013, 11, 20, 17, 0));
DateTime noon = new DateTime(2013, 11, 21, 12, 0);
//System.out.println(provider.getNextSunrise().toString() +" - "+ provider.getNextSunset() +" - "+ noon);
GenericEvent twAtNoon = twu.prepareEvent(noon);
Assert.assertEquals("300", twAtNoon.getProperty("beforeSunset"));
Assert.assertEquals("", twAtNoon.getProperty("afterSunset"));
Assert.assertEquals("", twAtNoon.getProperty("isSunset"));
Assert.assertEquals("", twAtNoon.getProperty("isSunrise"));
Assert.assertEquals("420", twAtNoon.getProperty("afterSunrise"));
Assert.assertEquals("", twAtNoon.getProperty("beforeSunrise"));
noon = new DateTime(2013, 11, 21, 12, 1);
// System.out.println(provider.getNextSunrise().toString() +" - "+ provider.getNextSunset() +" - "+ noon);
twAtNoon = twu.prepareEvent(noon);
Assert.assertEquals("299", twAtNoon.getProperty("beforeSunset"));
Assert.assertEquals("", twAtNoon.getProperty("afterSunset"));
Assert.assertEquals("", twAtNoon.getProperty("isSunset"));
Assert.assertEquals("", twAtNoon.getProperty("isSunrise"));
Assert.assertEquals("421", twAtNoon.getProperty("afterSunrise"));
Assert.assertEquals("", twAtNoon.getProperty("beforeSunrise"));
}
@Test
public void MidnightTest() {
provider.setNextSunrise(new DateTime(2013, 11, 20, 5, 0));
provider.setNextSunset(new DateTime(2013, 11, 20, 17, 0));
DateTime midnight = new DateTime(2013, 11, 22, 0, 0);
GenericEvent twAtMidnight = twu.prepareEvent(midnight);
Assert.assertEquals("", twAtMidnight.getProperty("beforeSunset"));
Assert.assertEquals("420", twAtMidnight.getProperty("afterSunset"));
Assert.assertEquals("", twAtMidnight.getProperty("isSunset"));
Assert.assertEquals("", twAtMidnight.getProperty("isSunrise"));
Assert.assertEquals("", twAtMidnight.getProperty("afterSunrise"));
Assert.assertEquals("300", twAtMidnight.getProperty("beforeSunrise"));
}
@Test
public void sunriseTest() {
provider.setNextSunrise(new DateTime(2013, 11, 20, 5, 0));
provider.setNextSunset(new DateTime(2013, 11, 20, 17, 0));
DateTime sunrise = new DateTime(2013, 11, 20, 5, 0);
GenericEvent twAtSunrise = twu.prepareEvent(sunrise);
Assert.assertEquals("720", twAtSunrise.getProperty("beforeSunset"));
Assert.assertEquals("", twAtSunrise.getProperty("afterSunset"));
Assert.assertEquals("", twAtSunrise.getProperty("isSunset"));
Assert.assertEquals("true", twAtSunrise.getProperty("isSunrise"));
Assert.assertEquals("", twAtSunrise.getProperty("afterSunrise"));
Assert.assertEquals("", twAtSunrise.getProperty("beforeSunrise"));
sunrise = new DateTime(2013, 11, 20, 5, 1);
twAtSunrise = twu.prepareEvent(sunrise);
Assert.assertEquals("719", twAtSunrise.getProperty("beforeSunset"));
Assert.assertEquals("", twAtSunrise.getProperty("afterSunset"));
Assert.assertEquals("", twAtSunrise.getProperty("isSunset"));
Assert.assertEquals("", twAtSunrise.getProperty("isSunrise"));
Assert.assertEquals("1", twAtSunrise.getProperty("afterSunrise"));
Assert.assertEquals("", twAtSunrise.getProperty("beforeSunrise"));
}
@Test
public void sunsetTest() {
provider.setNextSunrise(new DateTime(2013, 11, 20, 5, 0));
provider.setNextSunset(new DateTime(2013, 11, 20, 17, 0));
DateTime sunset = new DateTime(2013,11,23, 17,0);
GenericEvent twAtSunset = twu.prepareEvent(sunset);
Assert.assertEquals("", twAtSunset.getProperty("beforeSunset"));
Assert.assertEquals("", twAtSunset.getProperty("afterSunset"));
Assert.assertEquals("true", twAtSunset.getProperty("isSunset"));
Assert.assertEquals("", twAtSunset.getProperty("isSunrise"));
Assert.assertEquals("720", twAtSunset.getProperty("afterSunrise"));
Assert.assertEquals("", twAtSunset.getProperty("beforeSunrise"));
DateTime postSunset = new DateTime(2013, 11, 23, 17, 1);
GenericEvent twPostSunset = twu.prepareEvent(postSunset);
Assert.assertEquals("", twPostSunset.getProperty("beforeSunset"));
Assert.assertEquals("1", twPostSunset.getProperty("afterSunset"));
Assert.assertEquals("", twPostSunset.getProperty("isSunset"));
Assert.assertEquals("", twPostSunset.getProperty("isSunrise"));
Assert.assertEquals("", twPostSunset.getProperty("afterSunrise"));
Assert.assertEquals("719", twPostSunset.getProperty("beforeSunrise"));
}
}