aboutsummaryrefslogtreecommitdiffstats
path: root/certServiceClient/src
diff options
context:
space:
mode:
Diffstat (limited to 'certServiceClient/src')
-rw-r--r--certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/ArtifactsCreatorProvider.java2
-rw-r--r--certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/conversion/ConvertedArtifactsCreatorFactory.java2
-rw-r--r--certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/writer/CertFileWriter.java16
-rw-r--r--certServiceClient/src/test/java/org/onap/aaf/certservice/client/certification/writer/CertFileWriterTest.java48
4 files changed, 38 insertions, 30 deletions
diff --git a/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/ArtifactsCreatorProvider.java b/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/ArtifactsCreatorProvider.java
index 06a4cc6e..954f3d30 100644
--- a/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/ArtifactsCreatorProvider.java
+++ b/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/ArtifactsCreatorProvider.java
@@ -40,7 +40,7 @@ public enum ArtifactsCreatorProvider {
PEM("PEM") {
@Override
ArtifactsCreator create(String destPath) {
- return new PemArtifactsCreator(new CertFileWriter(destPath), new PrivateKeyToPemEncoder());
+ return new PemArtifactsCreator(CertFileWriter.createWithDir(destPath), new PrivateKeyToPemEncoder());
}
};
diff --git a/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/conversion/ConvertedArtifactsCreatorFactory.java b/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/conversion/ConvertedArtifactsCreatorFactory.java
index 586e2952..bda796eb 100644
--- a/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/conversion/ConvertedArtifactsCreatorFactory.java
+++ b/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/conversion/ConvertedArtifactsCreatorFactory.java
@@ -28,7 +28,7 @@ public class ConvertedArtifactsCreatorFactory {
public static ConvertedArtifactsCreator createConverter(String destPath, String fileExtension, String keyStoreType) {
return new ConvertedArtifactsCreator(
- new CertFileWriter(destPath),
+ CertFileWriter.createWithDir(destPath),
new RandomPasswordGenerator(),
new PemConverter(keyStoreType),
fileExtension);
diff --git a/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/writer/CertFileWriter.java b/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/writer/CertFileWriter.java
index 2829517c..fec3ebd3 100644
--- a/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/writer/CertFileWriter.java
+++ b/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/writer/CertFileWriter.java
@@ -23,6 +23,7 @@ import org.onap.aaf.certservice.client.certification.exception.CertFileWriterExc
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Path;
@@ -32,10 +33,15 @@ public class CertFileWriter {
private static final Logger LOGGER = LoggerFactory.getLogger(CertFileWriter.class);
private final String destPath;
- public CertFileWriter(String destPath) {
+ private CertFileWriter(String destPath) {
this.destPath = destPath;
}
+ public static CertFileWriter createWithDir(String destPath) {
+ createDirIfNotExists(destPath);
+ return new CertFileWriter(destPath);
+ }
+
public void saveData(byte[] data, String filename) throws CertFileWriterException {
LOGGER.debug("Attempt to save file {} in path {}", filename, destPath);
try (FileOutputStream outputStream = new FileOutputStream(Path.of(destPath, filename).toString())) {
@@ -45,4 +51,12 @@ public class CertFileWriter {
throw new CertFileWriterException(e);
}
}
+
+ private static void createDirIfNotExists(String destPath) {
+ File destFolderPath = new File(destPath);
+ if (!destFolderPath.exists()) {
+ LOGGER.debug("Destination path not exists, subdirectories are created");
+ destFolderPath.mkdirs();
+ }
+ }
}
diff --git a/certServiceClient/src/test/java/org/onap/aaf/certservice/client/certification/writer/CertFileWriterTest.java b/certServiceClient/src/test/java/org/onap/aaf/certservice/client/certification/writer/CertFileWriterTest.java
index 61c4d835..c45876ec 100644
--- a/certServiceClient/src/test/java/org/onap/aaf/certservice/client/certification/writer/CertFileWriterTest.java
+++ b/certServiceClient/src/test/java/org/onap/aaf/certservice/client/certification/writer/CertFileWriterTest.java
@@ -20,8 +20,8 @@
package org.onap.aaf.certservice.client.certification.writer;
import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
import org.onap.aaf.certservice.client.certification.exception.CertFileWriterException;
import java.io.File;
@@ -35,48 +35,42 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
class CertFileWriterTest {
- private static final String RESOURCES_PATH = "src/test/resources";
- private static final String OUTPUT_PATH = RESOURCES_PATH + "/generatedFiles/";
+ private static final String RESOURCES_PATH = "src/test/resources/";
+ private static final String OUTPUT_PATH = RESOURCES_PATH + "generatedFiles/";
+ private static final String NOT_EXISTING_OUTPUT_PATH = OUTPUT_PATH + "directoryDoesNotExist/";
private static final String TRUSTSTORE_P12 = "truststore.p12";
- private static final String ERROR_MESSAGE = "java.io.FileNotFoundException: src/test/resources/generatedFiles/thisPathDoesNotExist/truststore.p12 (No such file or directory)";
-
private File outputDirectory = new File(OUTPUT_PATH);
- @BeforeEach
- void createDirectory() {
- outputDirectory.mkdir();
- }
-
@AfterEach
void cleanUpFiles() {
- List.of(outputDirectory.listFiles()).forEach(f -> f.delete());
- outputDirectory.delete();
+ deleteDirectoryRecursive(outputDirectory);
}
- @Test
- void certFileWriterShouldCreateFilesWithDataInGivenLocation()
+ @ParameterizedTest
+ @ValueSource(strings = {OUTPUT_PATH, NOT_EXISTING_OUTPUT_PATH})
+ void certFileWriterShouldCreateFilesWithDataInGivenLocation(String outputPath)
throws IOException, CertFileWriterException {
// given
+ File truststore = new File(outputPath + TRUSTSTORE_P12);
+ CertFileWriter certFileWriter = CertFileWriter.createWithDir(outputPath);
final byte[] data = new byte[]{-128, 1, 2, 3, 127};
- File truststore = new File(OUTPUT_PATH + TRUSTSTORE_P12);
- CertFileWriter certFileWriter = new CertFileWriter(OUTPUT_PATH);
// when
certFileWriter.saveData(data, TRUSTSTORE_P12);
// then
assertThat(truststore.exists()).isTrue();
- assertThat(Files.readAllBytes(Path.of(OUTPUT_PATH + TRUSTSTORE_P12))).isEqualTo(data);
+ assertThat(Files.readAllBytes(Path.of(outputPath + TRUSTSTORE_P12))).isEqualTo(data);
}
- @Test
- void certFileWriterShouldThrowCertFileWriterExceptionWhenOutputDirectoryDoesNotExist() {
- // given
- final byte[] data = new byte[]{-128, 1, 2, 3, 0};
- CertFileWriter certFileWriter = new CertFileWriter(OUTPUT_PATH + "thisPathDoesNotExist/");
-
- // when then
- assertThatThrownBy(() -> certFileWriter.saveData(data, TRUSTSTORE_P12))
- .isInstanceOf(CertFileWriterException.class).hasMessage(ERROR_MESSAGE);
+ private void deleteDirectoryRecursive(File dirForDeletion) {
+ List.of(dirForDeletion.listFiles()).forEach(file -> {
+ if (file.isDirectory()) {
+ deleteDirectoryRecursive(file);
+ }
+ file.delete();
+ });
+ dirForDeletion.delete();
}
+
}