Junit test case coverage for some classes in music-rest 79/102779/3
authorGadicherla, Shiva <sg592n@att.com>
Mon, 2 Mar 2020 21:15:50 +0000 (21:15 +0000)
committerGadicherla, Shiva <sg592n@att.com>
Mon, 2 Mar 2020 22:09:52 +0000 (22:09 +0000)
Issue-ID: MUSIC-521

Signed-off-by: Gadicherla, Shiva <shiva.gadicherla@att.com>
Change-Id: I3be0da4c0f9e2cb052e9f2dcd3ce5931b8f59d9a

music-rest/src/main/java/org/onap/music/eelf/healthcheck/MusicHealthCheck.java
music-rest/src/main/java/org/onap/music/eelf/logging/MusicLoggingServletFilter.java
music-rest/src/main/java/org/onap/music/main/PropertiesLoader.java
music-rest/src/test/java/org/onap/music/JerseyConfigTest.java [new file with mode: 0644]
music-rest/src/test/java/org/onap/music/eelf/healthcheck/MusicHealthCheckTest.java [new file with mode: 0644]
music-rest/src/test/java/org/onap/music/eelf/logging/MusicLoggingServletFilterTest.java [new file with mode: 0644]
music-rest/src/test/java/org/onap/music/main/PropertiesLoaderTest.java [new file with mode: 0644]
music-rest/src/test/java/org/onap/music/rest/RestMusicTestAPITest.java [new file with mode: 0644]
music-rest/src/test/java/org/onap/music/rest/RestMusicVersionAPITest.java [new file with mode: 0644]

