use of org.eclipse.vorto.mapping.engine.converter.JavascriptEvalProvider in project vorto by eclipse.
the class JsonMappingTest method testMapSingleFunctionblockOfInfomodel.
@Test
public void testMapSingleFunctionblockOfInfomodel() {
IDataMapper mapper = IDataMapper.newBuilder().withSpecification(new SpecWithCustomFunction()).registerConverterFunction(TypeFunctionFactory.createFunctions()).registerConverterFunction(StringFunctionFactory.createFunctions()).registerScriptEvalProvider(new JavascriptEvalProvider()).build();
String json = "{\"clickType\" : \"DOUBLE\"}";
InfomodelValue mappedOutput = mapper.mapSource(gson.fromJson(json, Object.class));
FunctionblockValue buttonFunctionblockData = mappedOutput.get("button");
assertEquals(true, (Boolean) buttonFunctionblockData.getStatusProperty("digital_input_state").get().getValue());
assertEquals(2, buttonFunctionblockData.getStatusProperty("digital_input_count").get().getValue());
FunctionblockValue voltageFunctionblockData = mappedOutput.get("voltage");
assertNull(voltageFunctionblockData);
System.out.println(gson.toJson(mappedOutput.serialize()));
}
use of org.eclipse.vorto.mapping.engine.converter.JavascriptEvalProvider in project vorto by eclipse.
the class JsonMappingTest method testMappingWithMalicousScript2.
@Test(expected = MappingException.class)
public void testMappingWithMalicousScript2() throws Exception {
IDataMapper mapper = IDataMapper.newBuilder().withSpecification(new SpecWithMaliciousFunction() {
@Override
protected String getMaliciousFunctionBody() {
return "return exit();";
}
}).registerScriptEvalProvider(new JavascriptEvalProvider()).build();
String json = "{\"clickType\" : \"DOUBLE\", \"batteryVoltage\": \"2322mV\"}";
mapper.mapSource(gson.fromJson(json, Object.class));
}
use of org.eclipse.vorto.mapping.engine.converter.JavascriptEvalProvider in project vorto by eclipse.
the class BinaryMappingTest method testMappingBinaryContaining2DataPoints.
@Test
public void testMappingBinaryContaining2DataPoints() {
IDataMapper mapper = IDataMapper.newBuilder().withSpecification(new SpecBinaryConverter()).registerConverterFunction(BinaryFunctionFactory.createFunctions()).registerScriptEvalProvider(new JavascriptEvalProvider()).build();
// 2 byte temperature (Byte 1-2), 2 byte humidity (Byte 3-4)
byte[] dest = new byte[4];
byte[] value = Conversion.intToByteArray(2000, 0, dest, 0, 2);
value = Conversion.intToByteArray(8819, 0, dest, 2, 2);
BinaryData data = new BinaryData(value);
InfomodelValue mapped = mapper.mapSource(data);
assertEquals(20.00, mapped.get("temperature").getStatusProperty("value").get().getValue());
assertEquals(88.19, mapped.get("humidity").getStatusProperty("value").get().getValue());
}
use of org.eclipse.vorto.mapping.engine.converter.JavascriptEvalProvider in project vorto by eclipse.
the class JsonMappingTest method testMapping.
@Test
public void testMapping() throws Exception {
IDataMapper mapper = IDataMapper.newBuilder().withSpecification(new SpecWithCustomFunction()).registerConverterFunction(TypeFunctionFactory.createFunctions()).registerConverterFunction(StringFunctionFactory.createFunctions()).registerScriptEvalProvider(new JavascriptEvalProvider()).build();
String json = "{\"clickType\" : \"DOUBLE\", \"batteryVoltage\": \"2322mV\"}";
InfomodelValue mappedOutput = mapper.mapSource(gson.fromJson(json, Object.class));
FunctionblockValue buttonFunctionblockData = mappedOutput.get("button");
assertEquals(true, (Boolean) buttonFunctionblockData.getStatusProperty("digital_input_state").get().getValue());
assertEquals(2, buttonFunctionblockData.getStatusProperty("digital_input_count").get().getValue());
FunctionblockValue voltageFunctionblockData = mappedOutput.get("voltage");
assertEquals(2322f, voltageFunctionblockData.getStatusProperty("sensor_value").get().getValue());
assertEquals("mV", voltageFunctionblockData.getStatusProperty("sensor_units").get().getValue());
System.out.println(gson.toJson(mappedOutput.serialize()));
}
use of org.eclipse.vorto.mapping.engine.converter.JavascriptEvalProvider in project vorto by eclipse.
the class BinaryMappingTest method testMappingWithGattStructure.
@Test
public void testMappingWithGattStructure() throws Exception {
IDataMapper mapper = IDataMapper.newBuilder().withSpecification(new SpecGattConverter()).registerConverterFunction(BinaryFunctionFactory.createFunctions()).registerScriptEvalProvider(new JavascriptEvalProvider()).build();
GattDevice gattDevice = new GattDevice();
GattService gattService = new GattService();
List<GattCharacteristic> characteristics = new ArrayList<GattCharacteristic>();
byte[] dest = new byte[6];
byte[] value = Conversion.intToByteArray(2000, 0, dest, 3, 3);
characteristics.add(new GattCharacteristic("23-D1-13-EF-5F-78-23-15-DE-EF-12-12-0D-F0-00-00", value));
gattService.setCharacteristics(characteristics);
List<GattService> services = new ArrayList<GattService>();
services.add(gattService);
gattDevice.setModelNumber("23-23-23");
gattDevice.setServices(services);
gattDevice.setCharacteristics(characteristics);
String json = new Gson().toJson(gattDevice);
InfomodelValue mapped = mapper.mapSource(gson.fromJson(json, Object.class));
assertEquals(20.00, mapped.get("button").getStatusProperty("sensor_value").get().getValue());
System.out.println(mapped);
}
Aggregations