summaryrefslogtreecommitdiffstats
path: root/common-util/src/test/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'common-util/src/test/java/org')
-rw-r--r--common-util/src/test/java/org/openo/baseservice/encrypt/cbb/impl/AesCipherTest.java210
-rw-r--r--common-util/src/test/java/org/openo/baseservice/encrypt/cbb/sha/Sha256Test.java193
-rw-r--r--common-util/src/test/java/org/openo/baseservice/util/RestUtilsTest.java190
-rw-r--r--common-util/src/test/java/org/openo/baseservice/util/impl/SystemEnvVariablesDefImplTest.java113
4 files changed, 706 insertions, 0 deletions
diff --git a/common-util/src/test/java/org/openo/baseservice/encrypt/cbb/impl/AesCipherTest.java b/common-util/src/test/java/org/openo/baseservice/encrypt/cbb/impl/AesCipherTest.java
new file mode 100644
index 0000000..3241b14
--- /dev/null
+++ b/common-util/src/test/java/org/openo/baseservice/encrypt/cbb/impl/AesCipherTest.java
@@ -0,0 +1,210 @@
+/*
+ * Copyright (c) 2016, Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ */
+package org.openo.baseservice.encrypt.cbb.impl;
+
+import java.security.NoSuchAlgorithmException;
+import java.security.spec.InvalidKeySpecException;
+
+import javax.crypto.Cipher;
+import javax.crypto.SecretKeyFactory;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openo.baseservice.encrypt.cbb.CipherCreator;
+import org.openo.baseservice.encrypt.cbb.inf.AbstractCipher;
+
+import junit.framework.Assert;
+import mockit.Mocked;
+import mockit.NonStrictExpectations;
+
+/**
+ * <br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version SDNO 0.5 02-Jun-2016
+ */
+public class AesCipherTest {
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since SDNO 0.5
+ */
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ CipherCreator.instance().setFactory(new AesCipherFactory());
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since SDNO 0.5
+ */
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since SDNO 0.5
+ */
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since SDNO 0.5
+ */
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ /**
+ * Test method for
+ * {@link org.openo.baseservice.encrypt.cbb.impl.AesCipher#encrypt(java.lang.String)}.
+ */
+ @Test
+ public void testEncrypt() {
+ final AbstractCipher cipherManager = CipherCreator.instance().create();
+ final String encrypted = cipherManager.encrypt("test-encrypt");
+ final String decrypted = cipherManager.decrypt(encrypted);
+
+ Assert.assertEquals("test-encrypt", decrypted);
+ }
+
+ @Test
+ public void testEncryptException() throws Exception {
+ new NonStrictExpectations() {
+
+ @Mocked
+ Cipher cipher;
+
+ {
+ cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
+ result = new InvalidKeySpecException();
+ }
+ };
+ final AbstractCipher cipherManager = CipherCreator.instance().create();
+ final String encrypted = cipherManager.encrypt("test-encrypt");
+
+ Assert.assertEquals(null, encrypted);
+ }
+
+ /**
+ * Test method for
+ * {@link org.openo.baseservice.encrypt.cbb.impl.AesCipher#decrypt(java.lang.String)}.
+ */
+ @Test
+ public void testDecrypt() {
+ final AbstractCipher cipherManager = CipherCreator.instance().create();
+ final String encrypted = cipherManager.encrypt("test-encrypt");
+ final String decrypted = cipherManager.decrypt(encrypted);
+
+ Assert.assertEquals("test-encrypt", decrypted);
+ }
+
+ @Test
+ public void testDecryptNull() {
+ final AbstractCipher cipherManager = CipherCreator.instance().create();
+ String decrypted = cipherManager.decrypt(null);
+ Assert.assertEquals(null, decrypted);
+
+ decrypted = cipherManager.decrypt("");
+
+ Assert.assertEquals(null, decrypted);
+ }
+
+ /**
+ * Test method for
+ * {@link
+ * org.openo.baseservice.encrypt.cbb.impl.AesCipher#CipherManagerImpl(java.lang.String)}
+ * .
+ */
+ @Test
+ public void testCipherManagerImplString() {
+ final AbstractCipher cipherManager = CipherCreator.instance().create("secret-key");
+ final String encrypted = cipherManager.encrypt("test-encrypt");
+ final String decrypted = cipherManager.decrypt(encrypted);
+
+ Assert.assertEquals("test-encrypt", decrypted);
+ }
+
+ /**
+ * <br/>
+ *
+ * @since SDNO 0.5
+ */
+ @Test
+ public void testCipherManagerImplStringDiffKey() {
+ final String encrypted = CipherCreator.instance().create("secret-key").encrypt("test-encrypt");
+ final String decrypted = CipherCreator.instance().create("wrong-key").decrypt(encrypted);
+
+ Assert.assertNotSame("test-encrypt", decrypted);
+
+ final String decrypt = CipherCreator.instance().create("secret-key").decrypt(encrypted);
+ Assert.assertEquals("test-encrypt", decrypt);
+ }
+
+ @Test
+ public void testCreateSecretKeyNoSuchAlgorithmException() throws Exception {
+ new NonStrictExpectations() {
+
+ @Mocked
+ SecretKeyFactory keyFactory;
+
+ {
+ keyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
+ result = new NoSuchAlgorithmException();
+ }
+ };
+
+ final AbstractCipher cipherManager = CipherCreator.instance().create("secret-key");
+ final String encrypted = cipherManager.encrypt("test-encrypt");
+ Assert.assertEquals(encrypted, encrypted);
+
+ }
+
+ @Test
+ public void testCreateSecretKeyInvalidKeySpecException() throws Exception {
+ new NonStrictExpectations() {
+
+ @Mocked
+ SecretKeyFactory keyFactory;
+
+ {
+ keyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
+ result = new InvalidKeySpecException();
+ }
+ };
+
+ final AbstractCipher cipherManager = CipherCreator.instance().create("secret-key");
+ final String decrypted = cipherManager.decrypt("test-encrypt");
+ Assert.assertEquals(decrypted, null);
+
+ }
+}
diff --git a/common-util/src/test/java/org/openo/baseservice/encrypt/cbb/sha/Sha256Test.java b/common-util/src/test/java/org/openo/baseservice/encrypt/cbb/sha/Sha256Test.java
new file mode 100644
index 0000000..30a640e
--- /dev/null
+++ b/common-util/src/test/java/org/openo/baseservice/encrypt/cbb/sha/Sha256Test.java
@@ -0,0 +1,193 @@
+/*
+ * Copyright (c) 2016, Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ */
+package org.openo.baseservice.encrypt.cbb.sha;
+
+import static org.junit.Assert.fail;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.security.InvalidKeyException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+
+import mockit.Mocked;
+import mockit.NonStrictExpectations;
+import mockit.integration.junit4.JMockit;
+
+/**
+ * <br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version SDNO 0.5 03-Jun-2016
+ */
+@RunWith(JMockit.class)
+public class Sha256Test {
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since SDNO 0.5
+ */
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since SDNO 0.5
+ */
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since SDNO 0.5
+ */
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since SDNO 0.5
+ */
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ /**
+ * Test method for {@link org.openo.baseservice.encrypt.cbb.sha.Sha256#digest(java.lang.String)}
+ * .
+ */
+ @Test
+ public void testDigest() {
+ String plain = "";
+ String expected = "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855";
+ Assert.assertEquals(expected, Sha256.digest(plain));
+
+ expected = "D7A8FBB307D7809469CA9ABCB0082E4F8D5651E46D3CDB762D02D0BF37C9E592";
+ plain = "The quick brown fox jumps over the lazy dog";
+ Assert.assertEquals(expected, Sha256.digest(plain));
+ }
+
+ @Test
+ public void testDigestException() throws Exception {
+ new NonStrictExpectations() {
+
+ @Mocked
+ MessageDigest md;
+
+ {
+ md = MessageDigest.getInstance("SHA-256");
+ result = new NoSuchAlgorithmException();
+ }
+ };
+ final String plain = "";
+ final String expected = "";
+ Assert.assertEquals(expected, Sha256.digest(plain));
+
+ }
+
+ /**
+ * Test method for
+ * {@link org.openo.baseservice.encrypt.cbb.sha.Sha256#mac(java.lang.String, java.security.Key)}
+ * .
+ *
+ * @throws InvalidKeyException
+ */
+ @Test
+ public void testMacStringKey() {
+ final String expected = "F7BC83F430538424B13298E6AA6FB143EF4D59A14946175997479DBC2D1A3CD8";
+ final String plain = "The quick brown fox jumps over the lazy dog";
+ try {
+ Assert.assertEquals(expected, Sha256.mac(plain, new SecretKeySpec("key".getBytes(), "HmacSHA256")));
+ } catch(final InvalidKeyException e) {
+ e.printStackTrace();
+ fail("testMacStringKey failed" + e.getMessage());
+ }
+ try {
+ Assert.assertEquals(expected, Sha256.mac(plain, new SecretKeySpec("key".getBytes(), "AES")));
+ } catch(final InvalidKeyException e) {
+ e.printStackTrace();
+ fail("testMacStringKey failed" + e.getMessage());
+ }
+
+ }
+
+ @Test
+ public void testMacStringKeyException() throws Exception {
+ new NonStrictExpectations() {
+
+ @Mocked
+ Mac mac;
+
+ {
+ mac = Mac.getInstance("HmacSHA256");
+ result = new NoSuchAlgorithmException();
+ }
+ };
+ Sha256.mac("dummy", new SecretKeySpec("key".getBytes(), "AES"));
+ }
+
+ /**
+ * Test method for
+ * {@link org.openo.baseservice.encrypt.cbb.sha.Sha256#mac(java.lang.String, byte[])}.
+ */
+ @Test
+ public void testMacStringByteArray() {
+ final String expected = "F7BC83F430538424B13298E6AA6FB143EF4D59A14946175997479DBC2D1A3CD8";
+ final String plain = "The quick brown fox jumps over the lazy dog";
+ Assert.assertEquals(expected, Sha256.mac(plain, "key".getBytes()));
+ }
+
+ @Test
+ public void testMacStringByteArrayInvalidKeyException() throws Exception {
+ final String key = "key";
+ new NonStrictExpectations() {
+
+ @Mocked
+ Mac mac;
+
+ {
+ mac = Mac.getInstance("HmacSHA256");
+ result = new InvalidKeyException();
+ }
+ };
+ final String expected = "";
+ final String plain = "The quick brown fox jumps over the lazy dog";
+ Assert.assertEquals(expected, Sha256.mac(plain, key.getBytes()));
+ }
+
+}
diff --git a/common-util/src/test/java/org/openo/baseservice/util/RestUtilsTest.java b/common-util/src/test/java/org/openo/baseservice/util/RestUtilsTest.java
new file mode 100644
index 0000000..2cf0589
--- /dev/null
+++ b/common-util/src/test/java/org/openo/baseservice/util/RestUtilsTest.java
@@ -0,0 +1,190 @@
+/*
+ * Copyright (c) 2016, Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ */
+package org.openo.baseservice.util;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+
+import junit.framework.Assert;
+import mockit.Expectations;
+import mockit.Mocked;
+import mockit.integration.junit4.JMockit;
+
+/**
+ * <br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version SDNO 0.5 08-Jun-2016
+ */
+@RunWith(JMockit.class)
+public class RestUtilsTest {
+
+ @Mocked
+ HttpServletRequest mockHttpServletRequest;
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since SDNO 0.5
+ */
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since SDNO 0.5
+ */
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since SDNO 0.5
+ */
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since SDNO 0.5
+ */
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ /**
+ * Test method for
+ * {@link org.openo.baseservice.util.RestUtils#getRequestBody(javax.servlet.http.HttpServletRequest)}
+ * .
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testGetRequestBody() throws IOException {
+ final String dummy = "this is a dummy data to test request body";
+ final ServletInputStream inputStream = new ServletInputStream() {
+
+ final ByteArrayInputStream stream = new ByteArrayInputStream(dummy.getBytes());
+
+ @Override
+ public int read() throws IOException {
+ return stream.read();
+ }
+
+ };
+
+ new Expectations() {
+
+ {
+ mockHttpServletRequest.getInputStream();
+ returns(inputStream);
+ }
+ };
+ final String body = RestUtils.getRequestBody(mockHttpServletRequest);
+
+ Assert.assertEquals(dummy, body);
+ }
+
+ @Test
+ public void testGetRequestBodyNull() throws IOException {
+ final ServletInputStream inputStream = null;
+ new Expectations() {
+
+ {
+ mockHttpServletRequest.getInputStream();
+ returns(inputStream);
+ }
+ };
+ final String body = RestUtils.getRequestBody(mockHttpServletRequest);
+
+ Assert.assertEquals("", body);
+ }
+
+ @Test
+ public void testGetRequestBodyIOException() throws IOException {
+ final ServletInputStream inputStream = new ServletInputStream() {
+
+ @Override
+ public int read() throws IOException {
+ throw new IOException();
+ }
+
+ };
+
+ new Expectations() {
+
+ {
+ mockHttpServletRequest.getInputStream();
+ returns(inputStream);
+ }
+ };
+ final String body = RestUtils.getRequestBody(mockHttpServletRequest);
+
+ Assert.assertEquals("", body);
+ }
+
+ @Test
+ public void testGetRequestBodyCloseIOException() throws IOException {
+ final ServletInputStream inputStream = new ServletInputStream() {
+
+ final ByteArrayInputStream stream = new ByteArrayInputStream("dummy".getBytes());
+
+ @Override
+ public int read() throws IOException {
+ return stream.read();
+ }
+
+ @Override
+ public void close() throws IOException {
+ throw new IOException();
+ }
+ };
+
+ new Expectations() {
+
+ {
+ mockHttpServletRequest.getInputStream();
+ returns(inputStream);
+ }
+ };
+ final String body = RestUtils.getRequestBody(mockHttpServletRequest);
+
+ Assert.assertEquals("dummy", body);
+ }
+
+}
diff --git a/common-util/src/test/java/org/openo/baseservice/util/impl/SystemEnvVariablesDefImplTest.java b/common-util/src/test/java/org/openo/baseservice/util/impl/SystemEnvVariablesDefImplTest.java
new file mode 100644
index 0000000..97a8d11
--- /dev/null
+++ b/common-util/src/test/java/org/openo/baseservice/util/impl/SystemEnvVariablesDefImplTest.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (c) 2016, Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ */
+package org.openo.baseservice.util.impl;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.openo.baseservice.util.inf.SystemEnvVariables;
+
+import junit.framework.Assert;
+import mockit.Mocked;
+import mockit.NonStrictExpectations;
+import mockit.integration.junit4.JMockit;
+import net.jcip.annotations.NotThreadSafe;
+
+/**
+ * <br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version SDNO 0.5 08-Jun-2016
+ */
+@RunWith(JMockit.class)
+@NotThreadSafe
+public class SystemEnvVariablesDefImplTest {
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since SDNO 0.5
+ */
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since SDNO 0.5
+ */
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since SDNO 0.5
+ */
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ @Test
+ public void testGetAppRootException() throws Exception {
+ new NonStrictExpectations() {
+
+ @Mocked
+ File file;
+
+ {
+ file = new File(".");
+ file.getCanonicalPath();
+ result = new IOException();
+ }
+
+ };
+ final SystemEnvVariables envVars =new SystemEnvVariablesDefImpl();
+ System.setProperty("catalina.base", ".");
+ final String actual = envVars.getAppRoot();
+ Assert.assertEquals(null, actual);
+ }
+
+
+ /**
+ * Test method for
+ * {@link org.openo.baseservice.util.impl.SystemEnvVariablesDefImpl#getAppRoot()}.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testGetAppRoot() throws Exception {
+ final SystemEnvVariables envVars = new SystemEnvVariablesDefImpl();
+ final File file = new File(".");
+ final String expected = file.getCanonicalPath();
+ System.setProperty("catalina.base", ".");
+ final String actual = envVars.getAppRoot();
+ Assert.assertEquals(expected, actual);
+ }
+
+}