### Question:
ChargingStationOcpp12SoapClient implements ChargingStationOcpp12Client { @Override public void updateFirmware(ChargingStationId id, String downloadLocation, Date retrieveDate, Integer numRetries, Integer retryInterval) { ChargePointService chargePointService = this.createChargingStationService(id); UpdateFirmwareRequest request = new UpdateFirmwareRequest(); request.setLocation(downloadLocation); request.setRetrieveDate(retrieveDate); request.setRetries(numRetries); request.setRetryInterval(retryInterval); chargePointService.updateFirmware(request, id.getId()); LOG.info("Update firmware on {} has been requested", id.getId()); }  @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 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); void setDomainService(DomainService domainService); void setChargingStationProxyFactory(ChargingStationProxyFactory chargingStationProxyFactory);  }### Answer:
@Test public void updateFirmwareNoException() { client.updateFirmware(CHARGING_STATION_ID, DOWNLOAD_LOCATION, RETRIEVED_DATE, NUMBER_OF_RETRIES, RETRY_INTERVAL); }
@Test public void updateFirmwareVerifyServiceCall() { ArgumentCaptor<UpdateFirmwareRequest> updateFirmwareArgument = ArgumentCaptor.forClass(UpdateFirmwareRequest.class); client.updateFirmware(CHARGING_STATION_ID, DOWNLOAD_LOCATION, RETRIEVED_DATE, NUMBER_OF_RETRIES, RETRY_INTERVAL); verify(chargePointService).updateFirmware(updateFirmwareArgument.capture(), eq(CHARGING_STATION_ID.getId())); assertEquals(DOWNLOAD_LOCATION, updateFirmwareArgument.getValue().getLocation()); assertEquals(NUMBER_OF_RETRIES, updateFirmwareArgument.getValue().getRetries()); assertEquals(RETRY_INTERVAL, updateFirmwareArgument.getValue().getRetryInterval()); assertEquals(RETRIEVED_DATE, updateFirmwareArgument.getValue().getRetrieveDate()); }