Merge "changes in DR_PubResourceTest"
diff --git a/src/main/java/org/onap/dmaap/dbcapi/client/MrProvConnection.java b/src/main/java/org/onap/dmaap/dbcapi/client/MrProvConnection.java
index 51bad4f..6e692fa 100644
--- a/src/main/java/org/onap/dmaap/dbcapi/client/MrProvConnection.java
+++ b/src/main/java/org/onap/dmaap/dbcapi/client/MrProvConnection.java
@@ -36,131 +36,131 @@
import java.util.Arrays;
public class MrProvConnection extends BaseLoggingClass{
-
- private String provURL;
-
- private HttpURLConnection uc;
+
+ private String provURL;
+
+ private HttpURLConnection uc;
-
- private String topicMgrCred;
- private boolean useAAF;
- private String user;
- private String encPwd;
-
- public MrProvConnection() {
- String mechIdProperty = "aaf.TopicMgrUser";
- String pwdProperty = "aaf.TopicMgrPassword";
- DmaapConfig p = (DmaapConfig)DmaapConfig.getConfig();
- user = p.getProperty( mechIdProperty, "noMechId@domain.netset.com" );
- encPwd = p.getProperty( pwdProperty, "notSet" );
- useAAF= "true".equalsIgnoreCase(p.getProperty("UseAAF", "false"));
- topicMgrCred = getCred();
-
- }
-
- private String getCred( ) {
+
+ private String topicMgrCred;
+ private boolean useAAF;
+ private String user;
+ private String encPwd;
+
+ public MrProvConnection() {
+ String mechIdProperty = "aaf.TopicMgrUser";
+ String pwdProperty = "aaf.TopicMgrPassword";
+ DmaapConfig p = (DmaapConfig)DmaapConfig.getConfig();
+ user = p.getProperty( mechIdProperty, "noMechId@domain.netset.com" );
+ encPwd = p.getProperty( pwdProperty, "notSet" );
+ useAAF= "true".equalsIgnoreCase(p.getProperty("UseAAF", "false"));
+ topicMgrCred = getCred();
+
+ }
+
+ private String getCred( ) {
- String pwd = "";
- AafDecrypt decryptor = new AafDecrypt();
- pwd = decryptor.decrypt(encPwd);
- return user + ":" + pwd;
- }
-
-
- public boolean makeTopicConnection( MR_Cluster cluster ) {
- logger.info( "connect to cluster: " + cluster.getDcaeLocationName());
-
+ String pwd = "";
+ AafDecrypt decryptor = new AafDecrypt();
+ pwd = decryptor.decrypt(encPwd);
+ return user + ":" + pwd;
+ }
+
+
+ public boolean makeTopicConnection( MR_Cluster cluster ) {
+ logger.info( "connect to cluster: " + cluster.getDcaeLocationName());
+
- provURL = cluster.getTopicProtocol() + "://" + cluster.getFqdn() + ":" + cluster.getTopicPort() + "/topics/create";
+ provURL = cluster.getTopicProtocol() + "://" + cluster.getFqdn() + ":" + cluster.getTopicPort() + "/topics/create";
- if ( cluster.getTopicProtocol().equals( "https" ) ) {
- return makeSecureConnection( provURL );
- }
- return makeConnection( provURL );
- }
+ if ( cluster.getTopicProtocol().equals( "https" ) ) {
+ return makeSecureConnection( provURL );
+ }
+ return makeConnection( provURL );
+ }
- private boolean makeSecureConnection( String pURL ) {
- logger.info( "makeConnection to " + pURL );
-
- try {
- URL u = new URL( pURL );
- uc = (HttpsURLConnection) u.openConnection();
- uc.setInstanceFollowRedirects(false);
- logger.info( "open connect to " + pURL );
- return(true);
- } catch( UnknownHostException uhe ){
- logger.error( "Caught UnknownHostException for " + pURL);
- return(false);
+ private boolean makeSecureConnection( String pURL ) {
+ logger.info( "makeConnection to " + pURL );
+
+ try {
+ URL u = new URL( pURL );
+ uc = (HttpsURLConnection) u.openConnection();
+ uc.setInstanceFollowRedirects(false);
+ logger.info( "open connect to " + pURL );
+ return(true);
+ } catch( UnknownHostException uhe ){
+ logger.error( "Caught UnknownHostException for " + pURL);
+ return(false);
} catch (Exception e) {
logger.error("Unexpected error during openConnection of " + pURL );
- e.printStackTrace();
+ logger.error("Unexpected error during openConnection of ",e );
return(false);
}
- }
- private boolean makeConnection( String pURL ) {
- logger.info( "makeConnection to " + pURL );
-
- try {
- URL u = new URL( pURL );
- uc = (HttpURLConnection) u.openConnection();
- uc.setInstanceFollowRedirects(false);
- logger.info( "open connect to " + pURL );
- return(true);
- } catch( UnknownHostException uhe ){
- logger.error( "Caught UnknownHostException for " + pURL);
- return(false);
+ }
+ private boolean makeConnection( String pURL ) {
+ logger.info( "makeConnection to " + pURL );
+
+ try {
+ URL u = new URL( pURL );
+ uc = (HttpURLConnection) u.openConnection();
+ uc.setInstanceFollowRedirects(false);
+ logger.info( "open connect to " + pURL );
+ return(true);
+ } catch( UnknownHostException uhe ){
+ logger.error( "Caught UnknownHostException for " + pURL);
+ return(false);
} catch (Exception e) {
logger.error("Unexpected error during openConnection of " + pURL );
- e.printStackTrace();
+ logger.error("Unexpected error during openConnection of ",e );
return(false);
}
- }
-
- static String bodyToString( InputStream is ) {
- StringBuilder sb = new StringBuilder();
- BufferedReader br = new BufferedReader( new InputStreamReader(is));
- String line;
- try {
- while ((line = br.readLine()) != null ) {
- sb.append( line );
- }
- } catch (IOException ex ) {
- errorLogger.error( "IOexception:" + ex);
- }
-
- return sb.toString();
- }
-
- public String doPostTopic( Topic postTopic, ApiError err ) {
- String auth = "Basic " + Base64.encodeBase64String(topicMgrCred.getBytes());
+ }
+
+ static String bodyToString( InputStream is ) {
+ StringBuilder sb = new StringBuilder();
+ BufferedReader br = new BufferedReader( new InputStreamReader(is));
+ String line;
+ try {
+ while ((line = br.readLine()) != null ) {
+ sb.append( line );
+ }
+ } catch (IOException ex ) {
+ errorLogger.error( "IOexception:" + ex);
+ }
+
+ return sb.toString();
+ }
+
+ public String doPostTopic( Topic postTopic, ApiError err ) {
+ String auth = "Basic " + Base64.encodeBase64String(topicMgrCred.getBytes());
- String responsemessage = null;
- int rc = -1;
+ String responsemessage = null;
+ int rc = -1;
- try {
- byte[] postData = postTopic.getBytes();
- logger.info( "post fields=" + Arrays.toString(postData));
-
- // when not using AAF, do not attempt Basic Authentication
- if ( useAAF ) {
- uc.setRequestProperty("Authorization", auth);
- logger.info( "Authenticating with " + auth );
- }
- uc.setRequestMethod("POST");
- uc.setRequestProperty("Content-Type", "application/json");
- uc.setRequestProperty( "charset", "utf-8");
- uc.setRequestProperty( "Content-Length", Integer.toString( postData.length ));
- uc.setUseCaches(false);
- uc.setDoOutput(true);
- OutputStream os = null;
+ try {
+ byte[] postData = postTopic.getBytes();
+ logger.info( "post fields=" + Arrays.toString(postData));
+
+ // when not using AAF, do not attempt Basic Authentication
+ if ( useAAF ) {
+ uc.setRequestProperty("Authorization", auth);
+ logger.info( "Authenticating with " + auth );
+ }
+ uc.setRequestMethod("POST");
+ uc.setRequestProperty("Content-Type", "application/json");
+ uc.setRequestProperty( "charset", "utf-8");
+ uc.setRequestProperty( "Content-Length", Integer.toString( postData.length ));
+ uc.setUseCaches(false);
+ uc.setDoOutput(true);
+ OutputStream os = null;
-
- try {
+
+ try {
uc.connect();
os = uc.getOutputStream();
os.write( postData );
@@ -174,21 +174,21 @@
} catch (Exception e) {
}
} catch ( UnknownHostException uhe ) {
- errorLogger.error( DmaapbcLogMessageEnum.UNKNOWN_HOST_EXCEPTION , "Unknown Host Exception" , provURL );
- err.setCode(500);
- err.setMessage("Unknown Host Exception");
- err.setFields( uc.getURL().getHost());
- return new String( "500: " + uhe.getMessage());
+ errorLogger.error( DmaapbcLogMessageEnum.UNKNOWN_HOST_EXCEPTION , "Unknown Host Exception" , provURL );
+ err.setCode(500);
+ err.setMessage("Unknown Host Exception");
+ err.setFields( uc.getURL().getHost());
+ return new String( "500: " + uhe.getMessage());
}catch ( ConnectException ce ) {
- errorLogger.error( DmaapbcLogMessageEnum.HTTP_CONNECTION_EXCEPTION, provURL, "HTTP Connection Exception" );
- err.setCode(500);
- err.setMessage("HTTP Connection Exception");
- err.setFields( uc.getURL().getHost());
- return new String( "500: " + ce.getMessage());
+ errorLogger.error( DmaapbcLogMessageEnum.HTTP_CONNECTION_EXCEPTION, provURL, "HTTP Connection Exception" );
+ err.setCode(500);
+ err.setMessage("HTTP Connection Exception");
+ err.setFields( uc.getURL().getHost());
+ return new String( "500: " + ce.getMessage());
}
- rc = uc.getResponseCode();
- logger.info( "http response code:" + rc );
- err.setCode(rc);
+ rc = uc.getResponseCode();
+ logger.info( "http response code:" + rc );
+ err.setCode(rc);
responsemessage = uc.getResponseMessage();
logger.info( "responsemessage=" + responsemessage );
err.setMessage(responsemessage);
@@ -207,29 +207,29 @@
}
}
if (rc >= 200 && rc < 300 ) {
- String responseBody = null;
- responseBody = bodyToString( uc.getInputStream() );
- logger.info( "responseBody=" + responseBody );
- return responseBody;
+ String responseBody = null;
+ responseBody = bodyToString( uc.getInputStream() );
+ logger.info( "responseBody=" + responseBody );
+ return responseBody;
}
- } catch (Exception e) {
- errorLogger.error("Unable to read response " );
+ } catch (Exception e) {
+ errorLogger.error("Unable to read response " );
}
- finally {
- try {
- uc.disconnect();
- } catch ( Exception e ) {
- errorLogger.error("Unable to disconnect");
- }
- }
- return new String( rc +": " + responsemessage );
+ finally {
+ try {
+ uc.disconnect();
+ } catch ( Exception e ) {
+ errorLogger.error("Unable to disconnect");
+ }
+ }
+ return new String( rc +": " + responsemessage );
- }
-
+ }
+
-
+
}
diff --git a/src/main/java/org/onap/dmaap/dbcapi/server/Main.java b/src/main/java/org/onap/dmaap/dbcapi/server/Main.java
index d8ee278..906337a 100644
--- a/src/main/java/org/onap/dmaap/dbcapi/server/Main.java
+++ b/src/main/java/org/onap/dmaap/dbcapi/server/Main.java
@@ -62,7 +62,7 @@
MDC.put(MDC_SERVER_FQDN, InetAddress.getLocalHost().getHostName());
MDC.put(MDC_SERVER_IP_ADDRESS, InetAddress.getLocalHost().getHostAddress());
} catch (Exception e) {
- e.printStackTrace();
+ errorLogger.error("Error while getting hostname or address", e);
}
MDC.put(MDC_INSTANCE_UUID, UUID.randomUUID().toString());
MDC.put(MDC_ALERT_SEVERITY, "0");
diff --git a/src/test/java/org/onap/dmaap/dbcapi/database/DBFieldHandlerTest.java b/src/test/java/org/onap/dmaap/dbcapi/database/DBFieldHandlerTest.java
index c1e9c35..5171aaa 100644
--- a/src/test/java/org/onap/dmaap/dbcapi/database/DBFieldHandlerTest.java
+++ b/src/test/java/org/onap/dmaap/dbcapi/database/DBFieldHandlerTest.java
@@ -1,10 +1,11 @@
-
/*-
* ============LICENSE_START=======================================================
* org.onap.dmaap
* ================================================================================
* Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
+ * Modifications Copyright (c) 2019 IBM
+ * ===================================================================
* 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
@@ -18,32 +19,36 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.dmaap.dbcapi.database;
-import org.onap.dmaap.dbcapi.database.DBFieldHandler;
-import org.onap.dmaap.dbcapi.model.*;
-import org.onap.dmaap.dbcapi.testframework.ReflectionHarness;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
-import static org.junit.Assert.*;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
-import org.junit.After;
-import org.junit.Before;
+import org.apache.log4j.Logger;
import org.junit.Test;
-import java.util.*;
-import java.sql.*;
+import org.onap.dmaap.dbcapi.authentication.AafLurAndFish;
+import org.onap.dmaap.dbcapi.model.ReplicationType;
+import org.onap.dmaap.dbcapi.testframework.ReflectionHarness;
public class DBFieldHandlerTest {
- private static final String fmt = "%24s: %s%n";
+ private static final Logger logger = Logger.getLogger(AafLurAndFish.class);
- ReflectionHarness rh = new ReflectionHarness();
+ private static final String fmt = "%24s: %s%n";
- private static class TopicReplicationTypeHandler implements DBFieldHandler.SqlOp {
+ ReflectionHarness rh = new ReflectionHarness();
+
+ private static class TopicReplicationTypeHandler implements DBFieldHandler.SqlOp {
public Object get(ResultSet rs, int index) throws Exception {
int val = rs.getInt(index);
return (ReplicationType.valueOf(val));
}
+
public void set(PreparedStatement ps, int index, Object val) throws Exception {
if (val == null) {
ps.setInt(index, 0);
@@ -55,53 +60,55 @@
}
}
+ @Test
+ public void test1() {
+ // rh.reflect( "org.onap.dmaap.dbcapi.aaf.client.MrTopicConnection", "get",
+ // "idNotSet@namespaceNotSet:pwdNotSet" );
+ }
+ @Test
+ public void test2() {
+ String v = "Validate";
+ // rh.reflect( "org.onap.dmaap.dbcapi.aaf.client.MrTopicConnection", "set", v );
+ }
- @Before
- public void setUp() throws Exception {
- }
+ @Test
+ public void test3() {
+ try {
+ DBFieldHandler fh = new DBFieldHandler(String.class, "aString", 1);
+ } catch (Exception e) {
+ logger.error("Error", e);
+ }
+ }
- @After
- public void tearDown() throws Exception {
- }
+ @Test
+ public void test4() {
+ try {
+ DBFieldHandler fh = new DBFieldHandler(String.class, "aString", 1, null);
+ } catch (Exception e) {
+ logger.error("Error", e);
+ }
+ }
+ @Test
+ public void testfesc() {
+ String sampleString = "@xyz,ww;,";
+ String finalString = DBFieldHandler.fesc(sampleString);
+ assertEquals("@axyz@cww@s@c", finalString);
+ }
- @Test
- public void test1() {
+ @Test
+ public void testfunesc() {
+ String sampleString = "@axyz@cww@s@c";
+ String convertedString = DBFieldHandler.funesc(sampleString);
+ assertEquals("@xyz,ww;,", convertedString);
+ }
-
- //rh.reflect( "org.onap.dmaap.dbcapi.aaf.client.MrTopicConnection", "get", "idNotSet@namespaceNotSet:pwdNotSet" );
-
- }
-
- @Test
- public void test2() {
- String v = "Validate";
- //rh.reflect( "org.onap.dmaap.dbcapi.aaf.client.MrTopicConnection", "set", v );
-
- }
-
- @Test
- public void test3() {
-
- try {
- DBFieldHandler fh = new DBFieldHandler( String.class, "aString", 1 );
- } catch (Exception e ) {
- }
-
- }
-
- @Test
- public void test4() {
-
- try {
- DBFieldHandler fh = new DBFieldHandler( String.class, "aString", 1, null );
- } catch (Exception e ) {
- }
-
- }
-
-
-
+ @Test
+ public void testfescWithNull() {
+ String sampleString1 = DBFieldHandler.fesc(null);
+ String sampleString2 = DBFieldHandler.funesc(null);
+ assertNull(null, sampleString1);
+ assertNull(null, sampleString2);
+ }
}
-
diff --git a/src/test/java/org/onap/dmaap/dbcapi/model/TopicTest.java b/src/test/java/org/onap/dmaap/dbcapi/model/TopicTest.java
index 5180b99..5da3aed 100644
--- a/src/test/java/org/onap/dmaap/dbcapi/model/TopicTest.java
+++ b/src/test/java/org/onap/dmaap/dbcapi/model/TopicTest.java
@@ -4,6 +4,8 @@
* ================================================================================
* Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
+ * Modifications Copyright (c) 2019 IBM
+ * ================================================================================
* 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
@@ -19,62 +21,67 @@
*/
package org.onap.dmaap.dbcapi.model;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.onap.dmaap.dbcapi.model.DmaapObject.DmaapObject_Status;
import org.onap.dmaap.dbcapi.testframework.ReflectionHarness;
-
public class TopicTest {
- private static final String fmt = "%24s: %s%n";
+ ReflectionHarness rh = new ReflectionHarness();
- ReflectionHarness rh = new ReflectionHarness();
+ String f, t, d, e, o;
- String f, t, d, e, o;
+ @Before
+ public void setUp() throws Exception {
+ f = "org.onap.dmaap.interestingTopic";
+ t = "interestingTopic";
+ d = "A so very interesting topic";
+ e = "Yes";
+ o = "m12345";
+ }
- @Before
- public void setUp() throws Exception {
- f = "org.onap.dmaap.interestingTopic";
- t = "interestingTopic";
- d = "A so very interesting topic";
- e = "Yes";
- o = "m12345";
- }
+ @After
+ public void tearDown() throws Exception {
+ }
- @After
- public void tearDown() throws Exception {
- }
+ @Test
+ public void test1() {
+ rh.reflect("org.onap.dmaap.dbcapi.model.Topic", "get", null);
+ }
+ @Test
+ public void test2() {
+ Topic obj = new Topic(f, t, d, e, o);
+ assertTrue(f.equals(obj.getFqtn()));
+ assertTrue(t.equals(obj.getTopicName()));
+ assertTrue(d.equals(obj.getTopicDescription()));
+ assertTrue(e.equals(obj.getTnxEnabled()));
+ assertTrue(o.equals(obj.getOwner()));
+ }
- @Test
- public void test1() {
+ @Test
+ public void test3() {
+ String v = "Validate";
+ rh.reflect("org.onap.dmaap.dbcapi.model.Topic", "set", v);
+ }
+ @Test
+ public void getNumClientsHavingMRClientListNull() {
+ Topic obj = new Topic(f, t, d, e, o);
+ obj.setClients(null);
+ assertEquals(0, obj.getNumClients());
+ }
- rh.reflect( "org.onap.dmaap.dbcapi.model.Topic", "get", null );
-
- }
-
- @Test
- public void test2() {
- String[] a = { "put", "view" };
- Topic obj = new Topic( f, t, d, e, o );
-
-
- assertTrue( f.equals( obj.getFqtn() ));
- assertTrue( t.equals( obj.getTopicName() ));
- assertTrue( d.equals( obj.getTopicDescription() ));
- assertTrue( e.equals( obj.getTnxEnabled() ));
- assertTrue( o.equals( obj.getOwner() ));
- }
-
- @Test
- public void test3() {
-
- String v = "Validate";
- rh.reflect( "org.onap.dmaap.dbcapi.model.Topic", "set", v );
- }
+ @Test
+ public void testTopicInitializationWithInvalidJsonString() {
+ String json = "{\"key\":\"value\"";
+ Topic obj = new Topic(json);
+ assertEquals(DmaapObject_Status.INVALID, obj.getStatus());
+ }
}
diff --git a/src/test/java/org/onap/dmaap/dbcapi/resources/RequiredFieldExceptionTest.java b/src/test/java/org/onap/dmaap/dbcapi/resources/RequiredFieldExceptionTest.java
new file mode 100644
index 0000000..d3dcc42
--- /dev/null
+++ b/src/test/java/org/onap/dmaap/dbcapi/resources/RequiredFieldExceptionTest.java
@@ -0,0 +1,51 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * org.onap.dmaap
+ * ================================================================================
+ * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Modifications Copyright (c) 2019 IBM
+ * ===================================================================
+ * 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.dmaap.dbcapi.resources;
+
+import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.dmaap.dbcapi.model.ApiError;
+
+public class RequiredFieldExceptionTest {
+ ApiError apiError;
+ RequiredFieldException requiredFieldException;
+ String expectedValue;
+
+ @Before
+ public void setUp() {
+ apiError = new ApiError(BAD_REQUEST.getStatusCode(), "value 'with white space' violates regexp check '^\\S+$'",
+ "field_name");
+
+ expectedValue = "RequiredFieldException{" + "apiError=" + apiError + '}';
+
+ requiredFieldException = new RequiredFieldException(apiError);
+ }
+
+ @Test
+ public void testRequiredFieldExceptionToString() {
+ assertEquals(expectedValue, requiredFieldException.toString());
+ }
+}