package com.google.developers.gdgfirenze.memservice;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.text.ParseException;
import java.util.Arrays;
import java.util.List;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import com.google.developers.gdgfirenze.model.AbstractSample;
import com.google.developers.gdgfirenze.model.SampleReport;
import com.google.developers.gdgfirenze.model.Sensor;
public class SensormixMemIntegrationTest {
private static SensormixServiceMemoryImpl serviceMemoryImpl;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
serviceMemoryImpl = new SensormixServiceMemoryImpl();
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
/**
* I add 4 different types of sensors using the following method:
* - registerSensor
* Then i test the following service methods:
* - sensorList
* - getSensors.
*
* @throws ParseException the parse exception
*/
@Test
public void sensorsTest() throws ParseException {
serviceMemoryImpl.registerSensor(Util.newSensor(
"Galaxy-Nexus-Battery", "Battery level detector sensor", "Battery Galaxy", "BATTERY", 43.768301, 11.253394, Util.newDateTime("2013-11-30 09:00:00.000")));
serviceMemoryImpl.registerSensor(Util.newSensor(
"Galaxy-Nexus-GPS_1A23", "GPS antenna", "GPS Galaxy", "GPS", 43.768301, 11.253394, Util.newDateTime("2013-11-30 09:00:10.000")));
serviceMemoryImpl.registerSensor(Util.newSensor(
"Arduino-FHR_MC", "Arduino sensor for temperature measurements", "Arduino-FiharrahEnterprise_MegaConductor", "ARDUINO", 43.768301, 11.253394, Util.newDateTime("2013-11-30 09:00:20.000")));
serviceMemoryImpl.registerSensor(Util.newSensor(
"Galaxy-Nexus-WiFi_AP", "WiFi antenna", "WIFI Galaxy", "WIFI", 43.768301, 11.253394, Util.newDateTime("2013-11-30 09:00:30.000")));
List<String> sensorIdList = serviceMemoryImpl.listSensorsIds();
assertEquals(4, sensorIdList.size());
assertTrue(sensorIdList.contains("Galaxy-Nexus-Battery"));
assertTrue(sensorIdList.contains("Galaxy-Nexus-GPS_1A23"));
assertTrue(sensorIdList.contains("Arduino-FHR_MC"));
assertTrue(sensorIdList.contains("Galaxy-Nexus-WiFi_AP"));
assertFalse(sensorIdList.contains("Fake"));
List<Sensor> sensorList = serviceMemoryImpl.getSensors(null, null, null);
assertEquals(4, sensorList.size());
sensorList.clear();
sensorList = serviceMemoryImpl.getSensors(sensorIdList, null, null);
assertEquals(4, sensorList.size());
sensorList.clear();
sensorList = serviceMemoryImpl.getSensors(Arrays.asList("Galaxy-Nexus-Battery", "Arduino-FHR_MC", "fake"), null, null);
assertEquals(2, sensorList.size());
sensorList.clear();
sensorList = serviceMemoryImpl.getSensors(sensorIdList, Util.newDateTime("2013-11-30 08:50:00.000"), null);
assertEquals(4, sensorList.size());
sensorList.clear();
sensorList = serviceMemoryImpl.getSensors(sensorIdList, Util.newDateTime("2013-11-30 09:50:00.000"), null);
assertEquals(0, sensorList.size());
sensorList.clear();
sensorList = serviceMemoryImpl.getSensors(sensorIdList, Util.newDateTime("2013-11-30 09:00:15.000"), null);
assertEquals(2, sensorList.size());
sensorList.clear();
sensorList = serviceMemoryImpl.getSensors(sensorIdList, null, Util.newDateTime("2013-11-30 08:50:00.000"));
assertEquals(0, sensorList.size());
sensorList.clear();
sensorList = serviceMemoryImpl.getSensors(sensorIdList, null, Util.newDateTime("2013-11-30 09:00:15.000"));
assertEquals(2, sensorList.size());
sensorList.clear();
sensorList = serviceMemoryImpl.getSensors(sensorIdList, null, Util.newDateTime("2013-11-30 09:50:00.000"));
assertEquals(4, sensorList.size());
sensorList.clear();
sensorList = serviceMemoryImpl.getSensors(sensorIdList, Util.newDateTime("2013-11-30 08:50:00.000"), Util.newDateTime("2013-11-30 09:50:00.000"));
assertEquals(4, sensorList.size());
sensorList.clear();
sensorList = serviceMemoryImpl.getSensors(sensorIdList, Util.newDateTime("2013-11-30 09:00:05.000"), Util.newDateTime("2013-11-30 09:00:15.000"));
assertEquals(1, sensorList.size());
}
/**
* I add 4 different types of sensors several types of samples using the following methods:
* - registerSensor
* - recordSamples
* Then i test the following service methods:
* - listSamplesTypes
* - countSamples
* - getSamples
* - getSampleReport.
*
* @throws ParseException the parse exception
*/
@Test
public void samplesTest() throws ParseException {
serviceMemoryImpl.registerSensor(Util.newSensor(
"Galaxy-Nexus-Battery", "Battery level detector sensor", "Battery Galaxy", "BATTERY", 43.768301, 11.253394, Util.newDateTime("2013-11-30 09:00:00.000")));
serviceMemoryImpl.registerSensor(Util.newSensor(
"Galaxy-Nexus-GPS_1A23", "GPS antenna", "GPS Galaxy", "GPS", 43.768301, 11.253394, Util.newDateTime("2013-11-30 09:00:10.000")));
serviceMemoryImpl.registerSensor(Util.newSensor(
"Arduino-FHR_MC", "Arduino sensor for temperature measurements", "Arduino-FiharrahEnterprise_MegaConductor", "ARDUINO", 43.768301, 11.253394, Util.newDateTime("2013-11-30 09:00:20.000")));
serviceMemoryImpl.registerSensor(Util.newSensor(
"Galaxy-Nexus-WiFi_AP", "WiFi antenna", "WIFI Galaxy", "WIFI", 43.768301, 11.253394, Util.newDateTime("2013-11-30 09:00:30.000")));
serviceMemoryImpl.recordSamples(Util.newSamples(
Util.newNumericValueSample("Galaxy-Nexus-Battery", "NUMERIC", Util.newDateTime("2013-01-01 09:01:00.000"), 0.68),
Util.newNumericValueSample("Galaxy-Nexus-Battery", "NUMERIC", Util.newDateTime("2013-01-01 09:02:00.000"), 0.58),
Util.newNumericValueSample("Galaxy-Nexus-Battery", "NUMERIC", Util.newDateTime("2013-01-01 09:03:00.000"), 0.51),
Util.newPositionSample("Galaxy-Nexus-GPS_1A23", "POSITION", Util.newDateTime("2013-01-01 09:02:10.000"), 43.768300, 11.253394, 15.0, 0.85, 0.45, 40.0),
Util.newPositionSample("Galaxy-Nexus-GPS_1A23", "POSITION", Util.newDateTime("2013-01-01 09:02:12.000"), 43.768301, 11.253395, 15.0, 0.85, 0.45, 40.0),
Util.newPositionSample("Galaxy-Nexus-GPS_1A23", "POSITION", Util.newDateTime("2013-01-01 09:02:14.000"), 43.768302, 11.253396, 15.0, 0.85, 0.45, 40.0),
Util.newPositionSample("Galaxy-Nexus-GPS_1A23", "POSITION", Util.newDateTime("2013-01-01 09:02:16.000"), 43.768303, 11.253397, 15.0, 0.85, 0.45, 40.0),
Util.newPositionSample("Galaxy-Nexus-GPS_1A23", "POSITION", Util.newDateTime("2013-01-01 09:02:18.000"), 43.768304, 11.253398, 15.0, 0.85, 0.45, 40.0),
Util.newStringValueSample("Arduino-FHR_MC", "STRING", Util.newDateTime("2013-01-01 09:00:00.000"), "25°"),
Util.newStringValueSample("Arduino-FHR_MC", "STRING", Util.newDateTime("2013-01-01 10:00:00.000"), "25.2°"),
Util.newStringValueSample("Arduino-FHR_MC", "STRING", Util.newDateTime("2013-01-01 11:00:00.000"), "25.3°"),
Util.newStringValueSample("Arduino-FHR_MC", "STRING", Util.newDateTime("2013-01-01 12:00:00.000"), "25.5°"),
Util.newWifiSignalSample("Galaxy-Nexus-WiFi_AP", "WIFI", Util.newDateTime("2013-01-01 09:05:00.000"), "Silence",
"00:22:3f:56:38:6a", "[WPA2-PSK-CCMP][ESS]", 2437.0, -50.0),
Util.newWifiSignalSample("Galaxy-Nexus-WiFi_AP", "WIFI", Util.newDateTime("2013-01-01 09:05:00.000"), "BaffoWiNet",
"00:22:3f:56:38:6a", "[WPA2-PSK-CCMP][ESS]", 2437.0, -45.0),
Util.newWifiSignalSample("Galaxy-Nexus-WiFi_AP", "WIFI", Util.newDateTime("2013-01-01 09:15:00.000"), "AliceCristiano",
"00:22:3f:56:38:6a", "[WPA2-PSK-CCMP][ESS]", 2437.0, -48.0)));
List<String> sampleTypeList = serviceMemoryImpl.listSamplesTypes();
assertEquals(4, sampleTypeList.size());
long sampleCount = serviceMemoryImpl.countSamples(null, null, null, null);
assertEquals(15, sampleCount);
sampleCount = serviceMemoryImpl.countSamples("Galaxy-Nexus-Battery", null, null, null);
assertEquals(3, sampleCount);
sampleCount = serviceMemoryImpl.countSamples("Galaxy-Nexus-GPS_1A23", null, null, null);
assertEquals(5, sampleCount);
sampleCount = serviceMemoryImpl.countSamples("Arduino-FHR_MC", null, null, null);
assertEquals(4, sampleCount);
sampleCount = serviceMemoryImpl.countSamples("Galaxy-Nexus-WiFi_AP", null, null, null);
assertEquals(3, sampleCount);
sampleCount = serviceMemoryImpl.countSamples("fake", null, null, null);
assertEquals(0, sampleCount);
sampleCount = serviceMemoryImpl.countSamples(null, "NUMERIC", null, null);
assertEquals(3, sampleCount);
sampleCount = serviceMemoryImpl.countSamples(null, null, Util.newDateTime("2013-01-01 08:50:00.000"), null);
assertEquals(15, sampleCount);
sampleCount = serviceMemoryImpl.countSamples(null, null, Util.newDateTime("2013-01-01 09:20:00.000"), null);
assertEquals(3, sampleCount);
sampleCount = serviceMemoryImpl.countSamples(null, null, null, Util.newDateTime("2013-01-01 13:00:00.000"));
assertEquals(15, sampleCount);
sampleCount = serviceMemoryImpl.countSamples(null, null, null, Util.newDateTime("2013-01-01 09:21:00.000"));
assertEquals(12, sampleCount);
sampleCount = serviceMemoryImpl.countSamples(null, null, Util.newDateTime("2013-01-01 09:11:00.000"), Util.newDateTime("2013-01-01 10:15:00.000"));
assertEquals(2, sampleCount);
sampleCount = serviceMemoryImpl.countSamples("Galaxy-Nexus-GPS_1A23", "POSITION", Util.newDateTime("2013-01-01 09:02:11.000"), Util.newDateTime("2013-01-01 09:02:17.000"));
assertEquals(3, sampleCount);
sampleCount = serviceMemoryImpl.countSamples("Galaxy-Nexus-GPS_1A23", "fake", Util.newDateTime("2013-01-01 09:02:11.000"), Util.newDateTime("2013-01-01 09:02:17.000"));
assertEquals(0, sampleCount);
List<AbstractSample> abstractSamples = serviceMemoryImpl.getSamples(null, null, null, null, null, null);
assertEquals(15, abstractSamples.size());
abstractSamples.clear();
abstractSamples = serviceMemoryImpl.getSamples("Galaxy-Nexus-Battery", null, null, null, null, null);
assertEquals(3, abstractSamples.size());
abstractSamples.clear();
abstractSamples = serviceMemoryImpl.getSamples("Galaxy-Nexus-GPS_1A23", null, null, null, null, null);
assertEquals(5, abstractSamples.size());
abstractSamples.clear();
abstractSamples = serviceMemoryImpl.getSamples(null, "STRING", null, null, null, null);
assertEquals(4, abstractSamples.size());
abstractSamples.clear();
abstractSamples = serviceMemoryImpl.getSamples(null, null, Util.newDateTime("2013-01-01 08:50:00.000"), null, null, null);
assertEquals(15, abstractSamples.size());
abstractSamples.clear();
abstractSamples = serviceMemoryImpl.getSamples(null, null, Util.newDateTime("2013-01-01 09:20:00.000"), null, null, null);
assertEquals(3, abstractSamples.size());
abstractSamples.clear();
abstractSamples = serviceMemoryImpl.getSamples(null, null, null, Util.newDateTime("2013-01-01 13:00:00.000"), null, null);
assertEquals(15, abstractSamples.size());
abstractSamples.clear();
abstractSamples = serviceMemoryImpl.getSamples(null, null, null, Util.newDateTime("2013-01-01 09:21:00.000"), null, null);
assertEquals(12, abstractSamples.size());
abstractSamples.clear();
abstractSamples = serviceMemoryImpl.getSamples(null, null, Util.newDateTime("2013-01-01 09:11:00.000"), Util.newDateTime("2013-01-01 10:15:00.000"), null, null);
assertEquals(2, abstractSamples.size());
abstractSamples.clear();
abstractSamples = serviceMemoryImpl.getSamples(null, null, null, null, null, (long) 10);
assertEquals(10, abstractSamples.size());
abstractSamples.clear();
abstractSamples = serviceMemoryImpl.getSamples("Galaxy-Nexus-GPS_1A23", "POSITION", Util.newDateTime("2013-01-01 09:02:11.000"), Util.newDateTime("2013-01-01 09:02:17.000"), null, (long) 10);
assertEquals(3, abstractSamples.size());
abstractSamples.clear();
abstractSamples = serviceMemoryImpl.getSamples("Galaxy-Nexus-GPS_1A23", "POSITION", Util.newDateTime("2013-01-01 09:02:11.000"), Util.newDateTime("2013-01-01 09:02:17.000"), null, (long) 2);
assertEquals(2, abstractSamples.size());
abstractSamples.clear();
abstractSamples = serviceMemoryImpl.getSamples("fake", "POSITION", Util.newDateTime("2013-01-01 09:02:11.000"), Util.newDateTime("2013-01-01 09:02:17.000"), null, null);
assertEquals(0, abstractSamples.size());
SampleReport sampleReport = serviceMemoryImpl.getSampleReport("Galaxy-Nexus-GPS_1A23", "POSITION", Util.newDateTime("2013-01-01 08:50:00.000"), Util.newDateTime("2013-01-01 18:00:00.000"));
assertEquals(1, sampleReport.getDailySampleReports().size());
assertEquals(5, sampleReport.getDailySampleReports().get(0).getSampleCount());
}
}