use of org.opensmartgridplatform.adapter.ws.schema.publiclighting.adhocmanagement.LightValue in project open-smart-grid-platform by OSGP.
the class AuthorizeDeviceFunctionsSteps method setLightSchedule.
private void setLightSchedule(final Map<String, String> requestParameters) throws WebServiceSecurityException, GeneralSecurityException, IOException {
final org.opensmartgridplatform.adapter.ws.schema.publiclighting.schedulemanagement.SetScheduleRequest request = new org.opensmartgridplatform.adapter.ws.schema.publiclighting.schedulemanagement.SetScheduleRequest();
request.setDeviceIdentification(getString(requestParameters, PlatformPubliclightingKeys.KEY_DEVICE_IDENTIFICATION, PlatformPubliclightingDefaults.DEFAULT_DEVICE_IDENTIFICATION));
final Schedule schedule = new Schedule();
schedule.setActionTime(ActionTimeType.SUNRISE);
schedule.setIndex(0);
schedule.setWeekDay(WeekDayType.ALL);
schedule.setTime(DateTime.now().toString());
schedule.setIsEnabled(true);
schedule.setMinimumLightsOn(10);
final org.opensmartgridplatform.adapter.ws.schema.publiclighting.schedulemanagement.LightValue lightValue = new org.opensmartgridplatform.adapter.ws.schema.publiclighting.schedulemanagement.LightValue();
lightValue.setDimValue(100);
lightValue.setIndex(1);
lightValue.setOn(true);
schedule.getLightValue().add(lightValue);
schedule.setTriggerType(TriggerType.LIGHT_TRIGGER);
final WindowType windowType = new WindowType();
windowType.setMinutesAfter(0);
windowType.setMinutesBefore(0);
schedule.setTriggerWindow(windowType);
request.getSchedules().add(schedule);
ScenarioContext.current().put(PlatformPubliclightingKeys.RESPONSE, this.publicLightingScheduleManagementClient.setSchedule(request));
}
use of org.opensmartgridplatform.adapter.ws.schema.publiclighting.adhocmanagement.LightValue in project open-smart-grid-platform by OSGP.
the class GetStatusSteps method thePlatformBuffersAGetStatusResponseMessageForDevice.
@Then("^the platform buffers a get status response message for device \"([^\"]*)\"$")
public void thePlatformBuffersAGetStatusResponseMessageForDevice(final String deviceIdentification, final Map<String, String> expectedResult) {
final GetStatusAsyncRequest request = this.getGetStatusAsyncRequest(deviceIdentification);
final GetStatusResponse response = Wait.untilAndReturn(() -> {
final GetStatusResponse retval = this.publicLightingClient.getGetStatusResponse(request);
assertThat(retval).isNotNull();
assertThat(retval.getResult()).isEqualTo(Enum.valueOf(OsgpResultType.class, expectedResult.get(PlatformPubliclightingKeys.KEY_RESULT)));
return retval;
});
final DeviceStatus deviceStatus = (DeviceStatus) response.getStatus();
assertThat(deviceStatus.getPreferredLinkType()).isEqualTo(getEnum(expectedResult, PlatformPubliclightingKeys.KEY_PREFERRED_LINKTYPE, LinkType.class));
assertThat(deviceStatus.getActualLinkType()).isEqualTo(getEnum(expectedResult, PlatformPubliclightingKeys.KEY_ACTUAL_LINKTYPE, LinkType.class));
assertThat(deviceStatus.getLightType()).isEqualTo(getEnum(expectedResult, PlatformPubliclightingKeys.KEY_LIGHTTYPE, LightType.class));
if (expectedResult.containsKey(PlatformPubliclightingKeys.KEY_EVENTNOTIFICATIONTYPES) && !expectedResult.get(PlatformPubliclightingKeys.KEY_EVENTNOTIFICATIONTYPES).isEmpty()) {
assertThat(deviceStatus.getEventNotifications().size()).isEqualTo(getString(expectedResult, PlatformPubliclightingKeys.KEY_EVENTNOTIFICATIONS, PlatformPubliclightingDefaults.DEFAULT_EVENTNOTIFICATIONS).split(PlatformPubliclightingKeys.SEPARATOR_COMMA).length);
for (final String eventNotification : getString(expectedResult, PlatformPubliclightingKeys.KEY_EVENTNOTIFICATIONS, PlatformPubliclightingDefaults.DEFAULT_EVENTNOTIFICATIONS).split(PlatformPubliclightingKeys.SEPARATOR_COMMA)) {
assertThat(deviceStatus.getEventNotifications().contains(Enum.valueOf(EventNotificationType.class, eventNotification))).isTrue();
}
}
if (expectedResult.containsKey(PlatformPubliclightingKeys.KEY_LIGHTVALUES) && !expectedResult.get(PlatformPubliclightingKeys.KEY_LIGHTVALUES).isEmpty()) {
assertThat(deviceStatus.getLightValues().size()).isEqualTo(getString(expectedResult, PlatformPubliclightingKeys.KEY_LIGHTVALUES, PlatformPubliclightingDefaults.DEFAULT_LIGHTVALUES).split(PlatformPubliclightingKeys.SEPARATOR_COMMA).length);
for (final String lightValues : getString(expectedResult, PlatformPubliclightingKeys.KEY_LIGHTVALUES, PlatformPubliclightingDefaults.DEFAULT_LIGHTVALUES).split(PlatformPubliclightingKeys.SEPARATOR_COMMA)) {
final String[] parts = lightValues.split(PlatformPubliclightingKeys.SEPARATOR_SEMICOLON);
final Integer index = Integer.parseInt(parts[0]);
final Boolean on = Boolean.parseBoolean(parts[1]);
final Integer dimValue = Integer.parseInt(parts[2]);
boolean found = false;
for (final LightValue lightValue : deviceStatus.getLightValues()) {
if (Objects.equals(lightValue.getIndex(), index) && lightValue.isOn() == on && Objects.equals(lightValue.getDimValue(), dimValue)) {
found = true;
break;
}
}
assertThat(found).isTrue();
}
}
}
use of org.opensmartgridplatform.adapter.ws.schema.publiclighting.adhocmanagement.LightValue in project open-smart-grid-platform by OSGP.
the class SetLightSteps method receivingAsetLightRequestWithValidLightValuesAndInvalidLightValues.
@When("^receiving a set light request with \"([^\"]*)\" valid lightvalues and \"([^\"]*)\" invalid lightvalues$")
public void receivingAsetLightRequestWithValidLightValuesAndInvalidLightValues(final Integer nofValidLightValues, final Integer nofInvalidLightValues, final Map<String, String> requestParameters) throws Throwable {
final SetLightRequest request = new SetLightRequest();
request.setDeviceIdentification(getString(requestParameters, PlatformKeys.KEY_DEVICE_IDENTIFICATION, PlatformDefaults.DEFAULT_DEVICE_IDENTIFICATION));
for (int i = 0; i < nofValidLightValues; i++) {
final LightValue lightValue = new LightValue();
lightValue.setIndex(i + 2);
lightValue.setDimValue(getInteger(requestParameters, PlatformKeys.KEY_DIMVALUE, PlatformDefaults.DEFAULT_DIMVALUE));
lightValue.setOn(getBoolean(requestParameters, PlatformKeys.KEY_ON, PlatformDefaults.DEFAULT_ON));
request.getLightValue().add(lightValue);
}
for (int i = 0; i < nofInvalidLightValues; i++) {
final LightValue lightValue = new LightValue();
lightValue.setIndex(i + 2 + nofValidLightValues);
lightValue.setDimValue(50);
lightValue.setOn(false);
request.getLightValue().add(lightValue);
}
try {
ScenarioContext.current().put(PlatformKeys.RESPONSE, this.client.setLight(request));
} catch (final SoapFaultClientException ex) {
ScenarioContext.current().put(PlatformKeys.RESPONSE, ex);
}
}
use of org.opensmartgridplatform.adapter.ws.schema.publiclighting.adhocmanagement.LightValue in project open-smart-grid-platform by OSGP.
the class OsgpPublicLightingClientSoapService method setLightRequest.
/**
* Creates a WebServiceTemplate and a SetLightRequest with the parameters deviceId, dimValue and
* LightOn. Sends the SetLightRequest to the platform using the WebServiceTemplate. Returns the
* response (CorrelationId) from the Platform.
*
* @return correlation id
*/
public String setLightRequest(final String deviceId, final int dimValue, final boolean lightOn) {
final SetLightRequest request = new SetLightRequest();
final LightValue lightValue = new LightValue();
lightValue.setDimValue(dimValue);
lightValue.setOn(lightOn);
final WebServiceTemplate template = this.soapRequestHelper.createPublicLightingRequest();
request.setDeviceIdentification(deviceId);
request.getLightValue().add(lightValue);
final SetLightAsyncResponse response = (SetLightAsyncResponse) template.marshalSendAndReceive(request);
return response.getAsyncResponse().getCorrelationUid();
}
use of org.opensmartgridplatform.adapter.ws.schema.publiclighting.adhocmanagement.LightValue in project open-smart-grid-platform by OSGP.
the class SetLightSteps method receivingASetLightRequest.
/**
* Sends a Set Light request to the platform for a given device identification.
*
* @param requestParameters The table with the request parameters.
* @throws Throwable when an error occurs
*/
@When("^receiving a set light request$")
public void receivingASetLightRequest(final Map<String, String> requestParameters) throws Throwable {
final SetLightRequest request = new SetLightRequest();
request.setDeviceIdentification(getString(requestParameters, PlatformKeys.KEY_DEVICE_IDENTIFICATION, PlatformDefaults.DEFAULT_DEVICE_IDENTIFICATION));
final LightValue lightValue = new LightValue();
lightValue.setIndex(getInteger(requestParameters, PlatformKeys.KEY_INDEX, PlatformDefaults.DEFAULT_INDEX));
if (requestParameters.containsKey(PlatformKeys.KEY_DIMVALUE) && !StringUtils.isEmpty(requestParameters.get(PlatformKeys.KEY_DIMVALUE))) {
lightValue.setDimValue(getInteger(requestParameters, PlatformKeys.KEY_DIMVALUE, PlatformDefaults.DEFAULT_DIMVALUE));
}
lightValue.setOn(getBoolean(requestParameters, PlatformKeys.KEY_ON, PlatformDefaults.DEFAULT_ON));
request.getLightValue().add(lightValue);
try {
ScenarioContext.current().put(PlatformKeys.RESPONSE, this.client.setLight(request));
} catch (final SoapFaultClientException ex) {
ScenarioContext.current().put(PlatformKeys.RESPONSE, ex);
}
}
Aggregations