### Question:
ChargingStationOcpp15SoapClient implements ChargingStationOcpp15Client { public Map<String, String> getConfiguration(ChargingStationId id, Set<String> keys) { LOG.info("Retrieving configuration for {}", id); ChargePointService chargePointService = this.createChargingStationService(id); GetConfigurationRequest getConfigurationRequest = new GetConfigurationRequest(); getConfigurationRequest.getKey().addAll(keys); GetConfigurationResponse response = chargePointService.getConfiguration(getConfigurationRequest, id.getId()); Map<String, String> configurationItems = Maps.newHashMap(); for (KeyValue keyValue : response.getConfigurationKey()) { configurationItems.put(keyValue.getKey(), keyValue.getValue()); } return configurationItems; }  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 getConfigurationVerifyReturnValue() { when(chargePointService.getConfiguration(any(GetConfigurationRequest.class), anyString())).thenReturn(getGetConfigurationResponse()); Map<String, String> configuration = client.getConfiguration(CHARGING_STATION_ID, new HashSet<String>()); for (KeyValue keyValue : getGetConfigurationResponse().getConfigurationKey()) { assertTrue(configuration.containsKey(keyValue.getKey())); assertEquals(configuration.get(keyValue.getKey()), keyValue.getValue()); } }
@Test public void getConfigurationVerifyServiceCall() { when(chargePointService.getConfiguration(any(GetConfigurationRequest.class), anyString())).thenReturn(getGetConfigurationResponse()); ArgumentCaptor<GetConfigurationRequest> getConfigurationRequestArgument = ArgumentCaptor.forClass(GetConfigurationRequest.class); client.getConfiguration(CHARGING_STATION_ID, CONFIGURATION_SPECIFIC_KEYS); verify(chargePointService).getConfiguration(getConfigurationRequestArgument.capture(), eq(CHARGING_STATION_ID.getId())); Assert.assertEquals(getConfigurationRequestArgument.getValue().getKey().size(), CONFIGURATION_SPECIFIC_KEYS.size()); }