diff options
Diffstat (limited to 'utils-test/src/test/java/org/onap/policy')
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; |