|
@@ -1,20 +1,104 @@
|
|
|
package cz.senslog.telemetry.database.validation;
|
|
package cz.senslog.telemetry.database.validation;
|
|
|
|
|
|
|
|
|
|
+import cz.senslog.telemetry.database.domain.Campaign;
|
|
|
|
|
+import cz.senslog.telemetry.database.domain.Location;
|
|
|
|
|
+import cz.senslog.telemetry.database.domain.Sensor;
|
|
|
|
|
+import cz.senslog.telemetry.database.domain.UnitTelemetry;
|
|
|
|
|
+import io.vertx.core.json.JsonObject;
|
|
|
import org.junit.jupiter.api.Test;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
|
|
|
|
|
+import java.time.OffsetDateTime;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+import java.util.Map;
|
|
|
|
|
+
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
|
|
|
|
class UnitTelemetryValidationTest {
|
|
class UnitTelemetryValidationTest {
|
|
|
|
|
|
|
|
@Test
|
|
@Test
|
|
|
void isTelemetryWithinCampaign() {
|
|
void isTelemetryWithinCampaign() {
|
|
|
|
|
+ OffsetDateTime baseTime = OffsetDateTime.now();
|
|
|
|
|
+ Location location = Location.of(0f, 0f);
|
|
|
|
|
+ JsonObject observedValues = JsonObject.of();
|
|
|
|
|
+
|
|
|
|
|
+ Campaign campaign = Campaign.of(1, null, baseTime, baseTime.plusMonths(1));
|
|
|
|
|
+ UnitTelemetry t1 = UnitTelemetry.of(1000L, baseTime, location, 0, observedValues);
|
|
|
|
|
+ UnitTelemetry t2 = UnitTelemetry.of(2000L, baseTime.plusMonths(1).minusSeconds(1), location, 0, observedValues);
|
|
|
|
|
+ UnitTelemetry t3 = UnitTelemetry.of(3000L, baseTime.plusMonths(1), location, 0, observedValues);
|
|
|
|
|
+ UnitTelemetry t4 = UnitTelemetry.of(4000L, baseTime.plusMonths(1).plusSeconds(1), location, 0, observedValues);
|
|
|
|
|
+
|
|
|
|
|
+ assertTrue(UnitTelemetryValidation.isTelemetryWithinCampaign(campaign, t1));
|
|
|
|
|
+ assertTrue(UnitTelemetryValidation.isTelemetryWithinCampaign(campaign, t2));
|
|
|
|
|
+ assertTrue(UnitTelemetryValidation.isTelemetryWithinCampaign(campaign, t3));
|
|
|
|
|
+ assertFalse(UnitTelemetryValidation.isTelemetryWithinCampaign(campaign, t4));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
@Test
|
|
|
void telemetriesWithinCampaign() {
|
|
void telemetriesWithinCampaign() {
|
|
|
|
|
+ OffsetDateTime baseTime = OffsetDateTime.now();
|
|
|
|
|
+ Location location = Location.of(0f, 0f);
|
|
|
|
|
+ JsonObject observedValues = JsonObject.of();
|
|
|
|
|
+
|
|
|
|
|
+ Campaign campaign = Campaign.of(1, null, baseTime, baseTime.plusMonths(1));
|
|
|
|
|
+
|
|
|
|
|
+ List<UnitTelemetry> telemetries = List.of(
|
|
|
|
|
+ UnitTelemetry.of(1000L, baseTime, location, 0, observedValues),
|
|
|
|
|
+ UnitTelemetry.of(2000L, baseTime.plusMinutes(1), location, 0, observedValues),
|
|
|
|
|
+ UnitTelemetry.of(3000L, baseTime.plusMinutes(1), location, 0, observedValues),
|
|
|
|
|
+ UnitTelemetry.of(4000L, baseTime.plusMonths(1).minusSeconds(1), location, 0, observedValues),
|
|
|
|
|
+ UnitTelemetry.of(5000L, baseTime.plusMonths(1), location, 0, observedValues),
|
|
|
|
|
+ UnitTelemetry.of(6000L, baseTime.plusMonths(1).plusSeconds(1), location, 0, observedValues)
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ List<UnitTelemetry> filteredTels = UnitTelemetryValidation.telemetriesWithinCampaign(campaign, telemetries);
|
|
|
|
|
+
|
|
|
|
|
+ assertEquals(5, filteredTels.size());
|
|
|
|
|
+ assertEquals(1000L, filteredTels.get(0).getUnitId());
|
|
|
|
|
+ assertEquals(5000L, filteredTels.get(4).getUnitId());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
@Test
|
|
|
void telemetriesAccToSensors() {
|
|
void telemetriesAccToSensors() {
|
|
|
|
|
+
|
|
|
|
|
+ OffsetDateTime baseTimestamp = OffsetDateTime.now();
|
|
|
|
|
+ Location location = Location.of(0f, 0f);
|
|
|
|
|
+
|
|
|
|
|
+ Map<Long, List<Sensor>> sensorsByUnitId = Map.of(
|
|
|
|
|
+ 1000L, List.of(
|
|
|
|
|
+ Sensor.of(100, "Sensor Name 100"),
|
|
|
|
|
+ Sensor.of(200, "Sensor Name 200")
|
|
|
|
|
+ ),
|
|
|
|
|
+ 2000L, List.of(
|
|
|
|
|
+ Sensor.of(100, "Sensor Name 100"),
|
|
|
|
|
+ Sensor.of(300, "Sensor Name 300")
|
|
|
|
|
+ )
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ List<UnitTelemetry> telemetries = List.of(
|
|
|
|
|
+ UnitTelemetry.of(2000L, baseTimestamp, location, 0, JsonObject.of(
|
|
|
|
|
+ "100", 0,
|
|
|
|
|
+ "200", 0
|
|
|
|
|
+ )),
|
|
|
|
|
+ UnitTelemetry.of(1000L, baseTimestamp.plusHours(1), location, 0, JsonObject.of(
|
|
|
|
|
+ "Sensor Name 100", 0,
|
|
|
|
|
+ "Sensor Name 200", 0
|
|
|
|
|
+ )),
|
|
|
|
|
+ UnitTelemetry.of(3000, baseTimestamp, location, 0, JsonObject.of())
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ List<UnitTelemetry> filteredTels = UnitTelemetryValidation.telemetriesAccToSensors(sensorsByUnitId, telemetries);
|
|
|
|
|
+
|
|
|
|
|
+ assertEquals(2, filteredTels.size());
|
|
|
|
|
+
|
|
|
|
|
+ UnitTelemetry t1 = filteredTels.get(0);
|
|
|
|
|
+ assertEquals(2000L, t1.getUnitId());
|
|
|
|
|
+ assertEquals(1, t1.getObservedValues().size());
|
|
|
|
|
+ assertTrue(t1.getObservedValues().containsKey("100"));
|
|
|
|
|
+
|
|
|
|
|
+ UnitTelemetry t2 = filteredTels.get(1);
|
|
|
|
|
+ assertEquals(1000L, t2.getUnitId());
|
|
|
|
|
+ assertEquals(2, t2.getObservedValues().size());
|
|
|
|
|
+ assertTrue(t2.getObservedValues().containsKey("100"));
|
|
|
|
|
+ assertTrue(t2.getObservedValues().containsKey("200"));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|