Skip to content

Commit

Permalink
Added tests for KeyStoreReader class
Browse files Browse the repository at this point in the history
  • Loading branch information
dmccoystephenson committed Jul 30, 2024
1 parent 856ee47 commit 9b62b05
Showing 1 changed file with 84 additions and 0 deletions.
84 changes: 84 additions & 0 deletions src/test/java/us/dot/its/jpo/sec/helpers/KeyStoreReaderTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package us.dot.its.jpo.sec.helpers;

import static org.junit.Assert.assertThrows;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;

import org.junit.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;

import mockit.Tested;

@ExtendWith(MockitoExtension.class)
public class KeyStoreReaderTest {

@Tested
KeyStoreReader keyStoreReader = new KeyStoreReader();

private void createKeyStoreForTesting() throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException {
KeyStore testKeyStore = KeyStore.getInstance(KeyStore.getDefaultType());
char[] password = "password".toCharArray();
testKeyStore.load(null, password);
testKeyStore.store(new FileOutputStream("src/test/resources/test.jks"), password);
}

private void setUp() throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException {
// create resources directory if it doesn't exist
File resourcesDir = new File("src/test/resources");
if (!resourcesDir.exists()) {
resourcesDir.mkdir();
}
File file = new File("src/test/resources/test.jks");
if (file.exists()) {
file.delete();
}
createKeyStoreForTesting();
}

@Test
public void testReadStore_Success() throws Exception {
// prepare
setUp();
String keyStorePath = "src/test/resources/test.jks";
String keyStorePassword = "password";

// execute
KeyStore keyStore = keyStoreReader.readStore(keyStorePath, keyStorePassword);

// verify
assert(keyStore != null);
}

@Test
public void testReadStore_Failure_WrongPassword() throws Exception {
// prepare
setUp();
String keyStorePath = "src/test/resources/test.jks";
String keyStorePassword = "wrongpassword";

// execute
assertThrows(Exception.class, () -> {
KeyStore keyStore = keyStoreReader.readStore(keyStorePath, keyStorePassword);
});
}

@Test
public void testReadStore_Failure_WrongPath() throws Exception {
// prepare
setUp();
String keyStorePath = "src/test/resources/wrong.jks";
String keyStorePassword = "password";

// execute
assertThrows(Exception.class, () -> {
KeyStore keyStore = keyStoreReader.readStore(keyStorePath, keyStorePassword);
});
}
}

0 comments on commit 9b62b05

Please sign in to comment.