Browse Source

added tests and moved to common util

pull/12993/head
IrynaMatveieva 1 year ago
parent
commit
56598a5247
  1. 2
      application/src/main/java/org/thingsboard/server/actors/calculatedField/CalculatedFieldManagerMessageProcessor.java
  2. 8
      common/script/script-api/pom.xml
  3. 6
      common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/TbUtils.java
  4. 20
      common/script/script-api/src/test/java/org/thingsboard/script/api/tbel/TbUtilsTest.java
  5. 8
      common/util/pom.xml
  6. 2
      common/util/src/main/java/org/thingsboard/common/util/geo/Coordinates.java
  7. 2
      common/util/src/main/java/org/thingsboard/common/util/geo/GeoUtil.java
  8. 2
      common/util/src/main/java/org/thingsboard/common/util/geo/Perimeter.java
  9. 2
      common/util/src/main/java/org/thingsboard/common/util/geo/PerimeterType.java
  10. 2
      common/util/src/main/java/org/thingsboard/common/util/geo/RangeUnit.java
  11. 10
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/AbstractGeofencingNode.java
  12. 2
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/TbGpsGeofencingActionNodeConfiguration.java
  13. 4
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/TbGpsGeofencingFilterNodeConfiguration.java
  14. 4
      rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/geo/GeoUtilTest.java
  15. 6
      rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/geo/TbGpsGeofencingFilterNodeTest.java

2
application/src/main/java/org/thingsboard/server/actors/calculatedField/CalculatedFieldManagerMessageProcessor.java