index fbfc0de..acbbdd1 100644 (file)
@@ -94,10 +94,15 @@ public class MusicHealthCheck {
         pQuery.appendQueryString("insert into admin.healthcheck (id) values (?)");
         pQuery.addValue(randomUUID);
         ResultType rs = null;
-        rs = MusicCore.nonKeyRelatedPut(pQuery, consistency);
+        rs = nonKeyRelatedPut(pQuery, consistency);
         logger.info(rs.toString());
         return null != rs;
         
+    }
+    
+    /*For unit testing purpose only*/
+    public ResultType nonKeyRelatedPut(PreparedQueryObject pQuery, String consistency) throws MusicServiceException, MusicQueryException {
+        return MusicCore.nonKeyRelatedPut(pQuery, consistency);
     }
 
        private void cleanHealthCheckId(UUID randomUUID) throws MusicServiceException, MusicQueryException {
@@ -105,11 +110,14 @@ public class MusicHealthCheck {
         PreparedQueryObject deleteQueryObject = new PreparedQueryObject();
         deleteQueryObject.appendQueryString(cleanQuery);
         deleteQueryObject.addValue(randomUUID);
-        MusicDataStoreHandle.getDSHandle().executePut(deleteQueryObject, "eventual");  
+        executeEventualPut(deleteQueryObject);  
         logger.info(EELFLoggerDelegate.applicationLogger, "Cassandra healthcheck responded and cleaned up.");
        }
     
-    
+       /*For unit testing purpose only*/
+    public void executeEventualPut(PreparedQueryObject deleteQueryObject) throws MusicServiceException, MusicQueryException {
+        MusicDataStoreHandle.getDSHandle().executePut(deleteQueryObject, "eventual");
+    }
     
     private boolean createKeyspace() throws MusicServiceException,MusicQueryException {
         PreparedQueryObject pQuery = new PreparedQueryObject();
index c8c6ba6..cda5b65 100644 (file)
@@ -82,7 +82,7 @@ public class MusicLoggingServletFilter implements Filter {
     public void init(FilterConfig filterConfig) throws ServletException {
 
     }
-
+    
     @Override
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
             throws IOException, ServletException {
index 9c69b9e..3017b6d 100644 (file)
@@ -90,7 +90,7 @@ public class PropertiesLoader implements InitializingBean {
 
     @Value("${create.lock.wait.increment.ms}")
     private int createLockWaitIncrement;
-    
+
     @Value("${transId.header.prefix}")
     private String transIdPrefix;
 
@@ -340,5 +340,33 @@ public class PropertiesLoader implements InitializingBean {
         // TODO Auto-generated method stub
 
     }
+    
+    /* For unit testing purpose only*/
+    protected void setProperties() {
+        cassandraHost = "127.0.0.1";
+        debug = "true";
+        version = "x.x.x";
+        build = "y.y";
+        musicProperties = "property";
+        lockLeasePeriod = "5000";
+        cassandraUser = "user";
+        cassandraPassword = "password";
+        cassandraPort = "8007";
+        cassandraConnectTimeOutMS = "1000";
+        cassandraReadTimeOutMS = "1000";
+        isCadi = "true";
+        isKeyspaceActive = "true";
+        rertryCount = "20";
+        transIdPrefix = "transId-";
+        conversationIdPrefix = "conversation-";
+        clientIdPrefix = "clientId-";
+        messageIdPrefix = "messageId-";    
+        transIdRequired = true;
+        conversationIdRequired = true;
+        clientIdRequired = true;
+        messageIdRequired = true;
+        musicAafNs = "ns";
+        cipherEncKey = "key";
+    }
 
 }
diff --git a/music-rest/src/test/java/org/onap/music/JerseyConfigTest.java b/music-rest/src/test/java/org/onap/music/JerseyConfigTest.java
new file mode 100644 (file)
index 0000000..d7475a9
--- /dev/null
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * ============LICENSE_START==========================================
+ * org.onap.music
+ * ===================================================================
+ *  Copyright (c) 2019 AT&T Intellectual Property
+ * ===================================================================
+ *  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.music;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class JerseyConfigTest {
+    JerseyConfig jerseyConfig;
+    
+    @Before
+    public void setup() {
+        jerseyConfig = new JerseyConfig();
+    }
+    
+    @Test
+    public void testInitJerseyConfig() {
+        jerseyConfig.init();
+    }
+}
diff --git a/music-rest/src/test/java/org/onap/music/eelf/healthcheck/MusicHealthCheckTest.java b/music-rest/src/test/java/org/onap/music/eelf/healthcheck/MusicHealthCheckTest.java
new file mode 100644 (file)
index 0000000..6629063
--- /dev/null
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * ============LICENSE_START==========================================
+ * org.onap.music
+ * ===================================================================
+ *  Copyright (c) 2019 AT&T Intellectual Property
+ * ===================================================================
+ *  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.music.eelf.healthcheck;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.music.datastore.MusicDataStore;
+import org.onap.music.datastore.MusicDataStoreHandle;
+import org.onap.music.exceptions.MusicQueryException;
+import org.onap.music.exceptions.MusicServiceException;
+import org.onap.music.main.MusicCore;
+import org.onap.music.main.ResultType;
+
+public class MusicHealthCheckTest {
+
+    MusicHealthCheck musicHealthCheck;
+    
+    @Before
+    public void setup() {
+        musicHealthCheck = new MusicHealthCheck();
+    }
+    
+    @Test
+    public void testSetCassandrHost() {
+        musicHealthCheck.setCassandrHost("127.0.0.1");
+        assertEquals("127.0.0.1", musicHealthCheck.getCassandrHost());
+    }
+    
+    @Test
+    public void testGetCassandraStatus() throws MusicServiceException, MusicQueryException {
+        MusicHealthCheck mHealthCheck = Mockito.spy(MusicHealthCheck.class);
+        doReturn(ResultType.SUCCESS).when(mHealthCheck).nonKeyRelatedPut(Mockito.any(), Mockito.anyString());
+        doNothing().when(mHealthCheck).executeEventualPut(Mockito.any());
+        assertEquals("ACTIVE", mHealthCheck.getCassandraStatus("consistency"));
+    }
+    
+}
diff --git a/music-rest/src/test/java/org/onap/music/eelf/logging/MusicLoggingServletFilterTest.java b/music-rest/src/test/java/org/onap/music/eelf/logging/MusicLoggingServletFilterTest.java
new file mode 100644 (file)
index 0000000..8f5d452
--- /dev/null
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * ============LICENSE_START==========================================
+ * org.onap.music
+ * ===================================================================
+ *  Copyright (c) 2019 AT&T Intellectual Property
+ * ===================================================================
+ *  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.music.eelf.logging;
+
+import static org.mockito.Mockito.doNothing;
+import java.io.IOException;
+import java.util.Enumeration;
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.music.main.MusicUtil;
+
+public class MusicLoggingServletFilterTest {
+    MusicLoggingServletFilter filter;
+    
+    @Before
+    public void setup() throws ServletException {
+        filter = new MusicLoggingServletFilter();
+    }
+    
+    @Test
+    public void testDoFilter() throws IOException, ServletException {
+        FilterChain chain = Mockito.mock(FilterChain.class);
+        Enumeration<String> headerNames = Mockito.mock(Enumeration.class);
+        HttpServletRequest httpRequest = Mockito.mock(HttpServletRequest.class);
+        HttpServletResponse httpResponse = Mockito.mock(HttpServletResponse.class);
+        Mockito.when(headerNames.hasMoreElements()).thenReturn(true).thenReturn(true).thenReturn(true).thenReturn(false);
+        Mockito.when(headerNames.nextElement()).thenReturn("element1").thenReturn("element2").thenReturn("element3");
+        Mockito.when(httpRequest.getHeader(Mockito.anyString())).thenReturn("key1").thenReturn("key2").thenReturn("key3");
+        Mockito.when(httpRequest.getHeaderNames()).thenReturn(headerNames);
+        MusicUtil.setTransIdRequired(false);
+        MusicUtil.setConversationIdRequired(false);
+        MusicUtil.setMessageIdRequired(false);
+        MusicUtil.setClientIdRequired(false);
+        doNothing().when(chain).doFilter(Mockito.any(), Mockito.any());
+        filter.doFilter(httpRequest, httpResponse, chain);
+    }
+    
+}
diff --git a/music-rest/src/test/java/org/onap/music/main/PropertiesLoaderTest.java b/music-rest/src/test/java/org/onap/music/main/PropertiesLoaderTest.java
new file mode 100644 (file)
index 0000000..7c10e8f
--- /dev/null
@@ -0,0 +1,146 @@
+/*******************************************************************************
+ * ============LICENSE_START==========================================
+ * org.onap.music
+ * ===================================================================
+ *  Copyright (c) 2019 AT&T Intellectual Property
+ * ===================================================================
+ *  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.music.main;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import java.util.Properties;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.music.rest.RestMusicVersionAPI;
+
+public class PropertiesLoaderTest {
+    PropertiesLoader propertiesLoader;
+    
+    @Before
+    public void setup() {
+        propertiesLoader = new PropertiesLoader();
+    }
+    
+    @Test
+    public void testLoadProperties() {
+        Properties properties = Mockito.mock(Properties.class);
+        Mockito.when(properties.getProperty("cassandra.host")).thenReturn("127.0.0.1");
+        Mockito.when(properties.getProperty("cassandra.port")).thenReturn("8007");
+        Mockito.when(properties.getProperty("cassandra.user")).thenReturn("user");
+        Mockito.when(properties.getProperty("cassandra.password")).thenReturn("password");
+        Mockito.when(properties.getProperty("music.properties")).thenReturn("property");
+        Mockito.when(properties.getProperty("debug")).thenReturn("true");
+        Mockito.when(properties.getProperty("version")).thenReturn("x.x.x");
+        Mockito.when(properties.getProperty("build")).thenReturn("y.y");
+        Mockito.when(properties.getProperty("lock.lease.period")).thenReturn("5000");
+        Mockito.when(properties.getProperty("cadi")).thenReturn("true");
+        Mockito.when(properties.getProperty("keyspace.active")).thenReturn("true");
+        Mockito.when(properties.getProperty("retry.count")).thenReturn("20");
+        Mockito.when(properties.getProperty("transId.header.prefix")).thenReturn("transId");
+        Mockito.when(properties.getProperty("conversation.header.prefix")).thenReturn("conversation");
+        Mockito.when(properties.getProperty("clientId.header.prefix")).thenReturn("clientId");
+        Mockito.when(properties.getProperty("messageId.header.prefix")).thenReturn("messageId");
+        Mockito.when(properties.getProperty("transId.header.required")).thenReturn("true");
+        Mockito.when(properties.getProperty("conversation.header.required")).thenReturn("true");
+        Mockito.when(properties.getProperty("clientId.header.required")).thenReturn("true");
+        Mockito.when(properties.getProperty("messageId.header.required")).thenReturn("true");
+        Mockito.when(properties.getProperty("music.aaf.ns")).thenReturn("ns");
+        Mockito.when(properties.getProperty("cipher.enc.key")).thenReturn("key");
+        CorePropertiesLoader.loadProperties(properties);
+        assertEquals("127.0.0.1", MusicUtil.getMyCassaHost());
+        assertEquals(8007, MusicUtil.getCassandraPort());
+        assertEquals("user", MusicUtil.getCassName());
+        assertEquals("password", MusicUtil.getCassPwd());
+        assertEquals("property", MusicUtil.getMusicPropertiesFilePath());
+        assertEquals(true, MusicUtil.isDebug());
+        assertEquals("x.x.x", MusicUtil.getVersion());
+        assertEquals("y.y", MusicUtil.getBuild());
+        assertEquals(5000L, MusicUtil.getDefaultLockLeasePeriod());
+        assertEquals(true, MusicUtil.getIsCadi());
+        assertEquals(true, MusicUtil.isKeyspaceActive());
+        assertEquals(20, MusicUtil.getRetryCount());
+        assertEquals("transId-", MusicUtil.getTransIdPrefix());
+        assertEquals("conversation-", MusicUtil.getConversationIdPrefix());
+        assertEquals("clientId-", MusicUtil.getClientIdPrefix());
+        assertEquals("messageId-", MusicUtil.getMessageIdPrefix());
+        assertEquals(true, MusicUtil.getTransIdRequired());
+        assertEquals(true, MusicUtil.getConversationIdRequired());
+        assertEquals(true, MusicUtil.getClientIdRequired());
+        assertEquals(true, MusicUtil.getMessageIdRequired());
+        assertEquals("ns", MusicUtil.getMusicAafNs());
+        assertEquals("key", MusicUtil.getCipherEncKey());
+        
+        Mockito.when(properties.getProperty("cassandra.connecttimeoutms")).thenReturn("1000");
+        Mockito.when(properties.getProperty("cassandra.readtimeoutms")).thenReturn("1000");
+        Mockito.when(properties.getProperty("cassandra.connectTimeOutMS")).thenReturn("1000");
+        Mockito.when(properties.getProperty("cassandra.readTimeOutMS")).thenReturn("1000");
+        PropertiesLoader.loadProperties(properties);
+        assertEquals("127.0.0.1", MusicUtil.getMyCassaHost());
+        assertEquals(8007, MusicUtil.getCassandraPort());
+        assertEquals("user", MusicUtil.getCassName());
+        assertEquals("password", MusicUtil.getCassPwd());
+        assertEquals(1000, MusicUtil.getCassandraConnectTimeOutMS());
+        assertEquals(1000, MusicUtil.getCassandraReadTimeOutMS());
+        assertEquals("property", MusicUtil.getMusicPropertiesFilePath());
+        assertEquals(true, MusicUtil.isDebug());
+        assertEquals("x.x.x", MusicUtil.getVersion());
+        assertEquals("y.y", MusicUtil.getBuild());
+        assertEquals(5000L, MusicUtil.getDefaultLockLeasePeriod());
+        assertEquals(true, MusicUtil.getIsCadi());
+        assertEquals(true, MusicUtil.isKeyspaceActive());
+        assertEquals(20, MusicUtil.getRetryCount());
+        assertEquals("transId-", MusicUtil.getTransIdPrefix());
+        assertEquals("conversation-", MusicUtil.getConversationIdPrefix());
+        assertEquals("clientId-", MusicUtil.getClientIdPrefix());
+        assertEquals("messageId-", MusicUtil.getMessageIdPrefix());
+        assertEquals(true, MusicUtil.getTransIdRequired());
+        assertEquals(true, MusicUtil.getConversationIdRequired());
+        assertEquals(true, MusicUtil.getClientIdRequired());
+        assertEquals(true, MusicUtil.getMessageIdRequired());
+        assertEquals("ns", MusicUtil.getMusicAafNs());
+        assertEquals("key", MusicUtil.getCipherEncKey());
+        
+        propertiesLoader.setProperties();
+        propertiesLoader.loadProperties();
+        assertEquals("127.0.0.1", MusicUtil.getMyCassaHost());
+        assertEquals(8007, MusicUtil.getCassandraPort());
+        assertEquals("user", MusicUtil.getCassName());
+        assertEquals("password", MusicUtil.getCassPwd());
+        assertEquals(1000, MusicUtil.getCassandraConnectTimeOutMS());
+        assertEquals(1000, MusicUtil.getCassandraReadTimeOutMS());
+        assertEquals("property", MusicUtil.getMusicPropertiesFilePath());
+        assertEquals(true, MusicUtil.isDebug());
+        assertEquals("x.x.x", MusicUtil.getVersion());
+        assertEquals("y.y", MusicUtil.getBuild());
+        assertEquals(5000L, MusicUtil.getDefaultLockLeasePeriod());
+        assertEquals(true, MusicUtil.getIsCadi());
+        assertEquals(true, MusicUtil.isKeyspaceActive());
+        assertEquals(20, MusicUtil.getRetryCount());
+        assertEquals("transId-", MusicUtil.getTransIdPrefix());
+        assertEquals("conversation-", MusicUtil.getConversationIdPrefix());
+        assertEquals("clientId-", MusicUtil.getClientIdPrefix());
+        assertEquals("messageId-", MusicUtil.getMessageIdPrefix());
+        assertEquals(true, MusicUtil.getTransIdRequired());
+        assertEquals(true, MusicUtil.getConversationIdRequired());
+        assertEquals(true, MusicUtil.getClientIdRequired());
+        assertEquals(true, MusicUtil.getMessageIdRequired());
+        assertEquals("ns", MusicUtil.getMusicAafNs());
+        assertEquals("key", MusicUtil.getCipherEncKey());
+    }
+}
diff --git a/music-rest/src/test/java/org/onap/music/rest/RestMusicTestAPITest.java b/music-rest/src/test/java/org/onap/music/rest/RestMusicTestAPITest.java
new file mode 100644 (file)
index 0000000..235367c
--- /dev/null
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * ============LICENSE_START==========================================
+ * org.onap.music
+ * ===================================================================
+ *  Copyright (c) 2019 AT&T Intellectual Property
+ * ===================================================================
+ *  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.music.rest;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.doNothing;
+import java.util.HashMap;
+import java.util.Map;
+import javax.servlet.http.HttpServletResponse;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.music.main.MusicUtil;
+
+public class RestMusicTestAPITest {
+
+    RestMusicTestAPI restMusicTestAPI;
+    
+    @Before
+    public void setup() {
+        restMusicTestAPI = new RestMusicTestAPI();
+    }
+    
+    @Test
+    public void testSimpleTests() {
+        HttpServletResponse httpServletResponse = Mockito.mock(HttpServletResponse.class);
+        doNothing().when(httpServletResponse).addHeader(Mockito.anyString(), Mockito.anyString());
+        MusicUtil.setVersion("x.x.x");
+        MusicUtil.setBuild("y.y");
+        Map<String, HashMap<String, String>> map = restMusicTestAPI.simpleTests(httpServletResponse);
+        
+        Map<String, String> map1 = map.get("0");
+        assertEquals("2", map1.get("1").toString());
+        assertEquals("x.x.x", map1.get("Music Version").toString());
+        assertEquals("y.y", map1.get("Music Build").toString());
+        
+        Map<String, String> map2 = map.get("1");
+        assertEquals("3", map2.get("2").toString());
+        assertEquals("x.x.x", map2.get("Music Version").toString());
+        assertEquals("y.y", map2.get("Music Build").toString());
+        
+        Map<String, String> map3 = map.get("2");
+        assertEquals("4", map3.get("3").toString());
+        assertEquals("x.x.x", map3.get("Music Version").toString());
+        assertEquals("y.y", map3.get("Music Build").toString());
+    }
+}
diff --git a/music-rest/src/test/java/org/onap/music/rest/RestMusicVersionAPITest.java b/music-rest/src/test/java/org/onap/music/rest/RestMusicVersionAPITest.java
new file mode 100644 (file)
index 0000000..6fc433e
--- /dev/null
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * ============LICENSE_START==========================================
+ * org.onap.music
+ * ===================================================================
+ *  Copyright (c) 2019 AT&T Intellectual Property
+ * ===================================================================
+ *  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.music.rest;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.doNothing;
+import java.util.Map;
+import javax.servlet.http.HttpServletResponse;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.music.main.MusicUtil;
+
+public class RestMusicVersionAPITest {
+    
+    RestMusicVersionAPI restMusicVersionAPI;
+    
+    @Before
+    public void setup() {
+        restMusicVersionAPI = new RestMusicVersionAPI();
+    }
+    
+    @Test
+    public void testVersion() {
+        MusicUtil.setVersion("x.x.x");
+        HttpServletResponse httpServletResponse = Mockito.mock(HttpServletResponse.class);
+        doNothing().when(httpServletResponse).addHeader(Mockito.anyString(), Mockito.anyString());
+        Map<String,Object> map = restMusicVersionAPI.version(httpServletResponse);
+        assertEquals("MUSIC:x.x.x", map.get("version").toString());
+        assertEquals("SUCCESS", map.get("status").toString());
+    }
+    
+    @Test
+    public void testBuild() {
+        MusicUtil.setBuild("y.y");
+        MusicUtil.setVersion("x.x.x");
+        HttpServletResponse httpServletResponse = Mockito.mock(HttpServletResponse.class);
+        doNothing().when(httpServletResponse).addHeader(Mockito.anyString(), Mockito.anyString());
+        Map<String,Object> map = restMusicVersionAPI.build(httpServletResponse);
+        assertEquals("MUSIC:x.x.x", map.get("version").toString());
+        assertEquals("SUCCESS", map.get("status").toString());
+        assertEquals("MUSIC:y.y", map.get("build").toString());
+    }
+}