@Test
public void processShouldDelegateProcessingReportsForEachDeviceBehindTheGateway() {

    // Arrange
    final Iec60870Device gatewayDevice = fromSettings(this.getGatewayDeviceSettings());
    final Iec60870Device lightMeasurementDevice1 = fromSettings(this.getLightMeasurementDevice1Settings());
    final Iec60870Device lightMeasurementDevice2 = fromSettings(this.getLightMeasurementDevice2Settings());
    when(this.iec60870DeviceRepository.findByGatewayDeviceIdentification(gatewayDevice.getDeviceIdentification()))
            .thenReturn(Arrays.asList(lightMeasurementDevice1, lightMeasurementDevice2));
    final MeasurementReportDto measurementReportDto = this.getMeasurementReportDto();
    final ResponseMetadata responseMetadata = this.getResponseMetadata(GATEWAY_DEVICE_IDENTIFICATION);
    // Act
    this.lightMeasurementGatewayDeviceResponseService.process(measurementReportDto, responseMetadata);
    // Assert
    verify(this.lightMeasurementDeviceResponseService, times(1)).sendLightSensorStatusResponse(
            same(measurementReportDto), same(lightMeasurementDevice1), same(responseMetadata), anyString());
    verify(this.lightMeasurementDeviceResponseService, times(1)).sendLightSensorStatusResponse(
            same(measurementReportDto), same(lightMeasurementDevice2), same(responseMetadata), anyString());
}