@ -141,7 +141,7 @@ public class CalculatedFieldManagerMessageProcessor extends AbstractContextAware
}
public void onEntityLifecycleMsg(CalculatedFieldEntityLifecycleMsg msg) throws CalculatedFieldException {
log.info("Processing entity lifecycle event: [{}] for entity: [{}]", msg.getData().getEvent(), msg.getData().getEntityId());
log.debug("Processing entity lifecycle event: [{}] for entity: [{}]", msg.getData().getEvent(), msg.getData().getEntityId());
var entityType = msg.getData().getEntityId().getEntityType();
var event = msg.getData().getEvent();
switch (entityType) {

8
common/script/script-api/pom.xml

@ -111,14 +111,6 @@
<artifactId>awaitility</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.locationtech.spatial4j</groupId>
<artifactId>spatial4j</artifactId>
</dependency>
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
</dependency>
</dependencies>
<distributionManagement>

6
common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/TbUtils.java

@ -25,9 +25,9 @@ import org.mvel2.execution.ExecutionArrayList;
import org.mvel2.execution.ExecutionHashMap;
import org.mvel2.util.MethodStub;
import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.script.api.Coordinates;
import org.thingsboard.script.api.GeoUtil;
import org.thingsboard.script.api.RangeUnit;
import org.thingsboard.common.util.geo.Coordinates;
import org.thingsboard.common.util.geo.GeoUtil;
import org.thingsboard.common.util.geo.RangeUnit;
import org.thingsboard.server.common.data.StringUtils;
import java.io.IOException;

20
common/script/script-api/src/test/java/org/thingsboard/script/api/tbel/TbUtilsTest.java

@ -1150,6 +1150,26 @@ public class TbUtilsTest {
Assertions.assertTrue(TbUtils.isNaN(Double.NaN));
}
@Test
public void isInsidePolygon() {
// outside the polygon
String perimeter = "[[[50.75581142688204,29.097910166341073],[50.16785158177623,29.35066098977171],[50.164329922384674,29.773743889862114],[50.16785158177623,30.801230932938843],[50.459245308833495,30.92760634465418],[50.486522489629564,30.68548421850448],[50.703612031034005,30.872660513473573]],[[50.606017492632766,29.36165015600782],[50.54317104075835,29.762754723626013],[50.41021974600505,29.455058069014804]]]";
Assertions.assertFalse(TbUtils.isInsidePolygon(50.50869555168039, 30.80123093293884, perimeter));
// inside the polygon
Assertions.assertTrue(TbUtils.isInsidePolygon(50.50520628167696, 30.339685951022016, perimeter));
// inside the hole
Assertions.assertFalse(TbUtils.isInsidePolygon(50.52265651287081, 29.488025567723156, perimeter));
}
@Test
public void isInsideCircle() {
// outside the circle
String perimeter = "{\"latitude\":50.32254778825905,\"longitude\":28.207787701215757,\"radius\":47477.33130420423}";
Assertions.assertFalse(TbUtils.isInsideCircle(50.81490715736681, 28.05943395702824, perimeter));
// inside the circle
Assertions.assertTrue(TbUtils.isInsideCircle(50.599397971892444, 28.086906872618542, perimeter));
}
private static List<Byte> toList(byte[] data) {
List<Byte> result = new ArrayList<>(data.length);
for (Byte b : data) {

8
common/util/pom.xml

@ -103,6 +103,14 @@
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
</dependency>
<dependency>
<groupId>org.locationtech.spatial4j</groupId>
<artifactId>spatial4j</artifactId>
</dependency>
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
</dependency>
</dependencies>
<build>

2
common/script/script-api/src/main/java/org/thingsboard/script/api/Coordinates.java → common/util/src/main/java/org/thingsboard/common/util/geo/Coordinates.java

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.thingsboard.script.api;
package org.thingsboard.common.util.geo;
import lombok.Data;

2
common/script/script-api/src/main/java/org/thingsboard/script/api/GeoUtil.java → common/util/src/main/java/org/thingsboard/common/util/geo/GeoUtil.java

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.thingsboard.script.api;
package org.thingsboard.common.util.geo;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;

2
common/script/script-api/src/main/java/org/thingsboard/script/api/Perimeter.java → common/util/src/main/java/org/thingsboard/common/util/geo/Perimeter.java

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.thingsboard.script.api;
package org.thingsboard.common.util.geo;
import lombok.Data;

2
common/script/script-api/src/main/java/org/thingsboard/script/api/PerimeterType.java → common/util/src/main/java/org/thingsboard/common/util/geo/PerimeterType.java

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.thingsboard.script.api;
package org.thingsboard.common.util.geo;
public enum PerimeterType {
CIRCLE, POLYGON

2
common/script/script-api/src/main/java/org/thingsboard/script/api/RangeUnit.java → common/util/src/main/java/org/thingsboard/common/util/geo/RangeUnit.java

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.thingsboard.script.api;
package org.thingsboard.common.util.geo;
public enum RangeUnit {
METER(1000.0), KILOMETER(1.0), FOOT(3280.84), MILE(0.62137), NAUTICAL_MILE(0.539957);

10
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/AbstractGeofencingNode.java

@ -21,16 +21,16 @@ import com.google.gson.JsonParser;
import org.locationtech.spatial4j.context.jts.JtsSpatialContext;
import org.locationtech.spatial4j.context.jts.JtsSpatialContextFactory;
import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.common.util.geo.Coordinates;
import org.thingsboard.common.util.geo.GeoUtil;
import org.thingsboard.common.util.geo.Perimeter;
import org.thingsboard.common.util.geo.PerimeterType;
import org.thingsboard.common.util.geo.RangeUnit;
import org.thingsboard.rule.engine.api.TbContext;
import org.thingsboard.rule.engine.api.TbNode;
import org.thingsboard.rule.engine.api.TbNodeConfiguration;
import org.thingsboard.rule.engine.api.TbNodeException;
import org.thingsboard.rule.engine.api.util.TbNodeUtils;
import org.thingsboard.script.api.Coordinates;
import org.thingsboard.script.api.GeoUtil;
import org.thingsboard.script.api.Perimeter;
import org.thingsboard.script.api.PerimeterType;
import org.thingsboard.script.api.RangeUnit;
import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.msg.TbMsg;

2
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/TbGpsGeofencingActionNodeConfiguration.java

@ -16,7 +16,7 @@
package org.thingsboard.rule.engine.geo;
import lombok.Data;
import org.thingsboard.script.api.PerimeterType;
import org.thingsboard.common.util.geo.PerimeterType;
import java.util.concurrent.TimeUnit;

4
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/TbGpsGeofencingFilterNodeConfiguration.java

@ -16,9 +16,9 @@
package org.thingsboard.rule.engine.geo;
import lombok.Data;
import org.thingsboard.common.util.geo.PerimeterType;
import org.thingsboard.common.util.geo.RangeUnit;
import org.thingsboard.rule.engine.api.NodeConfiguration;
import org.thingsboard.script.api.PerimeterType;
import org.thingsboard.script.api.RangeUnit;
/**
* Created by ashvayka on 19.01.18.

4
rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/geo/GeoUtilTest.java

@ -19,8 +19,8 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;
import org.thingsboard.script.api.Coordinates;
import org.thingsboard.script.api.GeoUtil;
import org.thingsboard.common.util.geo.Coordinates;
import org.thingsboard.common.util.geo.GeoUtil;
@ExtendWith(MockitoExtension.class)
public class GeoUtilTest {

6
rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/geo/TbGpsGeofencingFilterNodeTest.java

@ -21,12 +21,12 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.common.util.geo.Coordinates;
import org.thingsboard.common.util.geo.PerimeterType;
import org.thingsboard.common.util.geo.RangeUnit;
import org.thingsboard.rule.engine.api.TbContext;
import org.thingsboard.rule.engine.api.TbNodeConfiguration;
import org.thingsboard.rule.engine.api.TbNodeException;
import org.thingsboard.script.api.Coordinates;
import org.thingsboard.script.api.PerimeterType;
import org.thingsboard.script.api.RangeUnit;
import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.msg.TbMsgType;

Loading…
Cancel
Save