Test framework for sms client code. 15/37515/5
authorManjunath Ranganathaiah <manjunath.ranganathaiah@intel.com>
Wed, 21 Mar 2018 16:12:04 +0000 (09:12 -0700)
committerKiran Kamineni <kiran.k.kamineni@intel.com>
Tue, 27 Mar 2018 17:07:40 +0000 (17:07 +0000)
Adds a test case for create domain interface

Change-Id: I198d4e91845753ca359330c367180bd3a3732f30
Issue-ID: AAF-183
Signed-off-by: Manjunath Ranganathaiah <manjunath.ranganathaiah@intel.com>
sms-client/src/java/main/SmsClient.java
sms-client/src/java/test/ClientTestRunner.java [new file with mode: 0644]
sms-client/src/java/test/SmsCreateDomainTest.java [new file with mode: 0644]
sms-client/src/java/test/SmsSecureSocket.java [new file with mode: 0644]
sms-client/src/java/test/SmsTest.java [new file with mode: 0644]

index ce48f72..17a9f16 100644 (file)
@@ -91,14 +91,14 @@ public class SmsClient implements SmsInterface {
         return(m);
     }
 
-    private Map<String, Object> strtomap(String r) throws JSONException {
+    protected Map<String, Object> strtomap(String r) throws JSONException {
         JSONObject jobj = null;
 
         jobj = new JSONObject(r);
         return(jsontomap(jobj));
 
     }
-    private SmsResponse execute(String reqtype, String t, String ins, boolean input, boolean output) {
+    protected SmsResponse execute(String reqtype, String t, String ins, boolean input, boolean output) {
 
         HttpsURLConnection conn;
         int errorcode = -1;
diff --git a/sms-client/src/java/test/ClientTestRunner.java b/sms-client/src/java/test/ClientTestRunner.java
new file mode 100644 (file)
index 0000000..e1e0dd2
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+
+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
+        );
+
+        for( Failure f : r.getFailures()) {
+            System.out.println(f.toString());
+        }
+        System.out.println(r.wasSuccessful());
+    }
+}
diff --git a/sms-client/src/java/test/SmsCreateDomainTest.java b/sms-client/src/java/test/SmsCreateDomainTest.java
new file mode 100644 (file)
index 0000000..b0896d4
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+
+import junit.framework.*;
+import org.onap.aaf.sms.SmsClient;
+import org.onap.aaf.sms.SmsResponse;
+import org.onap.aaf.sms.test.SmsSecureSocket;
+import javax.net.ssl.SSLSocketFactory;
+import java.util.HashMap;
+import java.util.Map;
+
+public class SmsCreateDomainTest extends TestCase {
+
+    public void testSmsCreateDomain() {
+        try {
+            SmsSecureSocket sss = new SmsSecureSocket();
+
+            SmsTest sms = new SmsTest("otconap4.sc.intel.com", 10443, sss.getSSF());
+            SmsResponse resp = sms.createDomain("onap.new.test.sms0");
+            assertTrue(resp.getSuccess());
+            if ( resp.getSuccess() ) {
+                Map<String, Object> m = resp.getResponse();
+                assertNotNull(m);
+                assertEquals(200, resp.getResponseCode());
+                assertEquals("onap.new.test.sms0", m.get("name"));
+            }
+        } catch ( Exception e ) {
+            fail("Exception while creating domain");
+        }
+    }
+}
diff --git a/sms-client/src/java/test/SmsSecureSocket.java b/sms-client/src/java/test/SmsSecureSocket.java
new file mode 100644 (file)
index 0000000..34acb79
--- /dev/null
@@ -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.test;
+
+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/src/java/test/SmsTest.java b/sms-client/src/java/test/SmsTest.java
new file mode 100644 (file)
index 0000000..8786570
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * 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);
+        if ( t.matches("(.*)/v1/sms/domain"))
+
+        {
+            resp.setSuccess(true);
+            resp.setResponseCode(200);
+            try {
+                m = strtomap(ins);
+            } catch ( Exception e ) {
+                resp.setResponse(null);
+                return(resp);
+            }
+            resp.setResponse(m);
+        }
+        return resp;
+    }
+}