Skip to content

Commit

Permalink
RANGER-4730: Migrate Ranger modules to junit5 - phase 2
Browse files Browse the repository at this point in the history
  • Loading branch information
kishorgollapalliwar committed Mar 19, 2024
1 parent 05cba73 commit 8a3747e
Show file tree
Hide file tree
Showing 11 changed files with 194 additions and 198 deletions.
12 changes: 6 additions & 6 deletions kms/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -541,12 +541,6 @@
<version>${junit.jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>${junit.jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
Expand All @@ -558,6 +552,12 @@
<version>${mockito.all.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,18 @@

import org.apache.hadoop.crypto.key.RangerKeyStore;
import org.apache.ranger.kms.dao.DaoManager;
import org.junit.After;
import org.junit.Before;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.MethodOrderer;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.jupiter.MockitoExtension;

@RunWith(MockitoJUnitRunner.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@ExtendWith(MockitoExtension.class)
@TestMethodOrder(MethodOrderer.MethodName.class)
public class TestRangerKeyStore {

String fileFormat = "jceks";
Expand All @@ -51,62 +52,70 @@ public class TestRangerKeyStore {
char[] keyPass = "none".toCharArray();
char[] masterKey = "MasterPassword".toCharArray();

@Before
@BeforeEach
public void checkFileIfExists() {
deleteKeyStoreFile();
}

@After
@AfterEach
public void cleanKeystoreFile() {
deleteKeyStoreFile();
}

@Test(expected=IOException.class)
public void testInvalidKey1() throws NoSuchAlgorithmException,
CertificateException, IOException, KeyStoreException {
@Test
public void testInvalidKey1() {

DaoManager daoManager = Mockito.mock(DaoManager.class);
RangerKeyStore rangerKeyStore = new RangerKeyStore(daoManager);
String keyValue = "enckey:1";
InputStream inputStream = generateKeyStoreFile(keyValue);
rangerKeyStore.engineLoadKeyStoreFile(inputStream, storePass, keyPass, masterKey, fileFormat);
inputStream.close();
Exception exception = Assertions.assertThrows(IOException.class, () -> {
InputStream inputStream = generateKeyStoreFile(keyValue);
rangerKeyStore.engineLoadKeyStoreFile(inputStream, storePass, keyPass, masterKey, fileFormat);
inputStream.close();
});
}

@Test(expected=IOException.class)
@Test
public void testInvalidKey2() throws NoSuchAlgorithmException,
CertificateException, IOException, KeyStoreException {

DaoManager daoManager = Mockito.mock(DaoManager.class);
RangerKeyStore rangerKeyStore = new RangerKeyStore(daoManager);
String keyValue = "1%enckey";
InputStream inputStream = generateKeyStoreFile(keyValue);
rangerKeyStore.engineLoadKeyStoreFile(inputStream, storePass, keyPass, masterKey, fileFormat);
inputStream.close();
Assertions.assertThrows(IOException.class, () -> {
InputStream inputStream = generateKeyStoreFile(keyValue);
rangerKeyStore.engineLoadKeyStoreFile(inputStream, storePass, keyPass, masterKey, fileFormat);
inputStream.close();
});
}

@Test(expected=IOException.class)
@Test
public void testInvalidKey3() throws NoSuchAlgorithmException,
CertificateException, IOException, KeyStoreException {

DaoManager daoManager = Mockito.mock(DaoManager.class);
RangerKeyStore rangerKeyStore = new RangerKeyStore(daoManager);
String keyValue = "1 enckey";
InputStream inputStream = generateKeyStoreFile(keyValue);
rangerKeyStore.engineLoadKeyStoreFile(inputStream, storePass, keyPass, masterKey, fileFormat);
inputStream.close();
Assertions.assertThrows(IOException.class, () -> {
InputStream inputStream = generateKeyStoreFile(keyValue);
rangerKeyStore.engineLoadKeyStoreFile(inputStream, storePass, keyPass, masterKey, fileFormat);
inputStream.close();
});

}

@Test(expected=IOException.class)
@Test
public void testInvalidKey4() throws NoSuchAlgorithmException,
CertificateException, IOException, KeyStoreException {

DaoManager daoManager = Mockito.mock(DaoManager.class);
RangerKeyStore rangerKeyStore = new RangerKeyStore(daoManager);
String keyValue = "_1-enckey";
InputStream inputStream = generateKeyStoreFile(keyValue);
rangerKeyStore.engineLoadKeyStoreFile(inputStream, storePass, keyPass, masterKey, fileFormat);
inputStream.close();
Assertions.assertThrows(IOException.class, () -> {
InputStream inputStream = generateKeyStoreFile(keyValue);
rangerKeyStore.engineLoadKeyStoreFile(inputStream, storePass, keyPass, masterKey, fileFormat);
inputStream.close();
});
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@
import org.apache.hadoop.crypto.key.KeyProvider.KeyVersion;
import org.apache.hadoop.crypto.key.KeyProvider.Options;
import org.apache.hadoop.crypto.key.RangerKeyStoreProvider;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;

/**
* A test for the RangerKeyStoreProvider, which is an implementation of the Hadoop KeyProvider interface, which stores keys in a database.
Expand Down Expand Up @@ -61,15 +61,15 @@ public class RangerKeyStoreProviderTest {
UNRESTRICTED_POLICIES_INSTALLED = ok;
}

@BeforeClass
@BeforeAll
public static void startServers() throws Exception {
if (!UNRESTRICTED_POLICIES_INSTALLED) {
return;
}
DerbyTestUtils.startDerby();
}

@AfterClass
@AfterAll
public static void stopServers() throws Exception {
if (UNRESTRICTED_POLICIES_INSTALLED) {
DerbyTestUtils.stopDerby();
Expand All @@ -93,21 +93,21 @@ public void testCreateDeleteKey() throws Throwable {
options.setBitLength(128);
options.setCipher("AES");
KeyVersion keyVersion = keyProvider.createKey("newkey1", options);
Assert.assertEquals("newkey1", keyVersion.getName());
Assert.assertEquals(128 / 8, keyVersion.getMaterial().length);
Assert.assertEquals("newkey1@0", keyVersion.getVersionName());
Assertions.assertEquals("newkey1", keyVersion.getName());
Assertions.assertEquals(128 / 8, keyVersion.getMaterial().length);
Assertions.assertEquals("newkey1@0", keyVersion.getVersionName());

keyProvider.flush();
Assert.assertEquals(1, keyProvider.getKeys().size());
Assertions.assertEquals(1, keyProvider.getKeys().size());
keyProvider.deleteKey("newkey1");

keyProvider.flush();
Assert.assertEquals(0, keyProvider.getKeys().size());
Assertions.assertEquals(0, keyProvider.getKeys().size());

// Try to delete a key that isn't there
try {
keyProvider.deleteKey("newkey2");
Assert.fail("Failure expected on trying to delete an unknown key");
Assertions.fail("Failure expected on trying to delete an unknown key");
} catch (IOException ex) {
// expected
}
Expand All @@ -130,24 +130,24 @@ public void testRolloverKey() throws Throwable {
options.setBitLength(192);
options.setCipher("AES");
KeyVersion keyVersion = keyProvider.createKey("newkey1", options);
Assert.assertEquals("newkey1", keyVersion.getName());
Assert.assertEquals(192 / 8, keyVersion.getMaterial().length);
Assert.assertEquals("newkey1@0", keyVersion.getVersionName());
Assertions.assertEquals("newkey1", keyVersion.getName());
Assertions.assertEquals(192 / 8, keyVersion.getMaterial().length);
Assertions.assertEquals("newkey1@0", keyVersion.getVersionName());

keyProvider.flush();

// Rollover a new key
byte[] oldKey = keyVersion.getMaterial();
keyVersion = keyProvider.rollNewVersion("newkey1");
Assert.assertEquals("newkey1", keyVersion.getName());
Assert.assertEquals(192 / 8, keyVersion.getMaterial().length);
Assert.assertEquals("newkey1@1", keyVersion.getVersionName());
Assert.assertFalse(Arrays.equals(oldKey, keyVersion.getMaterial()));
Assertions.assertEquals("newkey1", keyVersion.getName());
Assertions.assertEquals(192 / 8, keyVersion.getMaterial().length);
Assertions.assertEquals("newkey1@1", keyVersion.getVersionName());
Assertions.assertFalse(Arrays.equals(oldKey, keyVersion.getMaterial()));

keyProvider.deleteKey("newkey1");

keyProvider.flush();
Assert.assertEquals(0, keyProvider.getKeys().size());
Assertions.assertEquals(0, keyProvider.getKeys().size());

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@
import org.apache.hadoop.crypto.key.RangerKeyStoreProvider;
import org.apache.hadoop.crypto.key.RangerMasterKey;
import org.apache.ranger.kms.dao.DaoManager;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;

/**
* A test for the RangerMasterKey.
Expand All @@ -58,15 +58,15 @@ public class RangerMasterKeyTest {
UNRESTRICTED_POLICIES_INSTALLED = ok;
}

@BeforeClass
@BeforeAll
public static void startServers() throws Exception {
if (!UNRESTRICTED_POLICIES_INSTALLED) {
return;
}
DerbyTestUtils.startDerby();
}

@AfterClass
@AfterAll
public static void stopServers() throws Exception {
if (UNRESTRICTED_POLICIES_INSTALLED) {
DerbyTestUtils.stopDerby();
Expand All @@ -90,21 +90,21 @@ public void testRangerMasterKey() throws Throwable {
+ "password0password0password0password0password0password0password0password0password0password0";

RangerMasterKey rangerMasterKey = new RangerMasterKey(daoManager);
Assert.assertTrue(rangerMasterKey.generateMasterKey(masterKeyPassword));
Assert.assertNotNull(rangerMasterKey.getMasterKey(masterKeyPassword));
Assertions.assertTrue(rangerMasterKey.generateMasterKey(masterKeyPassword));
Assertions.assertNotNull(rangerMasterKey.getMasterKey(masterKeyPassword));

try {
rangerMasterKey.getMasterKey("badpass");
Assert.fail("Failure expected on retrieving a key with the wrong password");
Assertions.fail("Failure expected on retrieving a key with the wrong password");
} catch (Exception ex) {
// expected
}

Assert.assertNotNull(rangerMasterKey.getMasterSecretKey(masterKeyPassword));
Assertions.assertNotNull(rangerMasterKey.getMasterSecretKey(masterKeyPassword));

try {
rangerMasterKey.getMasterSecretKey("badpass");
Assert.fail("Failure expected on retrieving a key with the wrong password");
Assertions.fail("Failure expected on retrieving a key with the wrong password");
} catch (Exception ex) {
// expected
}
Expand Down
Loading

0 comments on commit 8a3747e

Please sign in to comment.