diff options
Diffstat (limited to 'sms-client/java/src/test')
9 files changed, 488 insertions, 0 deletions
diff --git a/sms-client/java/src/test/java/org/onap/aaf/sms/ClientTestRunner.java b/sms-client/java/src/test/java/org/onap/aaf/sms/ClientTestRunner.java new file mode 100644 index 0000000..5ddaa7d --- /dev/null +++ b/sms-client/java/src/test/java/org/onap/aaf/sms/ClientTestRunner.java @@ -0,0 +1,39 @@ +/* + * Copyright 2018 Intel Corporation, Inc + * + * 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.onap.aaf.sms; + +import org.junit.runner.JUnitCore; +import org.junit.runner.Result; +import org.junit.runner.notification.Failure; + +public class ClientTestRunner { + public static void main(String[] args) { + Result r = JUnitCore.runClasses( + SmsCreateDomainTest.class, + SmsDeleteDomainTest.class, + SmsStoreSecretTest.class, + SmsGetSecretNamesTest.class, + SmsGetSecretTest.class, + SmsDeleteSecretTest.class + ); + + for( Failure f : r.getFailures()) { + System.out.println(f.toString()); + } + System.out.println(r.wasSuccessful()); + } +} diff --git a/sms-client/java/src/test/java/org/onap/aaf/sms/SmsCreateDomainTest.java b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsCreateDomainTest.java new file mode 100644 index 0000000..b1f5828 --- /dev/null +++ b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsCreateDomainTest.java @@ -0,0 +1,46 @@ +/* + * Copyright 2018 Intel Corporation, Inc + * + * 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.onap.aaf.sms; + +import junit.framework.*; +import org.onap.aaf.sms.SmsClient; +import org.onap.aaf.sms.SmsResponse; +import org.onap.aaf.sms.SmsSecureSocket; +import javax.net.ssl.SSLSocketFactory; +import java.util.HashMap; +import java.util.Map; + +public class SmsCreateDomainTest extends TestCase { + + public void testSmsCreateDomain() { + try { + SmsTest sms = new SmsTest("otconap4.sc.intel.com", 10443, null); + SmsResponse resp = sms.createDomain("onap.new.test.sms0"); + assertTrue(resp.getSuccess()); + if ( resp.getSuccess() ) { + Map<String, Object> m = resp.getResponse(); + assertNotNull(m); + assertEquals(201, resp.getResponseCode()); + assertEquals("onap.new.test.sms0", m.get("name")); + } else { + fail("Unexpected response while creating domain"); + } + } catch ( Exception e ) { + fail("Exception while creating domain"); + } + } +} diff --git a/sms-client/java/src/test/java/org/onap/aaf/sms/SmsDeleteDomainTest.java b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsDeleteDomainTest.java new file mode 100644 index 0000000..712014e --- /dev/null +++ b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsDeleteDomainTest.java @@ -0,0 +1,43 @@ +/* + * Copyright 2018 Intel Corporation, Inc + * + * 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.onap.aaf.sms; + +import junit.framework.*; +import org.onap.aaf.sms.SmsClient; +import org.onap.aaf.sms.SmsResponse; +import org.onap.aaf.sms.SmsSecureSocket; +import javax.net.ssl.SSLSocketFactory; +import java.util.HashMap; +import java.util.Map; + +public class SmsDeleteDomainTest extends TestCase { + + public void testSmsDeleteDomain() { + try { + SmsTest sms = new SmsTest("otconap4.sc.intel.com", 10443, null); + SmsResponse resp = sms.deleteDomain("onap.new.test.sms0"); + assertTrue(resp.getSuccess()); + if ( resp.getSuccess() ) { + assertEquals(204, resp.getResponseCode()); + } else { + fail("Unexpected response while deleting domain"); + } + } catch ( Exception e ) { + fail("Exception while deleting domain"); + } + } +} diff --git a/sms-client/java/src/test/java/org/onap/aaf/sms/SmsDeleteSecretTest.java b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsDeleteSecretTest.java new file mode 100644 index 0000000..93b3a67 --- /dev/null +++ b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsDeleteSecretTest.java @@ -0,0 +1,43 @@ +/* + * Copyright 2018 Intel Corporation, Inc + * + * 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.onap.aaf.sms; + +import junit.framework.*; +import org.onap.aaf.sms.SmsClient; +import org.onap.aaf.sms.SmsResponse; +import org.onap.aaf.sms.SmsSecureSocket; +import javax.net.ssl.SSLSocketFactory; +import java.util.HashMap; +import java.util.Map; + +public class SmsDeleteSecretTest extends TestCase { + + public void testSmsDeleteSecret() { + try { + SmsTest sms = new SmsTest("otconap4.sc.intel.com", 10443, null); + SmsResponse resp = sms.deleteSecret("onap.new.test.sms0", "testsec1"); + assertTrue(resp.getSuccess()); + if ( resp.getSuccess() ) { + assertEquals(204, resp.getResponseCode()); + } else { + fail("Unexpected response while deleting secret"); + } + } catch ( Exception e ) { + fail("Exception while deleting secret"); + } + } +} diff --git a/sms-client/java/src/test/java/org/onap/aaf/sms/SmsGetSecretNamesTest.java b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsGetSecretNamesTest.java new file mode 100644 index 0000000..bd9dd7c --- /dev/null +++ b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsGetSecretNamesTest.java @@ -0,0 +1,46 @@ +/* + * Copyright 2018 Intel Corporation, Inc + * + * 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.onap.aaf.sms; + +import junit.framework.*; +import org.onap.aaf.sms.SmsClient; +import org.onap.aaf.sms.SmsResponse; +import org.onap.aaf.sms.SmsSecureSocket; +import javax.net.ssl.SSLSocketFactory; +import java.util.HashMap; +import java.util.Map; + +public class SmsGetSecretNamesTest extends TestCase { + + public void testSmsGetSecretNames() { + try { + SmsTest sms = new SmsTest("otconap4.sc.intel.com", 10443, null); + Map<String, Object> m; + SmsResponse resp = sms.getSecretNames("onap.new.test.sms0"); + assertTrue(resp.getSuccess()); + if ( resp.getSuccess() ) { + assertEquals(200, resp.getResponseCode()); + m = resp.getResponse(); + assertEquals("[testsec1, newtest]", m.get("secretnames").toString()); + } else { + fail("Unexpected response while getting secret names"); + } + } catch ( Exception e ) { + fail("Exception while getting secret names"); + } + } +} diff --git a/sms-client/java/src/test/java/org/onap/aaf/sms/SmsGetSecretTest.java b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsGetSecretTest.java new file mode 100644 index 0000000..887171c --- /dev/null +++ b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsGetSecretTest.java @@ -0,0 +1,47 @@ +/* + * Copyright 2018 Intel Corporation, Inc + * + * 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.onap.aaf.sms; + +import junit.framework.*; +import org.onap.aaf.sms.SmsClient; +import org.onap.aaf.sms.SmsResponse; +import org.onap.aaf.sms.SmsSecureSocket; +import javax.net.ssl.SSLSocketFactory; +import java.util.HashMap; +import java.util.Map; + +public class SmsGetSecretTest extends TestCase { + + public void testSmsGetSecret() { + try { + SmsTest sms = new SmsTest("otconap4.sc.intel.com", 10443, null); + Map<String, Object> m; + SmsResponse resp = sms.getSecret("onap.new.test.sms0", "testsec1"); + assertTrue(resp.getSuccess()); + if ( resp.getSuccess() ) { + assertEquals(200, resp.getResponseCode()); + m = resp.getResponse(); + assertEquals("dbuser", m.get("username").toString()); + assertEquals("jdX784i-5k", m.get("passwd").toString()); + } else { + fail("Unexpected response while getting secret"); + } + } catch ( Exception e ) { + fail("Exception while getting secret"); + } + } +} diff --git a/sms-client/java/src/test/java/org/onap/aaf/sms/SmsSecureSocket.java b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsSecureSocket.java new file mode 100644 index 0000000..3e28aa7 --- /dev/null +++ b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsSecureSocket.java @@ -0,0 +1,68 @@ +/* + * Copyright 2018 Intel Corporation, Inc + * + * 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.onap.aaf.sms; + +import java.io.FileInputStream; +import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSessionContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManagerFactory; +import java.security.KeyStore; +import java.security.Provider; +import java.security.SecureRandom; +import java.security.Security; + +public class SmsSecureSocket { + private SSLSocketFactory ssf = null; + public SmsSecureSocket() throws Exception { + // Set up the Sun PKCS 11 provider + Provider p = Security.getProvider("SunPKCS11-pkcs11Test"); + if (p==null) { + throw new RuntimeException("could not get security provider"); + } + + // Load the key store + char[] pin = "123456789".toCharArray(); + KeyStore keyStore = KeyStore.getInstance("PKCS11", p); + keyStore.load(null, pin); + + // Load the CA certificate + FileInputStream tst = new FileInputStream("/ca.jks"); + KeyStore trustStore = KeyStore.getInstance("JKS"); + trustStore.load(tst, pin); + + KeyManagerFactory keyManagerFactory = + KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); + //Add to keystore to key manager + keyManagerFactory.init(keyStore, pin); + + TrustManagerFactory trustManagerFactory = + TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + trustManagerFactory.init(trustStore); + + //Create the context + SSLContext context = SSLContext.getInstance("TLS"); + context.init(keyManagerFactory.getKeyManagers(), + trustManagerFactory.getTrustManagers(), new SecureRandom()); + //Create a socket factory + SSLSocketFactory ssf = context.getSocketFactory(); + } + public SSLSocketFactory getSSF() { + return(ssf); + } +} diff --git a/sms-client/java/src/test/java/org/onap/aaf/sms/SmsStoreSecretTest.java b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsStoreSecretTest.java new file mode 100644 index 0000000..c49a72e --- /dev/null +++ b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsStoreSecretTest.java @@ -0,0 +1,46 @@ +/* + * Copyright 2018 Intel Corporation, Inc + * + * 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.onap.aaf.sms; + +import junit.framework.*; +import org.onap.aaf.sms.SmsClient; +import org.onap.aaf.sms.SmsResponse; +import org.onap.aaf.sms.SmsSecureSocket; +import javax.net.ssl.SSLSocketFactory; +import java.util.HashMap; +import java.util.Map; + +public class SmsStoreSecretTest extends TestCase { + + public void testSmsStoreSecret() { + try { + SmsTest sms = new SmsTest("otconap4.sc.intel.com", 10443, null); + Map<String, Object> v = new HashMap<String, Object>(); + v.put("username", "dbuser"); + v.put("password", "kmngjhk"); + SmsResponse resp = sms.storeSecret("onap.new.test.sms0", "dbs", v); + assertTrue(resp.getSuccess()); + if ( resp.getSuccess() ) { + assertEquals(201, resp.getResponseCode()); + } else { + fail("Unexpected response while storing secret"); + } + } catch ( Exception e ) { + fail("Exception while storing secret"); + } + } +} diff --git a/sms-client/java/src/test/java/org/onap/aaf/sms/SmsTest.java b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsTest.java new file mode 100644 index 0000000..5277557 --- /dev/null +++ b/sms-client/java/src/test/java/org/onap/aaf/sms/SmsTest.java @@ -0,0 +1,110 @@ +/* + * Copyright 2018 Intel Corporation, Inc + * + * 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.onap.aaf.sms; + +import javax.net.ssl.SSLSocketFactory; +import java.net.URL; +import javax.net.ssl.HttpsURLConnection; +import org.onap.aaf.sms.SmsResponse; +import org.onap.aaf.sms.SmsClient; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.InputStreamReader; +import java.io.BufferedReader; +import java.io.OutputStreamWriter; +import java.util.Map; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.ArrayList; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +public class SmsTest extends SmsClient { + + public SmsTest(String host, int port, SSLSocketFactory s) { + super(host, port, s); + } + public SmsTest(String host, int port, String version, SSLSocketFactory s) { + super(host, port, version, s); + } + public SmsResponse execute(String reqtype, String t, String ins, boolean input, boolean output) { + Map<String, Object> m; + SmsResponse resp = new SmsResponse(); + System.out.println(t); + + switch ( reqtype ) { + case "POST": + if ( t.matches("(.*)/v1/sms/domain")) { + resp.setSuccess(true); + resp.setResponseCode(201); + try { + m = strtomap(ins); + } catch ( Exception e ) { + resp.setResponse(null); + return(resp); + } + resp.setResponse(m); + } else { + if ( t.matches("(.*)/v1/sms/(.*)/secret") ) { + resp.setSuccess(true); + resp.setResponseCode(201); + } + } + break; + case "GET": + if ( t.matches("(.*)/v1/sms/(.*)/secret") ) { + resp.setSuccess(true); + resp.setResponseCode(200); + String jstr = "{\"secretnames\":[\"testsec1\",\"newtest\"]}"; + try { + m = strtomap(jstr); + } catch ( Exception e ) { + resp.setResponse(null); + return(resp); + } + resp.setResponse(m); + } else { + if ( t.matches("(.*)/v1/sms/(.*)/secret/testsec1")) { + resp.setSuccess(true); + resp.setResponseCode(200); + String js = "{\"name\":\"testsec1\",\"values\":{\"username\":\"dbuser\",\"passwd\":\"jdX784i-5k\"}}"; + try { + m = strtomap(js); + Map<String, Object> sm = (Map<String, Object>)m.get("values"); + } catch ( Exception e ) { + resp.setResponse(null); + return(resp); + } + resp.setResponse(m); + } + } + break; + case "DELETE": + if ( t.matches("(.*)/v1/sms/domain/(.*)") ) { + // for both delete domain & secret case + resp.setSuccess(true); + resp.setResponseCode(204); + resp.setResponse(null); + } + break; + + } + return resp; + } +} |