use of org.eclipse.vorto.model.runtime.FunctionblockValue in project vorto by eclipse.
the class DateConvertTest method testMappingTimestamp.
@Test
public void testMappingTimestamp() throws Exception {
IDataMapper mapper = IDataMapper.newBuilder().withSpecification(new SpecWithTimestamp()).registerConverterFunction(DateFunctionFactory.createFunctions()).build();
final Date timestamp = new Date();
String json = "{\"time\" : " + timestamp.getTime() + "}";
InfomodelValue mappedOutput = mapper.mapSource(gson.fromJson(json, Object.class));
FunctionblockValue buttonFunctionblockData = mappedOutput.get("button");
assertEquals(JSON_DATE_FORMAT.format(timestamp), buttonFunctionblockData.getStatusProperty("sensor_value").get().getValue());
System.out.println(mappedOutput);
}
use of org.eclipse.vorto.model.runtime.FunctionblockValue 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.model.runtime.FunctionblockValue in project vorto by eclipse.
the class JsonMappingTest method testInvokeJsFunctionWithMultipleParams.
@Test
public void testInvokeJsFunctionWithMultipleParams() {
IDataMapper mapper = IDataMapper.newBuilder().withSpecification(new SpecWithMultipleParams()).registerScriptEvalProvider(new JavascriptEvalProvider()).build();
MyData data = new MyData("Hallo".getBytes(), "#");
InfomodelValue mappedOutput = mapper.mapSource(data);
FunctionblockValue buttonFunctionblockData = mappedOutput.get("button");
assertEquals("#H", buttonFunctionblockData.getStatusProperty("flag").get().getValue());
}
use of org.eclipse.vorto.model.runtime.FunctionblockValue in project vorto by eclipse.
the class JsonMappingTest method testInvokeJsFunctionWithSingleByteArrayParam.
@Test
public void testInvokeJsFunctionWithSingleByteArrayParam() {
IDataMapper mapper = IDataMapper.newBuilder().withSpecification(new SpecWithArrayType()).registerScriptEvalProvider(new JavascriptEvalProvider()).build();
BinaryData data = new BinaryData();
data.setData("Hallo".getBytes());
InfomodelValue mappedOutput = mapper.mapSource(data);
FunctionblockValue buttonFunctionblockData = mappedOutput.get("button");
assertEquals("H", buttonFunctionblockData.getStatusProperty("flag").get().getValue());
}
use of org.eclipse.vorto.model.runtime.FunctionblockValue in project vorto by eclipse.
the class TwinPayloadFactoryTest method testCreateRequestSingleMultipleFbProperties.
@Test
public void testCreateRequestSingleMultipleFbProperties() {
FunctionblockModel fbm = FunctionblockModel.Builder(ModelId.fromPrettyFormat("org.eclipse.vorto:Temperature:1.0.0")).statusProperty(ModelProperty.createPrimitiveProperty("value", true, PrimitiveType.FLOAT)).build();
Infomodel infomodel = Infomodel.Builder(ModelId.fromPrettyFormat("com.acme:TemperatureSensor:1.0.0")).withProperty(ModelProperty.Builder("indoorTemperature", fbm).build()).withProperty(ModelProperty.Builder("outdoorTemperature", fbm).build()).build();
FunctionblockValue indoorTemperature = new FunctionblockValue(fbm);
indoorTemperature.withStatusProperty("value", 20.2);
FunctionblockValue outdoorTemperature = new FunctionblockValue(fbm);
outdoorTemperature.withStatusProperty("value", 9.2);
InfomodelValue infomodelValue = new InfomodelValue(infomodel);
infomodelValue.withFunctionblock("indoorTemperature", indoorTemperature);
infomodelValue.withFunctionblock("outdoorTemperature", outdoorTemperature);
System.out.println(gson.toJson(TwinPayloadFactory.toShadowUpdateRequest(infomodelValue)));
}
Aggregations