aboutsummaryrefslogtreecommitdiffstats
path: root/utils-test/src/test/java/org/onap/policy
diff options
context:
space:
mode:
Diffstat (limited to 'utils-test/src/test/java/org/onap/policy')
-rw-r--r--utils-test/src/test/java/org/onap/policy/common/utils/gson/GsonTestUtilsTest.java36
-rw-r--r--utils-test/src/test/java/org/onap/policy/common/utils/io/SerializerTest.java9
-rw-r--r--utils-test/src/test/java/org/onap/policy/common/utils/security/SelfSignedKeyStoreTest.java151
-rw-r--r--utils-test/src/test/java/org/onap/policy/common/utils/time/PseudoScheduledFutureTest.java8
4 files changed, 169 insertions, 35 deletions
diff --git a/utils-test/src/test/java/org/onap/policy/common/utils/gson/GsonTestUtilsTest.java b/utils-test/src/test/java/org/onap/policy/common/utils/gson/GsonTestUtilsTest.java
index f16764c9..51522ec0 100644
--- a/utils-test/src/test/java/org/onap/policy/common/utils/gson/GsonTestUtilsTest.java
+++ b/utils-test/src/test/java/org/onap/policy/common/utils/gson/GsonTestUtilsTest.java
@@ -2,7 +2,8 @@
* ============LICENSE_START=======================================================
* ONAP
* ================================================================================
- * Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2024 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,7 +35,9 @@ import com.google.gson.JsonParseException;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
-import org.apache.commons.jexl3.JexlException;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
import org.junit.Before;
import org.junit.Test;
@@ -137,11 +140,7 @@ public class GsonTestUtilsTest {
data.setText(null);
result = utils.applyScripts("use ${obj.text} this", data);
assertEquals("use null this", result);
-
- assertThatThrownBy(() -> utils.applyScripts("use ${obj.text} this", null))
- .isInstanceOf(JsonParseException.class)
- .hasCauseInstanceOf(JexlException.class)
- .hasMessage("cannot expand element: ${obj.text}");
+ assertEquals("use null this", utils.applyScripts("use ${obj.text} this", null));
}
@Test
@@ -225,29 +224,12 @@ public class GsonTestUtilsTest {
assertEquals("[300,{'objE':true,'objEStr':'obj-e-string'},false]".replace('\'', '"'), jsonEl.toString());
}
+ @Setter
+ @Getter
+ @ToString
public static class Data {
private int id;
private String text;
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
-
- @Override
- public String toString() {
- return "Data [id=" + id + ", text=" + text + "]";
- }
}
}
diff --git a/utils-test/src/test/java/org/onap/policy/common/utils/io/SerializerTest.java b/utils-test/src/test/java/org/onap/policy/common/utils/io/SerializerTest.java
index b5699fa2..203c78ec 100644
--- a/utils-test/src/test/java/org/onap/policy/common/utils/io/SerializerTest.java
+++ b/utils-test/src/test/java/org/onap/policy/common/utils/io/SerializerTest.java
@@ -3,6 +3,7 @@
* ONAP Policy Engine - Common Modules
* ================================================================================
* Copyright (C) 2018-2020 AT&T Intellectual Property. All rights reserved.
+ * Modificaitons Copyright (C) 2023 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -41,7 +42,7 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.onap.policy.common.utils.io.Serializer.Factory;
-import org.powermock.reflect.Whitebox;
+import org.springframework.test.util.ReflectionTestUtils;
public class SerializerTest {
private static final String FACTORY = "factory";
@@ -53,12 +54,12 @@ public class SerializerTest {
@BeforeClass
public static void setUpBeforeClass() {
- saveFactory = Whitebox.getInternalState(Serializer.class, FACTORY);
+ saveFactory = (Factory) ReflectionTestUtils.getField(Serializer.class, FACTORY);
}
@AfterClass
public static void tearDownAfterClass() {
- Whitebox.setInternalState(Serializer.class, FACTORY, saveFactory);
+ ReflectionTestUtils.setField(Serializer.class, FACTORY, saveFactory);
}
@Before
@@ -376,7 +377,7 @@ public class SerializerTest {
* @param factory new factory to be set
*/
private void setFactory(Factory factory) {
- Whitebox.setInternalState(Serializer.class, FACTORY, factory);
+ ReflectionTestUtils.setField(Serializer.class, FACTORY, factory);
}
/**
diff --git a/utils-test/src/test/java/org/onap/policy/common/utils/security/SelfSignedKeyStoreTest.java b/utils-test/src/test/java/org/onap/policy/common/utils/security/SelfSignedKeyStoreTest.java
new file mode 100644
index 00000000..27bceacf
--- /dev/null
+++ b/utils-test/src/test/java/org/onap/policy/common/utils/security/SelfSignedKeyStoreTest.java
@@ -0,0 +1,151 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP
+ * ================================================================================
+ * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.common.utils.security;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class SelfSignedKeyStoreTest {
+ private static final String USER_DIR_PROP = "user.dir";
+
+ private static String saveUserDir;
+ private static String defaultName;
+ private static File defaultKeystore;
+
+
+ /**
+ * Saves the user.dir property and initializes static fields.
+ */
+ @BeforeClass
+ public static void setUpBeforeClass() {
+ saveUserDir = System.getProperty(USER_DIR_PROP);
+ defaultName = saveUserDir + "/" + SelfSignedKeyStore.RELATIVE_PATH;
+ defaultKeystore = new File(defaultName);
+ }
+
+ @Before
+ public void setUp() {
+ System.setProperty(USER_DIR_PROP, saveUserDir);
+ delete(defaultKeystore);
+ }
+
+ @Test
+ public void testSelfSignedKeyStore() throws Exception {
+ SelfSignedKeyStore ks = new SelfSignedKeyStore();
+
+ assertThat(ks.getKeystoreName()).isEqualTo(defaultName);
+ assertThat(defaultKeystore).exists();
+ }
+
+ @Test
+ public void testSelfSignedKeyStoreString() throws IOException, InterruptedException {
+ String relName = "target/my-keystore";
+ String altName = saveUserDir + "/" + relName;
+ File altFile = new File(altName);
+
+ delete(altFile);
+
+ SelfSignedKeyStore ks = new SelfSignedKeyStore(relName);
+
+ assertThat(ks.getKeystoreName()).isEqualTo(altName);
+ assertThat(altFile).exists();
+ }
+
+ /**
+ * Tests the constructor, when the keystore already exists.
+ */
+ @Test
+ public void testSelfSignedKeyStoreStringExists() throws Exception {
+ new SelfSignedKeyStore();
+ assertThat(defaultKeystore).exists();
+
+ // change the timestamp on the keystore so it's a little old, but not too old
+ defaultKeystore.setLastModified(
+ System.currentTimeMillis() - TimeUnit.MILLISECONDS.convert(10, TimeUnit.MINUTES));
+ long tcurrent = defaultKeystore.lastModified();
+
+ // this should not recreate the keystore, thus the timestamp should be unchanged
+ new SelfSignedKeyStore();
+ assertThat(defaultKeystore.lastModified()).isEqualTo(tcurrent);
+
+ // change the timestamp on the keystore so it's too old
+ defaultKeystore.setLastModified(
+ System.currentTimeMillis() - TimeUnit.MILLISECONDS.convert(1000, TimeUnit.HOURS));
+ tcurrent = defaultKeystore.lastModified();
+
+ // this should recreate the keystore
+ new SelfSignedKeyStore();
+ assertThat(defaultKeystore.lastModified()).isGreaterThan(tcurrent);
+ }
+
+ /**
+ * Tests the constructor, when the SAN file is not found.
+ */
+ @Test
+ public void testSelfSignedKeyStoreStringNoSanFile() throws Exception {
+ assertThatThrownBy(() -> new SelfSignedKeyStore() {
+ @Override
+ protected String getKeystoreSanName() {
+ return "unknown/san/file.txt";
+ }
+ }).isInstanceOf(FileNotFoundException.class).hasMessageContaining("file.txt");
+ }
+
+ /**
+ * Tests the constructor, when write fails.
+ */
+ @Test
+ public void testSelfSignedKeyStoreStringWriteFailure() throws Exception {
+ assertThatThrownBy(() -> new SelfSignedKeyStore("target/unknown/path/to/keystore"))
+ .isInstanceOf(IOException.class);
+ }
+
+ @Test
+ public void testGetKeystoreName() throws Exception {
+ String relpath = SelfSignedKeyStore.RELATIVE_PATH;
+
+ // append the first part of the relative path to user.dir
+ System.setProperty(USER_DIR_PROP, saveUserDir + "/" + relpath.substring(0, relpath.indexOf('/')));
+
+ // create a keystore using the remaining components of the relative path
+ SelfSignedKeyStore ks = new SelfSignedKeyStore(relpath.substring(relpath.indexOf('/') + 1));
+
+ assertThat(ks.getKeystoreName()).isEqualTo(defaultName);
+ assertThat(defaultKeystore).exists();
+
+ // try again using the original relative path - should fail, as it's now deeper
+ assertThatThrownBy(() -> new SelfSignedKeyStore(relpath)).isInstanceOf(IOException.class);
+ }
+
+ private static void delete(File file) {
+ if (file.exists()) {
+ assertThat(file.delete()).isTrue();
+ }
+ }
+}
diff --git a/utils-test/src/test/java/org/onap/policy/common/utils/time/PseudoScheduledFutureTest.java b/utils-test/src/test/java/org/onap/policy/common/utils/time/PseudoScheduledFutureTest.java
index e23bbd29..248edf61 100644
--- a/utils-test/src/test/java/org/onap/policy/common/utils/time/PseudoScheduledFutureTest.java
+++ b/utils-test/src/test/java/org/onap/policy/common/utils/time/PseudoScheduledFutureTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP
* ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,9 +31,11 @@ import java.util.concurrent.Delayed;
import java.util.concurrent.TimeUnit;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnitRunner;
+@RunWith(MockitoJUnitRunner.class)
public class PseudoScheduledFutureTest {
private static final long DELAY_MS = 1000L;
@@ -49,8 +51,6 @@ public class PseudoScheduledFutureTest {
*/
@Before
public void setUp() {
- MockitoAnnotations.initMocks(this);
-
when(work.getDelay()).thenReturn(DELAY_MS);
count = 0;