View Javadoc
1   package de.dlr.shepard.context.references.spatialdatareference;
2   
3   import static org.junit.jupiter.api.Assertions.assertEquals;
4   
5   import de.dlr.shepard.auth.users.entities.User;
6   import de.dlr.shepard.context.collection.entities.DataObject;
7   import de.dlr.shepard.context.references.spatialdata.entities.SpatialDataReference;
8   import de.dlr.shepard.context.references.spatialdata.io.SpatialDataReferenceIO;
9   import de.dlr.shepard.data.spatialdata.io.FilterCondition;
10  import de.dlr.shepard.data.spatialdata.io.Operator;
11  import de.dlr.shepard.data.spatialdata.model.SpatialDataContainer;
12  import de.dlr.shepard.data.spatialdata.model.geometryFilter.KNearestNeighbor;
13  import java.util.Date;
14  import java.util.List;
15  import java.util.Map;
16  import nl.jqno.equalsverifier.EqualsVerifier;
17  import org.junit.jupiter.api.Test;
18  
19  public class SpatialDataReferenceIOTest {
20  
21    @Test
22    public void equalsContract() {
23      EqualsVerifier.simple().forClass(SpatialDataReferenceIO.class).verify();
24    }
25  
26    @Test
27    public void testConversion() {
28      var date = new Date();
29      var user = new User("arthur");
30      var update = new Date();
31      var updateUser = new User("dutch");
32      var dataObject = new DataObject(2L);
33      dataObject.setShepardId(500L);
34      var container = new SpatialDataContainer(3L);
35      var geometryFilter = new KNearestNeighbor(5, 10.0, 20.0, 30.0);
36      var measurementFilter = List.of((new FilterCondition("temperature,val", Operator.EQUALS, 20)));
37      var startTime = 2L;
38      var endTime = 4L;
39      var metaData = Map.of("track", 1, "layer", 4, "key", Map.of("subKey", "some data"));
40      var limit = 100;
41      var skip = 5;
42  
43      var spatialDataReference = new SpatialDataReference(1L);
44      spatialDataReference.setShepardId(341L);
45      spatialDataReference.setCreatedAt(date);
46      spatialDataReference.setCreatedBy(user);
47      spatialDataReference.setUpdatedAt(update);
48      spatialDataReference.setUpdatedBy(updateUser);
49      spatialDataReference.setName("SpatialDataReferenceTest");
50      spatialDataReference.setDataObject(dataObject);
51      spatialDataReference.setSpatialDataContainer(container);
52      spatialDataReference.setGeometryFilter(
53        "{  \"type\": \"K_NEAREST_NEIGHBOR\",  \"k\": 5,  \"x\": 10,  \"y\": 20,  \"z\": 30}"
54      );
55      spatialDataReference.setMeasurementsFilter(
56        "[{ \"key\": \"temperature,val\", \"operator\": \"EQUALS\", \"value\": 20 }]"
57      );
58      spatialDataReference.setStartTime(startTime);
59      spatialDataReference.setEndTime(endTime);
60      spatialDataReference.setMetadata("{ \"track\":1, \"layer\":4, \"key\":{ \"subKey\": \"some data\" } }");
61      spatialDataReference.setLimit(limit);
62      spatialDataReference.setSkip(skip);
63  
64      var converted = new SpatialDataReferenceIO(spatialDataReference);
65      assertEquals(spatialDataReference.getShepardId(), converted.getId());
66      assertEquals(spatialDataReference.getCreatedAt(), converted.getCreatedAt());
67      assertEquals("arthur", converted.getCreatedBy());
68      assertEquals(spatialDataReference.getUpdatedAt(), converted.getUpdatedAt());
69      assertEquals("dutch", converted.getUpdatedBy());
70      assertEquals(spatialDataReference.getName(), converted.getName());
71      assertEquals(dataObject.getShepardId(), converted.getDataObjectId());
72      assertEquals(container.getId(), converted.getSpatialDataContainerId());
73      assertEquals(geometryFilter, converted.getGeometryFilter());
74      assertEquals(measurementFilter, converted.getMeasurementsFilter());
75      assertEquals(spatialDataReference.getStartTime(), converted.getStartTime());
76      assertEquals(spatialDataReference.getEndTime(), converted.getEndTime());
77      assertEquals(metaData, converted.getMetadataFilter());
78      assertEquals(spatialDataReference.getLimit(), converted.getLimit());
79      assertEquals(spatialDataReference.getSkip(), converted.getSkip());
80    }
81  
82    @Test
83    public void testConversion_ContainerNull() {
84      var date = new Date();
85      var user = new User("arthur");
86      var update = new Date();
87      var updateUser = new User("dutch");
88      var dataObject = new DataObject(2L);
89      dataObject.setShepardId(500L);
90      var geometryFilter = new KNearestNeighbor(5, 10.0, 20.0, 30.0);
91      var measurementFilter = List.of((new FilterCondition("temperature,val", Operator.EQUALS, 20)));
92      var startTime = 2L;
93      var endTime = 4L;
94      var metaData = Map.of("track", 1, "layer", 4, "key", Map.of("subKey", "some data"));
95      var limit = 100;
96      var skip = 5;
97  
98      var spatialDataReference = new SpatialDataReference(1L);
99      spatialDataReference.setShepardId(341L);
100     spatialDataReference.setCreatedAt(date);
101     spatialDataReference.setCreatedBy(user);
102     spatialDataReference.setUpdatedAt(update);
103     spatialDataReference.setUpdatedBy(updateUser);
104     spatialDataReference.setName("SpatialDataReferenceTest");
105     spatialDataReference.setDataObject(dataObject);
106     spatialDataReference.setGeometryFilter(
107       "{  \"type\": \"K_NEAREST_NEIGHBOR\",  \"k\": 5,  \"x\": 10,  \"y\": 20,  \"z\": 30}"
108     );
109     spatialDataReference.setMeasurementsFilter(
110       "[{ \"key\": \"temperature,val\", \"operator\": \"EQUALS\", \"value\": 20 }]"
111     );
112     spatialDataReference.setStartTime(startTime);
113     spatialDataReference.setEndTime(endTime);
114     spatialDataReference.setMetadata("{ \"track\":1, \"layer\":4, \"key\":{ \"subKey\": \"some data\" } }");
115     spatialDataReference.setLimit(limit);
116     spatialDataReference.setSkip(skip);
117 
118     var converted = new SpatialDataReferenceIO(spatialDataReference);
119     assertEquals(spatialDataReference.getShepardId(), converted.getId());
120     assertEquals(spatialDataReference.getCreatedAt(), converted.getCreatedAt());
121     assertEquals("arthur", converted.getCreatedBy());
122     assertEquals(spatialDataReference.getUpdatedAt(), converted.getUpdatedAt());
123     assertEquals("dutch", converted.getUpdatedBy());
124     assertEquals(spatialDataReference.getName(), converted.getName());
125     assertEquals(dataObject.getShepardId(), converted.getDataObjectId());
126     assertEquals(geometryFilter, converted.getGeometryFilter());
127     assertEquals(measurementFilter, converted.getMeasurementsFilter());
128     assertEquals(spatialDataReference.getStartTime(), converted.getStartTime());
129     assertEquals(spatialDataReference.getEndTime(), converted.getEndTime());
130     assertEquals(metaData, converted.getMetadataFilter());
131     assertEquals(spatialDataReference.getLimit(), converted.getLimit());
132     assertEquals(spatialDataReference.getSkip(), converted.getSkip());
133     assertEquals(-1, converted.getSpatialDataContainerId());
134   }
135 }