### Question:
ChargingStationOcpp15SoapClient implements ChargingStationOcpp15Client { @Override public String getDiagnostics(ChargingStationId id, DiagnosticsUploadSettings diagnosticsUploadSettings) { ChargePointService chargePointService = this.createChargingStationService(id); GetDiagnosticsRequest request = new GetDiagnosticsRequest(); request.setLocation(diagnosticsUploadSettings.getUploadLocation()); request.setRetries(diagnosticsUploadSettings.getNumRetries()); request.setRetryInterval(diagnosticsUploadSettings.getRetryInterval()); request.setStartTime(diagnosticsUploadSettings.getPeriodStartTime()); request.setStopTime(diagnosticsUploadSettings.getPeriodStopTime()); GetDiagnosticsResponse response = chargePointService.getDiagnostics(request, id.getId()); return response.getFileName(); }  Map<String, String> getConfiguration(ChargingStationId id, Set<String> keys); @Override boolean startTransaction(ChargingStationId id, IdentifyingToken identifyingToken, EvseId evseId); @Override boolean stopTransaction(ChargingStationId id, int transactionId); @Override boolean softReset(ChargingStationId id); @Override boolean hardReset(ChargingStationId id); @Override RequestResult unlockConnector(ChargingStationId id, EvseId evseId); @Override RequestResult changeAvailabilityToInoperative(ChargingStationId id, EvseId evseId); @Override RequestResult changeAvailabilityToOperative(ChargingStationId id, EvseId evseId); @Override DataTransferRequestResult dataTransfer(ChargingStationId id, DataTransferMessage dataTransferMessage); @Override boolean changeConfiguration(ChargingStationId id, ConfigurationItem configurationItem); @Override String getDiagnostics(ChargingStationId id, DiagnosticsUploadSettings diagnosticsUploadSettings); @Override boolean clearCache(ChargingStationId id); @Override void updateFirmware(ChargingStationId id, String downloadLocation, Date retrieveDate, Integer numRetries, Integer retryInterval); @Override int getAuthorizationListVersion(ChargingStationId id); @Override RequestResult sendAuthorizationList(ChargingStationId id, String hash, int listVersion, Set<IdentifyingToken> identifyingTokens, AuthorizationListUpdateType updateType); @Override io.motown.domain.api.chargingstation.ReservationStatus reserveNow(ChargingStationId id, EvseId evseId, IdentifyingToken identifyingToken, Date expiryDate, IdentifyingToken parentIdentifyingToken, int reservationId); @Override RequestResult cancelReservation(ChargingStationId id, int reservationId); void setDomainService(DomainService domainService); void setChargingStationProxyFactory(ChargingStationProxyFactory chargingStationProxyFactory); void setIdentifyingTokenConverterService(IdentifyingTokenConverterService identifyingTokenConverterService);  }### Answer:
@Test public void getDiagnosticsVerifyReturnValue() { when(chargePointService.getDiagnostics(any(GetDiagnosticsRequest.class), eq(CHARGING_STATION_ID.getId()))).thenReturn(getGetDiagnosticsResponse(DIAGNOSTICS_FILENAME)); String returnFilename = client.getDiagnostics(CHARGING_STATION_ID, DIAGNOSTICS_UPLOAD_SETTINGS); assertEquals(DIAGNOSTICS_FILENAME, returnFilename); }
@Test public void getDiagnosticsVerifyServiceCall() { when(chargePointService.getDiagnostics(any(GetDiagnosticsRequest.class), eq(CHARGING_STATION_ID.getId()))).thenReturn(getGetDiagnosticsResponse(DIAGNOSTICS_FILENAME)); ArgumentCaptor<GetDiagnosticsRequest> getDiagnosticsArgument = ArgumentCaptor.forClass(GetDiagnosticsRequest.class); client.getDiagnostics(CHARGING_STATION_ID, new DiagnosticsUploadSettings(UPLOAD_LOCATION, NUMBER_OF_RETRIES, RETRY_INTERVAL, PERIOD_START_TIME, PERIOD_STOP_TIME)); verify(chargePointService).getDiagnostics(getDiagnosticsArgument.capture(), eq(CHARGING_STATION_ID.getId())); assertEquals(UPLOAD_LOCATION, getDiagnosticsArgument.getValue().getLocation()); assertEquals(NUMBER_OF_RETRIES, getDiagnosticsArgument.getValue().getRetries()); assertEquals(RETRY_INTERVAL, getDiagnosticsArgument.getValue().getRetryInterval()); assertEquals(PERIOD_START_TIME, getDiagnosticsArgument.getValue().getStartTime()); assertEquals(PERIOD_STOP_TIME, getDiagnosticsArgument.getValue().getStopTime()); }