Merge "Modify UT after adding output type parameter"
[oom/platform/cert-service.git] / certServiceClient / src / main / java / org / onap / aaf / certservice / client / configuration / factory / ClientConfigurationFactory.java
index 96b1fb8..d8498d8 100644 (file)
 package org.onap.aaf.certservice.client.configuration.factory;
 
 import org.onap.aaf.certservice.client.configuration.ClientConfigurationEnvs;
-import org.onap.aaf.certservice.client.configuration.EnvValidationUtils;
 import org.onap.aaf.certservice.client.configuration.EnvsForClient;
 import org.onap.aaf.certservice.client.configuration.exception.ClientConfigurationException;
 import org.onap.aaf.certservice.client.configuration.model.ClientConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.Optional;
 
-public class ClientConfigurationFactory implements AbstractConfigurationFactory<ClientConfiguration> {
+public class ClientConfigurationFactory extends AbstractConfigurationFactory<ClientConfiguration> {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(ClientConfigurationFactory.class);
     private final EnvsForClient envsForClient;
 
-
     public ClientConfigurationFactory(EnvsForClient envsForClient) {
         this.envsForClient = envsForClient;
     }
@@ -42,22 +43,33 @@ public class ClientConfigurationFactory implements AbstractConfigurationFactory<
 
         ClientConfiguration configuration = new ClientConfiguration();
 
-        Optional.ofNullable(envsForClient.getUrlToCertService()).filter(EnvValidationUtils::isEnvExists)
+
+        envsForClient.getUrlToCertService()
                 .map(configuration::setUrlToCertService);
 
-        Optional.ofNullable(envsForClient.getRequestTimeOut()).filter(EnvValidationUtils::isEnvExists)
+        envsForClient.getRequestTimeOut()
                 .map(timeout -> configuration.setRequestTimeout(Integer.valueOf(timeout)));
 
-        Optional.ofNullable(envsForClient.getOutputPath()).filter(EnvValidationUtils::isEnvExists)
-                .filter(EnvValidationUtils::isPathValid)
+        envsForClient.getOutputPath()
+                .filter(this::isPathValid)
                 .map(configuration::setCertsOutputPath)
                 .orElseThrow(() -> new ClientConfigurationException(ClientConfigurationEnvs.OUTPUT_PATH + " is invalid."));
 
-        Optional.ofNullable(envsForClient.getCaName()).filter(EnvValidationUtils::isEnvExists)
-                .filter(EnvValidationUtils::isAlphaNumeric)
+        envsForClient.getCaName()
+                .filter(this::isAlphaNumeric)
                 .map(configuration::setCaName)
                 .orElseThrow(() -> new ClientConfigurationException(ClientConfigurationEnvs.CA_NAME + " is invalid."));
 
+        Optional<String> outputType = envsForClient.getOutputType();
+
+        if (outputType.isPresent()) {
+            outputType.filter(this::isOutputTypeValid)
+                    .map(configuration::setOutputType)
+                    .orElseThrow(() -> new ClientConfigurationException(ClientConfigurationEnvs.OUTPUT_TYPE + " is invalid."));
+        }
+
+        LOGGER.info("Successful validation of Client configuration. Configuration data: {}", configuration.toString());
+
         return configuration;
     }
 }