diff options
author | Nelson, Thomas (arthurdent3) <nelson24@att.com> | 2019-05-14 20:23:59 +0000 |
---|---|---|
committer | Tschaen, Brendan <ctschaen@att.com> | 2019-05-16 12:59:46 -0400 |
commit | 66aac8e2b8f61f075b285f969c1f8a88fdb313bd (patch) | |
tree | 8ee4e4c06b6a95c6b596c503fa9a6b19936917f0 /src/test | |
parent | d6e7b63cc580e7b3822be61fe92a493ad5e222a3 (diff) |
CADI and a few small updates.
- Include CADI and remove Admin API and admin
code.
- A few Sonar Fixes.
- Properties File Clean up.
- Read/Write Locking API.
- Various whitespace fixes.
Issue-ID: MUSIC-394
Change-Id: I58e1b64b71796bb6bda1c97ea688f434a836d3c7
Signed-off-by: Nelson, Thomas (arthurdent3) <nelson24@att.com>
Diffstat (limited to 'src/test')
10 files changed, 376 insertions, 1368 deletions
diff --git a/src/test/java/org/onap/music/unittests/JsonResponseTest.java b/src/test/java/org/onap/music/unittests/JsonResponseTest.java index 88fddf4e..20ac1562 100644 --- a/src/test/java/org/onap/music/unittests/JsonResponseTest.java +++ b/src/test/java/org/onap/music/unittests/JsonResponseTest.java @@ -26,7 +26,9 @@ package org.onap.music.unittests; import static org.junit.Assert.*; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.junit.Test; import org.onap.music.lockingservice.cassandra.MusicLockState.LockStatus; @@ -125,4 +127,19 @@ public class JsonResponseTest { assertTrue(result.toString() instanceof String); } + + @Test + public void testLockHolders() { + result = new JsonResponse(ResultType.SUCCESS).setLock("lockName").setLockHolder("lockholder1"); + Map<String, Object> lockMap = (Map<String, Object>) result.toMap().get("lock"); + // assure that this is string for backwards compatibility + assertEquals("lockholder1", lockMap.get("lock-holder")); + + List<String> lockholders = new ArrayList<>(); + lockholders.add("lockholder1"); + lockholders.add("lockholder2"); + result.setLockHolder(lockholders); + lockMap = (Map<String, Object>) result.toMap().get("lock"); + assertEquals(lockMap.get("lock-holder"), lockholders); + } } diff --git a/src/test/java/org/onap/music/unittests/MusicDataStoreTest.java b/src/test/java/org/onap/music/unittests/MusicDataStoreTest.java index 6b7dc781..68e6f3dc 100644 --- a/src/test/java/org/onap/music/unittests/MusicDataStoreTest.java +++ b/src/test/java/org/onap/music/unittests/MusicDataStoreTest.java @@ -37,7 +37,6 @@ import org.onap.music.exceptions.MusicServiceException; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.onap.music.authentication.CachingUtil; import org.onap.music.datastore.MusicDataStore; import org.onap.music.datastore.PreparedQueryObject; @@ -84,7 +83,7 @@ public class MusicDataStoreTest { assertEquals(true, result); } - + @Test public void Test2_ExecutePut_eventual_insert() throws MusicServiceException, MusicQueryException { testObject = CassandraCQL.setPreparedInsertQueryObject1(); diff --git a/src/test/java/org/onap/music/unittests/MusicUtilTest.java b/src/test/java/org/onap/music/unittests/MusicUtilTest.java index 04149fc6..21b943f0 100644 --- a/src/test/java/org/onap/music/unittests/MusicUtilTest.java +++ b/src/test/java/org/onap/music/unittests/MusicUtilTest.java @@ -30,14 +30,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; -import org.apache.cassandra.exceptions.PreparedQueryNotFoundException; import org.junit.Test; -import org.onap.music.authentication.CachingUtil; import org.onap.music.datastore.PreparedQueryObject; -import org.onap.music.exceptions.MusicServiceException; import org.onap.music.main.MusicUtil; import com.datastax.driver.core.DataType; -import javassist.CodeConverter.ArrayAccessReplacementMethodNames; public class MusicUtilTest { @@ -60,49 +56,11 @@ public class MusicUtilTest { } @Test - public void testGetMyId() { - MusicUtil.setMyId(1); - assertEquals(MusicUtil.getMyId(),1); - } - - @Test - public void testGetAllIds() { - List<String> ids = new ArrayList<String>(); - ids.add("1"); - ids.add("2"); - ids.add("3"); - MusicUtil.setAllIds(ids); - assertEquals(MusicUtil.getAllIds().get(0),"1"); - } - -// @Test -// public void testGetPublicIp() { -// MusicUtil.setPublicIp("10.0.0.1"); -// assertEquals(MusicUtil.getPublicIp(),"10.0.0.1"); -// } - - @Test - public void testGetAllPublicIps() { - List<String> ips = new ArrayList<String>(); - ips.add("10.0.0.1"); - ips.add("10.0.0.2"); - ips.add("10.0.0.3"); - MusicUtil.setAllPublicIps(ips); - assertEquals(MusicUtil.getAllPublicIps().get(1),"10.0.0.2"); - } - - @Test public void testGetPropkeys() { assertEquals(MusicUtil.getPropkeys()[2],"debug"); } @Test - public void testGetMusicRestIp() { - MusicUtil.setMusicRestIp("localhost"); - assertEquals(MusicUtil.getMusicRestIp(),"localhost"); - } - - @Test public void testGetMusicPropertiesFilePath() { MusicUtil.setMusicPropertiesFilePath("filepath"); assertEquals(MusicUtil.getMusicPropertiesFilePath(),"filepath"); diff --git a/src/test/java/org/onap/music/unittests/TestRestMusicQAPI.java b/src/test/java/org/onap/music/unittests/TestRestMusicQAPI.java index 163f8dda..a9e6e4b6 100644 --- a/src/test/java/org/onap/music/unittests/TestRestMusicQAPI.java +++ b/src/test/java/org/onap/music/unittests/TestRestMusicQAPI.java @@ -52,6 +52,7 @@ import org.mindrot.jbcrypt.BCrypt; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; +import org.onap.music.datastore.MusicDataStore; import org.onap.music.datastore.MusicDataStoreHandle; import org.onap.music.datastore.PreparedQueryObject; import org.onap.music.datastore.jsonobjects.JsonDelete; @@ -66,9 +67,10 @@ import org.onap.music.lockingservice.cassandra.CassaLockStore; import org.onap.music.main.MusicCore; import org.onap.music.main.MusicUtil; //import org.onap.music.main.ResultType; -import org.onap.music.rest.RestMusicAdminAPI; +//import org.onap.music.rest.RestMusicAdminAPI; import org.onap.music.rest.RestMusicDataAPI; import org.onap.music.rest.RestMusicQAPI; +import org.springframework.test.util.ReflectionTestUtils; import org.onap.music.rest.RestMusicLocksAPI; import com.datastax.driver.core.DataType; import com.datastax.driver.core.ResultSet; @@ -84,7 +86,7 @@ import com.sun.jersey.core.util.MultivaluedMapImpl; public class TestRestMusicQAPI { - RestMusicAdminAPI admin = new RestMusicAdminAPI(); + //RestMusicAdminAPI admin = new RestMusicAdminAPI(); RestMusicLocksAPI lock = new RestMusicLocksAPI(); RestMusicQAPI qData = new RestMusicQAPI(); static PreparedQueryObject testObject; @@ -128,8 +130,9 @@ public class TestRestMusicQAPI { @BeforeClass public static void init() throws Exception { try { - MusicDataStoreHandle.mDstoreHandle = CassandraCQL.connectToEmbeddedCassandra(); - MusicCore.mLockHandle = new CassaLockStore(MusicDataStoreHandle.mDstoreHandle); + ReflectionTestUtils.setField(MusicDataStoreHandle.class, "mDstoreHandle", + CassandraCQL.connectToEmbeddedCassandra()); + MusicCore.mLockHandle = new CassaLockStore(MusicDataStoreHandle.getDSHandle()); // System.out.println("before class keysp"); //resp=data.createKeySpace(majorV,minorV,patchV,aid,appName,userId,password,kspObject,keyspaceName); @@ -216,8 +219,9 @@ public class TestRestMusicQAPI { testObject = new PreparedQueryObject(); testObject.appendQueryString("DROP KEYSPACE IF EXISTS admin"); MusicCore.eventualPut(testObject); - if (MusicDataStoreHandle.mDstoreHandle!=null) {} - //MusicDataStoreHandle.mDstoreHandle.close(); + MusicDataStore mds = (MusicDataStore) ReflectionTestUtils.getField(MusicDataStoreHandle.class, "mDstoreHandle"); + if (mds != null) + mds.close(); } @@ -472,7 +476,7 @@ public class TestRestMusicQAPI { // "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, userId, password, System.out.println("#######status is " + response.getStatus()+"table namec="+tableNameC); System.out.println("Entity" + response.getEntity()); - assertEquals(401, response.getStatus()); + assertEquals(400, response.getStatus()); } @@ -514,34 +518,9 @@ public class TestRestMusicQAPI { //assertNotEquals(200,response0.getStatus()); } - // Improper Auth - @Test - public void Test3_createQ1() throws Exception { - JsonTable jsonTable = new JsonTable(); - Map<String, String> consistencyInfo = new HashMap<>(); - Map<String, String> fields = new HashMap<>(); - fields.put("uuid", "text"); - fields.put("emp_name", "text"); - fields.put("emp_salary", "varint"); - fields.put("PRIMARY KEY", "(emp_name)"); - consistencyInfo.put("type", "eventual"); - jsonTable.setConsistencyInfo(consistencyInfo); - jsonTable.setKeyspaceName(keyspaceName); - jsonTable.setPartitionKey("emp_name"); - jsonTable.setClusteringKey("uuid"); - jsonTable.setTableName(tableName); - jsonTable.setClusteringOrder("uuid DESC"); - jsonTable.setFields(fields); - //Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion()); - Response response = qData.createQ(majorV, minorV,patchV, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, wrongAuthorization, - jsonTable, keyspaceName, tableName); - System.out.println("#######status is " + response.getStatus()); - System.out.println("Entity" + response.getEntity()); - assertEquals(401, response.getStatus()); - } // Improper keyspace + @Ignore @Test public void Test3_createQ2() throws Exception { JsonTable jsonTable = new JsonTable(); @@ -631,47 +610,7 @@ public class TestRestMusicQAPI { assertEquals(200, response.getStatus()); }*/ - // Auth Error - @Test - public void Test4_insertIntoQ3() throws Exception { - JsonInsert jsonInsert = new JsonInsert(); - Map<String, String> consistencyInfo = new HashMap<>(); - Map<String, Object> values = new HashMap<>(); - values.put("uuid", "cfd66ccc-d857-4e90-b1e5-df98a3d40cd6"); - values.put("emp_name", "test1"); - values.put("emp_salary", 1500); - consistencyInfo.put("type", "eventual"); - jsonInsert.setConsistencyInfo(consistencyInfo); - jsonInsert.setKeyspaceName(keyspaceName); - jsonInsert.setTableName(tableName); - jsonInsert.setValues(values); - //Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion()); - Response response = qData.insertIntoQ(majorV, minorV,patchV, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, wrongAuthorization, - jsonInsert, keyspaceName, tableName); - assertEquals(401, response.getStatus()); - } - // Table wrong - @Test - public void Test4_insertIntoQ4() throws Exception { - JsonInsert jsonInsert = new JsonInsert(); - Map<String, String> consistencyInfo = new HashMap<>(); - Map<String, Object> values = new HashMap<>(); - values.put("uuid", "cfd66ccc-d857-4e90-b1e5-df98a3d40cd6"); - values.put("emp_name", "test1"); - values.put("emp_salary", 1500); - consistencyInfo.put("type", "eventual"); - jsonInsert.setConsistencyInfo(consistencyInfo); - jsonInsert.setKeyspaceName(keyspaceName); - jsonInsert.setTableName(tableName); - jsonInsert.setValues(values); - //Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion()); - Response response = qData.insertIntoQ(majorV, minorV,patchV, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, authorization, - jsonInsert, keyspaceName, "wrong"); - assertEquals(401, response.getStatus()); - } /* @Test public void Test5_updateQ() throws Exception { diff --git a/src/test/java/org/onap/music/unittests/TestsUsingCassandra.java b/src/test/java/org/onap/music/unittests/TestsUsingCassandra.java index ef2867d8..e2c65447 100644 --- a/src/test/java/org/onap/music/unittests/TestsUsingCassandra.java +++ b/src/test/java/org/onap/music/unittests/TestsUsingCassandra.java @@ -30,74 +30,77 @@ import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; import org.mindrot.jbcrypt.BCrypt; +import org.onap.music.datastore.MusicDataStore; import org.onap.music.datastore.MusicDataStoreHandle; import org.onap.music.datastore.PreparedQueryObject; import org.onap.music.lockingservice.cassandra.CassaLockStore; import org.onap.music.main.MusicCore; import org.onap.music.main.MusicUtil; - +import org.springframework.test.util.ReflectionTestUtils; import com.datastax.driver.core.DataType; import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Row; import com.sun.jersey.core.util.Base64; @RunWith(Suite.class) -@SuiteClasses({ TstRestMusicDataAPI.class, TstRestMusicLockAPI.class, TstRestMusicAdminAPI.class, - TstRestMusicConditionalAPI.class, TstCachingUtil.class}) +@SuiteClasses({ TstRestMusicDataAPI.class, TstRestMusicLockAPI.class, + TstRestMusicConditionalAPI.class}) public class TestsUsingCassandra { - static String appName = "TestApp"; - static String userId = "TestUser"; - static String password = "TestPassword"; - static String authData = userId+":"+password; - static String wrongAuthData = userId+":"+"pass"; - static String authorization = new String(Base64.encode(authData.getBytes())); - static String wrongAuthorization = new String(Base64.encode(wrongAuthData.getBytes())); - static boolean isAAF = false; - static UUID uuid = UUID.fromString("abc66ccc-d857-4e90-b1e5-df98a3d40ce6"); - static String keyspaceName = "testcassa"; - static String tableName = "employees"; - static String xLatestVersion = "X-latestVersion"; - static String onboardUUID = null; - static String aid = "abc66ccc-d857-4e90-b1e5-df98a3d40ce6"; - - @BeforeClass - public static void beforeClass() throws Exception { - MusicDataStoreHandle.mDstoreHandle = CassandraCQL.connectToEmbeddedCassandra(); - MusicCore.mLockHandle = new CassaLockStore(MusicDataStoreHandle.mDstoreHandle); - createAdminTable(); - } - - @AfterClass - public static void afterClass() { - PreparedQueryObject testObject = new PreparedQueryObject(); - testObject.appendQueryString("DROP KEYSPACE IF EXISTS admin"); - MusicCore.eventualPut(testObject); - if(MusicDataStoreHandle.mDstoreHandle!=null) - MusicDataStoreHandle.mDstoreHandle.close(); - } - - private static void createAdminTable() throws Exception { - PreparedQueryObject testObject = new PreparedQueryObject(); - testObject.appendQueryString(CassandraCQL.createAdminKeyspace); - MusicCore.eventualPut(testObject); - testObject = new PreparedQueryObject(); - testObject.appendQueryString(CassandraCQL.createAdminTable); - MusicCore.eventualPut(testObject); + static String appName = "TestApp"; + static String userId = "TestUser"; + static String password = "TestPassword"; + static String authData = userId+":"+password; + static String wrongAuthData = userId+":"+"pass"; + static String authorization = new String(Base64.encode(authData.getBytes())); + static String wrongAuthorization = new String(Base64.encode(wrongAuthData.getBytes())); + static boolean isAAF = false; + static UUID uuid = UUID.fromString("abc66ccc-d857-4e90-b1e5-df98a3d40ce6"); + static String keyspaceName = "testcassa"; + static String tableName = "employees"; + static String xLatestVersion = "X-latestVersion"; + static String onboardUUID = null; + static String aid = "abc66ccc-d857-4e90-b1e5-df98a3d40ce6"; + + @BeforeClass + public static void beforeClass() throws Exception { + ReflectionTestUtils.setField(MusicDataStoreHandle.class, "mDstoreHandle", + CassandraCQL.connectToEmbeddedCassandra()); + MusicCore.mLockHandle = new CassaLockStore(MusicDataStoreHandle.getDSHandle()); + createAdminTable(); + } + + @AfterClass + public static void afterClass() { + PreparedQueryObject testObject = new PreparedQueryObject(); + testObject.appendQueryString("DROP KEYSPACE IF EXISTS admin"); + MusicCore.eventualPut(testObject); + MusicDataStore mds = (MusicDataStore) ReflectionTestUtils.getField(MusicDataStoreHandle.class, "mDstoreHandle"); + if (mds != null) + mds.close(); + } + + private static void createAdminTable() throws Exception { + PreparedQueryObject testObject = new PreparedQueryObject(); + testObject.appendQueryString(CassandraCQL.createAdminKeyspace); + MusicCore.eventualPut(testObject); + testObject = new PreparedQueryObject(); + testObject.appendQueryString(CassandraCQL.createAdminTable); + MusicCore.eventualPut(testObject); - testObject = new PreparedQueryObject(); - testObject.appendQueryString( - "INSERT INTO admin.keyspace_master (uuid, keyspace_name, application_name, is_api, " - + "password, username, is_aaf) VALUES (?,?,?,?,?,?,?)"); - testObject.addValue(MusicUtil.convertToActualDataType(DataType.uuid(), uuid)); - testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(), - keyspaceName)); - testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(), appName)); - testObject.addValue(MusicUtil.convertToActualDataType(DataType.cboolean(), "True")); - testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(), BCrypt.hashpw(password, BCrypt.gensalt()))); - testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(), userId)); - testObject.addValue(MusicUtil.convertToActualDataType(DataType.cboolean(), isAAF)); - MusicCore.eventualPut(testObject); + testObject = new PreparedQueryObject(); + testObject.appendQueryString( + "INSERT INTO admin.keyspace_master (uuid, keyspace_name, application_name, is_api, " + + "password, username, is_aaf) VALUES (?,?,?,?,?,?,?)"); + testObject.addValue(MusicUtil.convertToActualDataType(DataType.uuid(), uuid)); + testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(), + keyspaceName)); + testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(), appName)); + testObject.addValue(MusicUtil.convertToActualDataType(DataType.cboolean(), "True")); + testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(), BCrypt.hashpw(password, BCrypt.gensalt()))); + testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(), userId)); + testObject.addValue(MusicUtil.convertToActualDataType(DataType.cboolean(), isAAF)); + MusicCore.eventualPut(testObject); testObject = new PreparedQueryObject(); testObject.appendQueryString( diff --git a/src/test/java/org/onap/music/unittests/TstCachingUtil.java b/src/test/java/org/onap/music/unittests/TstCachingUtil.java deleted file mode 100644 index ea47b7c1..00000000 --- a/src/test/java/org/onap/music/unittests/TstCachingUtil.java +++ /dev/null @@ -1,167 +0,0 @@ -/* - * ============LICENSE_START========================================== org.onap.music - * =================================================================== Copyright (c) 2017 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.unittests; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -import javax.ws.rs.core.Response; - -import org.junit.After; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mindrot.jbcrypt.BCrypt; -import org.mockito.junit.MockitoJUnitRunner; -import org.onap.music.authentication.CachingUtil; -import org.onap.music.datastore.MusicDataStoreHandle; -import org.onap.music.datastore.PreparedQueryObject; -import org.onap.music.datastore.jsonobjects.JsonInsert; -import org.onap.music.datastore.jsonobjects.JsonLeasedLock; -import org.onap.music.datastore.jsonobjects.JsonTable; -import org.onap.music.exceptions.MusicServiceException; -import org.onap.music.lockingservice.cassandra.CassaLockStore; -import org.onap.music.main.MusicCore; -import org.onap.music.main.MusicUtil; -import org.onap.music.rest.RestMusicDataAPI; -import org.onap.music.rest.RestMusicLocksAPI; -import com.datastax.driver.core.DataType; -import com.datastax.driver.core.ResultSet; -import com.datastax.driver.core.Row; -import com.sun.jersey.core.util.Base64; - -@RunWith(MockitoJUnitRunner.class) -public class TstCachingUtil { - - RestMusicLocksAPI lock = new RestMusicLocksAPI(); - RestMusicDataAPI data = new RestMusicDataAPI(); - static PreparedQueryObject testObject; - - static String appName = TestsUsingCassandra.appName; - static String userId = TestsUsingCassandra.userId; - static String password = TestsUsingCassandra.password; - static String authData = TestsUsingCassandra.authData; - static String authorization = TestsUsingCassandra.authorization; - static boolean isAAF = TestsUsingCassandra.isAAF; - static UUID uuid = TestsUsingCassandra.uuid; - static String keyspaceName = TestsUsingCassandra.keyspaceName; - static String tableName = TestsUsingCassandra.tableName; - static String onboardUUID = null; - - @BeforeClass - public static void init() throws Exception { - System.out.println("Testing CachingUtil class"); - try { - - } catch (Exception e) { - e.printStackTrace(); - throw new Exception("Unable to initialize before TestRestMusicData test class. " + e.getMessage()); - } - } - - @After - public void afterEachTest( ) throws MusicServiceException { - - } - - @AfterClass - public static void tearDownAfterClass() throws Exception { - testObject = new PreparedQueryObject(); - testObject.appendQueryString("DROP KEYSPACE IF EXISTS " + keyspaceName); - MusicCore.eventualPut(testObject); - } - - @Test - public void test_verifyOnboard() throws Exception { - System.out.println("Testing onboarding of app"); - CachingUtil cache = new CachingUtil(); - cache.initializeAafCache(); - Map<String, Object> authMap = CachingUtil.verifyOnboarding(appName, userId, password); - assertEquals(0, authMap.size()); - } - - @Test - public void test_authenticateAIDUser() throws Exception { - System.out.println("Testing authentication of AID user"); - createKeyspace(); - CachingUtil cache = new CachingUtil(); - cache.initializeAafCache(); - Map<String, Object> authMap = CachingUtil.authenticateAIDUser(appName, - userId, password, keyspaceName); - System.out.println("authMap is: " + authMap); - assertEquals(0, authMap.size()); - } - - @Test - public void test_getAppName() throws MusicServiceException { - System.out.println("Testing getAppName"); - CachingUtil cache = new CachingUtil(); - cache.initializeAafCache(); - assertEquals(appName, CachingUtil.getAppName(keyspaceName)); - } - - @Test - public void test_getUUIDFromCache() throws MusicServiceException { - System.out.println("Testing getUUID"); - CachingUtil cache = new CachingUtil(); - cache.initializeAafCache(); - assertEquals(uuid.toString(), CachingUtil.getUuidFromMusicCache(keyspaceName)); - } - - @Test - public void test_isAAFApplcation() throws MusicServiceException { - System.out.println("Testing to see if cache gets correct isAAF info"); - CachingUtil cache = new CachingUtil(); - cache.initializeAafCache(); - assertEquals(isAAF, Boolean.valueOf(CachingUtil.isAAFApplication(appName))); - } - - private static void createKeyspace() throws Exception { - //shouldn't really be doing this here, but create keyspace is currently turned off - PreparedQueryObject query = new PreparedQueryObject(); - query.appendQueryString(CassandraCQL.createKeySpace); - MusicCore.eventualPut(query); - - boolean isAAF = false; - String hashedpwd = BCrypt.hashpw(password, BCrypt.gensalt()); - query = new PreparedQueryObject(); - query.appendQueryString( - "INSERT into admin.keyspace_master (uuid, keyspace_name, application_name, is_api, " - + "password, username, is_aaf) values (?,?,?,?,?,?,?)"); - query.addValue(MusicUtil.convertToActualDataType(DataType.uuid(), uuid)); - query.addValue(MusicUtil.convertToActualDataType(DataType.text(), keyspaceName)); - query.addValue(MusicUtil.convertToActualDataType(DataType.text(), appName)); - query.addValue(MusicUtil.convertToActualDataType(DataType.cboolean(), "True")); - query.addValue(MusicUtil.convertToActualDataType(DataType.text(), hashedpwd)); - query.addValue(MusicUtil.convertToActualDataType(DataType.text(), userId)); - query.addValue(MusicUtil.convertToActualDataType(DataType.cboolean(), isAAF)); - CachingUtil.updateMusicCache(keyspaceName, appName); - CachingUtil.updateMusicValidateCache(appName, userId, hashedpwd); - MusicCore.eventualPut(query); - } - -} diff --git a/src/test/java/org/onap/music/unittests/TstRestMusicAdminAPI.java b/src/test/java/org/onap/music/unittests/TstRestMusicAdminAPI.java deleted file mode 100644 index e6bc3107..00000000 --- a/src/test/java/org/onap/music/unittests/TstRestMusicAdminAPI.java +++ /dev/null @@ -1,464 +0,0 @@ -/* - * ============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.unittests; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import java.util.Map; -import java.util.UUID; - -import javax.ws.rs.core.Response; - - -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Ignore; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.internal.util.reflection.FieldSetter; -import org.onap.music.authentication.MusicAAFAuthentication; -import org.onap.music.datastore.PreparedQueryObject; -import org.onap.music.datastore.jsonobjects.JsonOnboard; -import org.onap.music.datastore.jsonobjects.MusicResponse; -import org.onap.music.main.MusicCore; -import org.onap.music.rest.RestMusicAdminAPI; -import com.sun.jersey.core.util.Base64; - -public class TstRestMusicAdminAPI { - - RestMusicAdminAPI admin = new RestMusicAdminAPI(); - static PreparedQueryObject testObject; - - @Mock - MusicAAFAuthentication authMock; - - static String appName = "TestApp"; - static String userId = "TestUser"; - static String password = "TestPassword"; - static String adminName = "username"; - static String adminPassword = "password"; - static String adminAuthData = adminName +":"+adminPassword; - static String wrongAdminAuthData = adminName+"123"+":"+adminPassword; - static String authData = userId+":"+password; - static String wrongAuthData = userId+":"+"pass"; - static String authorization = new String(Base64.encode(authData.getBytes())); - static String wrongAuthorization = new String(Base64.encode(wrongAuthData.getBytes())); - static String adminAuthorization = new String(Base64.encode(adminAuthData.getBytes())); - static String wrongAdminAuthorization = new String(Base64.encode(wrongAdminAuthData.getBytes())); - - static boolean isAAF = false; - static UUID uuid = UUID.fromString("abc66ccc-d857-4e90-b1e5-df98a3d40ce6"); - static String keyspaceName = "testCassa"; - static String tableName = "employees"; - static String tableNameConditional = "Conductor"; - static String xLatestVersion = "X-latestVersion"; - static String onboardUUID = TestsUsingCassandra.onboardUUID; - static String lockId = null; - static String lockName = "testCassa.employees.sample3"; - - @BeforeClass - public static void init() throws Exception { - System.out.println("Testing RestMusicAdmin class"); - //PowerMockito.mockStatic(MusicAuthentication.class); - try { - //MusicDataStoreHandle.mDstoreHandle = CassandraCQL.connectToEmbeddedCassandra(); - } catch (Exception e) { - e.printStackTrace(); - throw new Exception("Unable to initialize before TestRestMusicData test class. " + e.getMessage()); - } - } - - @Before - public void beforeEach() throws NoSuchFieldException { - authenticateAdminTrue(); - } - - @After - public void afterEach() { - testObject = new PreparedQueryObject(); - testObject.appendQueryString("DELETE * FROM admin.keyspace_master;"); - MusicCore.eventualPut(testObject); - } - - @AfterClass - public static void tearDownAfterClass() throws Exception { - testObject = new PreparedQueryObject(); - testObject.appendQueryString("DROP KEYSPACE IF EXISTS " + keyspaceName); - MusicCore.eventualPut(testObject); - } - - @Ignore - @Test - public void test6_onboard() throws Exception { - System.out.println("Testing application onboarding"); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setAppname("TestApp2"); - jsonOnboard.setIsAAF("false"); jsonOnboard.setUserId("TestUser2"); - jsonOnboard.setKeyspace_name(keyspaceName); - jsonOnboard.setPassword("TestPassword2"); - - Response response = admin.onboardAppWithMusic(jsonOnboard,adminAuthorization); - - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(200, response.getStatus()); - } - - @Test - public void test6_onboard_wrongCredentials() throws Exception { - System.out.println("Testing application onboarding wrong credentials"); - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setAppname("TestApp2"); - jsonOnboard.setIsAAF("false"); jsonOnboard.setUserId("TestUser2"); - jsonOnboard.setKeyspace_name(keyspaceName); - jsonOnboard.setPassword("TestPassword2"); - - Response response = admin.onboardAppWithMusic(jsonOnboard,wrongAdminAuthorization); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(401, response.getStatus()); - } - - @Ignore - @Test - public void test6_onboard_duplicate() throws Exception { - System.out.println("Testing a duplicate onboarding call"); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setAppname("TestApp2"); - jsonOnboard.setIsAAF("false"); - jsonOnboard.setKeyspace_name(keyspaceName); - jsonOnboard.setUserId("TestUser2"); - jsonOnboard.setPassword("TestPassword2"); - Response response = admin.onboardAppWithMusic(jsonOnboard,adminAuthorization); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(200, response.getStatus()); - } - - // Missing appname - @Test - public void test6_onboard_noAppName() throws Exception { - System.out.println("Testing onboard missing app name"); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setIsAAF("false"); - jsonOnboard.setKeyspace_name(keyspaceName); - jsonOnboard.setUserId("TestUser2"); - jsonOnboard.setPassword("TestPassword2"); - Response response = admin.onboardAppWithMusic(jsonOnboard,adminAuthorization); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(400, response.getStatus()); - } - - - @Test - public void test7_onboardSearch_notOnboarded() throws Exception { - System.out.println("Testing application onboarding search for app that isn't onboarded"); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setAppname("TestApp2"); - jsonOnboard.setIsAAF("false"); - jsonOnboard.setAid(onboardUUID); - Response response = admin.getOnboardedInfoSearch(jsonOnboard,adminAuthorization); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - //Application is not onboarded - assertEquals(400, response.getStatus()); - } - - @Ignore - @Test - public void test7_onboardSearch() throws Exception { - System.out.println("Testing application onboarding search no matching app"); - onboardApp(); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setAppname("TestApp2"); - jsonOnboard.setIsAAF("false"); - jsonOnboard.setAid(onboardUUID); - - Response response = admin.getOnboardedInfoSearch(jsonOnboard,adminAuthorization); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(200, response.getStatus()); - } - - @Test - public void test7_onboardSearch_wrongCredentials() throws Exception { - System.out.println("Testing application onboarding search w/ wrong credentials"); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setAppname("TestApp2"); - jsonOnboard.setIsAAF("false"); - jsonOnboard.setAid(onboardUUID); - Response response = admin.getOnboardedInfoSearch(jsonOnboard,wrongAdminAuthorization); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(401, response.getStatus()); - } - - // Missing appname - @Test - public void test7_onboardSearch_noAppName() throws Exception { - System.out.println("Testing application onboarding search w/o appname"); - onboardApp(); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setIsAAF("false"); - jsonOnboard.setAid(onboardUUID); - Response response = admin.getOnboardedInfoSearch(jsonOnboard,adminAuthorization); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(200, response.getStatus()); - } - - @Ignore - @Test - public void test7_onboardSearch_empty() throws Exception { - System.out.println("Testing onboard search no app information"); - - JsonOnboard jsonOnboard = new JsonOnboard(); - Response response = admin.getOnboardedInfoSearch(jsonOnboard,adminAuthorization); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(400, response.getStatus()); - } - - @Ignore - @Test - public void test8_onboardUpdate() throws Exception { - System.out.println("Testing application onboarding update"); - onboardApp(); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setIsAAF("false"); - jsonOnboard.setUserId("TestUser3"); - jsonOnboard.setPassword("TestPassword3"); - jsonOnboard.setAid(onboardUUID); - Response response = admin.updateOnboardApp(jsonOnboard,adminAuthorization); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(200, response.getStatus()); - } - - @Ignore //not working correctly - @Test - public void test8_onboardUpdate_withAppName() throws Exception { - System.out.println("Testing application onboarding update w appname"); - onboardApp(); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setIsAAF("false"); - jsonOnboard.setUserId("TestUser3"); - jsonOnboard.setPassword("TestPassword3"); - jsonOnboard.setAppname("TestApp2"); - jsonOnboard.setAid(onboardUUID); - Response response = admin.updateOnboardApp(jsonOnboard,adminAuthorization); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(200, response.getStatus()); - } - - @Test - public void test8_onboardUpdate_noUUID() throws Exception { - System.out.println("Testing application onboarding update null uuid"); - onboardApp(); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setIsAAF("false"); - jsonOnboard.setUserId("TestUser3"); - jsonOnboard.setPassword("TestPassword3"); - jsonOnboard.setAid(null); - Response response = admin.updateOnboardApp(jsonOnboard,adminAuthorization); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(400, response.getStatus()); - } - - @Test - public void test8_onboardUpdate_wrongCredentialsNoAAF() throws Exception { - System.out.println("Testing update application onboarding search w/ wrong credentials"); - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setIsAAF("false"); - jsonOnboard.setUserId("TestUser3"); - jsonOnboard.setPassword("TestPassword3"); - jsonOnboard.setAid(onboardUUID); - Response response = admin.updateOnboardApp(jsonOnboard,wrongAdminAuthorization); - - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(401, response.getStatus()); - } - - // All null - @Test - public void test8_onboardUpdate_noAppInfo() throws Exception { - System.out.println("Testing update application onboarding update no app information"); - onboardApp(); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setAid(onboardUUID); - Response response = admin.updateOnboardApp(jsonOnboard,adminAuthorization); - - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(400, response.getStatus()); - } - - @Test - @Ignore - public void test9_onboardDelete() throws Exception { - System.out.println("Testing update application onboarding delete"); - onboardApp(); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setAppname("TestApp2"); - jsonOnboard.setAid(onboardUUID); - Response response = admin.deleteOnboardApp(jsonOnboard,adminAuthorization); - - //only 1 app matches keyspace - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(200, response.getStatus()); - } - - @Ignore //not working as expected - @Test - public void test9_onboardDelete_noAID() throws Exception { - System.out.println("Testing update application onboarding delete no AID"); - onboardApp(); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setAppname("TestApp2"); - jsonOnboard.setAid(null); - Response response = admin.deleteOnboardApp(jsonOnboard,adminAuthorization); - - //only 1 app matches name - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(200, response.getStatus()); - } - - @Ignore - @Test - public void test9_onboardDelete_noAIDManyMatch() throws Exception { - System.out.println("Testing update application onboarding delete no AID many apps in namespace"); - onboardApp(); - onboardApp(); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setAppname("TestApp2"); - jsonOnboard.setAid(null); - Response response = admin.deleteOnboardApp(jsonOnboard,adminAuthorization); - - //multiple apps matches name - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(400, response.getStatus()); - } - - @Ignore - @Test - public void test9_onboardDelete_noAID_noApp() throws Exception { - System.out.println("Testing update application onboarding delete no AID, app not onboarded"); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setAppname("TestApp2"); - jsonOnboard.setAid(null); - Response response = admin.deleteOnboardApp(jsonOnboard,adminAuthorization); - - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(400, response.getStatus()); - } - - @Test - public void test9_onboardDelete_noAppToDelete() throws Exception { - System.out.println("Testing update application onboarding delete no app information"); - onboardApp(); - - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setAppname(null); - jsonOnboard.setAid(null); - Response response = admin.deleteOnboardApp(jsonOnboard,adminAuthorization); - - //only 1 app matches keyspace - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(400, response.getStatus()); - } - - @Test - public void test9_onboardDelete_wrongCredentials() throws Exception { - System.out.println("Testing onboard delete with wrong credentials"); - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setAppname("TestApp2"); - jsonOnboard.setAid(onboardUUID); - Response response = admin.deleteOnboardApp(jsonOnboard,wrongAdminAuthorization); - - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(401, response.getStatus()); - } - - @Ignore - @Test - public void test10_delete() throws Exception { - System.out.println("Testing GUI delete call"); - onboardApp(); - MusicResponse response = admin.delete(adminAuthorization, onboardUUID); - assertEquals(200, response.getStatus()); - //assertTrue(admin.delete(adminAuthorization, onboardUUID)); - } - - @Test - public void test11_getAll() { - System.out.println("Testing GUI getall call"); - - System.out.println("admin.getall(adminAuthorization)"); - } - - /** - * Inject our mocked class and accept admin credentials - * @throws NoSuchFieldException - */ - public void authenticateAdminTrue() throws NoSuchFieldException { - authMock = Mockito.mock(MusicAAFAuthentication.class); - FieldSetter.setField(admin, admin.getClass().getDeclaredField("authenticator"), authMock); - - Mockito.when(authMock.authenticateAdmin(Mockito.matches(adminAuthorization))).thenReturn(true); - } - - /** - * onboard the application and store generate uuid into {@link onboardUUID} - * @param onboard - * @throws Exception - */ - public void onboardApp() throws Exception { - JsonOnboard jsonOnboard = new JsonOnboard(); - jsonOnboard.setAppname("TestApp2"); - jsonOnboard.setIsAAF("false"); - jsonOnboard.setUserId("TestUser2"); - jsonOnboard.setPassword("TestPassword2"); - - Response response = admin.onboardAppWithMusic(jsonOnboard,adminAuthorization); - Map<String, String> respMap = (Map<String, String>) response.getEntity(); - onboardUUID = respMap.get("Generated AID"); - } - -}
\ No newline at end of file diff --git a/src/test/java/org/onap/music/unittests/TstRestMusicConditionalAPI.java b/src/test/java/org/onap/music/unittests/TstRestMusicConditionalAPI.java index 3adab912..7021178e 100644 --- a/src/test/java/org/onap/music/unittests/TstRestMusicConditionalAPI.java +++ b/src/test/java/org/onap/music/unittests/TstRestMusicConditionalAPI.java @@ -39,7 +39,6 @@ import org.mindrot.jbcrypt.BCrypt; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.onap.music.authentication.CachingUtil; import org.onap.music.conductor.conditionals.JsonConditional; import org.onap.music.conductor.conditionals.RestMusicConditionalAPI; import org.onap.music.datastore.MusicDataStoreHandle; @@ -293,8 +292,6 @@ public class TstRestMusicConditionalAPI { query.addValue(MusicUtil.convertToActualDataType(DataType.text(), hashedpwd)); query.addValue(MusicUtil.convertToActualDataType(DataType.text(), userId)); query.addValue(MusicUtil.convertToActualDataType(DataType.cboolean(), isAAF)); - CachingUtil.updateMusicCache(keyspaceName, appName); - CachingUtil.updateMusicValidateCache(appName, userId, hashedpwd); MusicCore.eventualPut(query); } diff --git a/src/test/java/org/onap/music/unittests/TstRestMusicDataAPI.java b/src/test/java/org/onap/music/unittests/TstRestMusicDataAPI.java index 18692915..67a68f6e 100644 --- a/src/test/java/org/onap/music/unittests/TstRestMusicDataAPI.java +++ b/src/test/java/org/onap/music/unittests/TstRestMusicDataAPI.java @@ -44,7 +44,6 @@ import org.mindrot.jbcrypt.BCrypt; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.onap.music.authentication.CachingUtil; import org.onap.music.datastore.MusicDataStoreHandle; import org.onap.music.datastore.PreparedQueryObject; import org.onap.music.datastore.jsonobjects.JsonDelete; @@ -264,51 +263,6 @@ public class TstRestMusicDataAPI { assertEquals("Table " + keyspaceName + "." + tableNameDup + " already exists", respMap.get("error")); } - // Improper Auth - @Test - public void test3_createTable1() throws Exception { - System.out.println("Testing create table w/ improper authentication"); - JsonTable jsonTable = new JsonTable(); - Map<String, String> consistencyInfo = new HashMap<>(); - Map<String, String> fields = new HashMap<>(); - fields.put("uuid", "text"); - fields.put("emp_name", "text"); - fields.put("emp_salary", "varint"); - fields.put("PRIMARY KEY", "(emp_name)"); - consistencyInfo.put("type", "eventual"); - jsonTable.setConsistencyInfo(consistencyInfo); - jsonTable.setKeyspaceName(keyspaceName); - jsonTable.setPrimaryKey("emp_name"); - jsonTable.setTableName(tableName); - jsonTable.setFields(fields); - Response response = data.createTable("1", "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, - wrongAuthorization, jsonTable, keyspaceName, tableName); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(401, response.getStatus()); - } - - // Improper keyspace - @Test - public void test3_createTable3() throws Exception { - System.out.println("Testing create table for wrong keyspace"); - JsonTable jsonTable = new JsonTable(); - Map<String, String> consistencyInfo = new HashMap<>(); - Map<String, String> fields = new HashMap<>(); - fields.put("uuid", "text"); - fields.put("emp_name", "text"); - fields.put("emp_salary", "varint"); - fields.put("PRIMARY KEY", "(emp_name)"); - consistencyInfo.put("type", "eventual"); - jsonTable.setConsistencyInfo(consistencyInfo); - jsonTable.setKeyspaceName(keyspaceName); - jsonTable.setPrimaryKey("emp_name"); - jsonTable.setTableName(tableName); - jsonTable.setFields(fields); - Response response = data.createTable("1", "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, - authorization, jsonTable, "wrong", tableName); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(401, response.getStatus()); - } // Improper parenthesis in key field @Test @@ -479,38 +433,6 @@ public class TstRestMusicDataAPI { assertEquals(200, response.getStatus()); } - - // good clustering key, need to pass queryparameter - @Test - public void test3_createTableIndex_badAuth() throws Exception { - System.out.println("Testing index in create table w/ wrong authorization"); - String tableNameC = "testTableCinx"; - JsonTable jsonTable = new JsonTable(); - Map<String, String> consistencyInfo = new HashMap<>(); - Map<String, String> fields = new HashMap<>(); - fields.put("uuid", "text"); - fields.put("emp_name", "text"); - fields.put("emp_salary", "varint"); - fields.put("PRIMARY KEY", "((emp_name),emp_salary)"); - consistencyInfo.put("type", "eventual"); - jsonTable.setConsistencyInfo(consistencyInfo); - jsonTable.setKeyspaceName(keyspaceName); - jsonTable.setTableName(tableNameC); - jsonTable.setClusteringOrder("emp_salary ASC"); - jsonTable.setFields(fields); - Response response = data.createTable("1", "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, - authorization, jsonTable, keyspaceName, tableNameC); - // if 200 print to log otherwise fail assertEquals(200, response.getStatus()); - // info.setQueryParameters("index_name=inx_uuid"); - Map<String, String> queryParametersMap = new HashMap<String, String>(); - - queryParametersMap.put("index_name", "inxuuid"); - response = data.createIndex("1", "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, - wrongAuthorization, keyspaceName, tableNameC, "uuid", info); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(401, response.getStatus()); - } // create index without table name @Test @@ -654,29 +576,6 @@ public class TstRestMusicDataAPI { assertEquals(200, response.getStatus()); } - // Auth Error - @Test - public void test4_insertIntoTable3() throws Exception { - System.out.println("Testing insert into table with bad credentials"); - createTable(); - JsonInsert jsonInsert = new JsonInsert(); - Map<String, String> consistencyInfo = new HashMap<>(); - Map<String, Object> values = new HashMap<>(); - values.put("uuid", "cfd66ccc-d857-4e90-b1e5-df98a3d40cd6"); - values.put("emp_name", "test1"); - values.put("emp_salary", 1500); - consistencyInfo.put("type", "eventual"); - jsonInsert.setConsistencyInfo(consistencyInfo); - jsonInsert.setKeyspaceName(keyspaceName); - jsonInsert.setTableName(tableName); - jsonInsert.setValues(values); - Response response = data.insertIntoTable("1", "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, - wrongAuthorization, jsonInsert, keyspaceName, tableName); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(401, response.getStatus()); - } - // Table wrong @Test public void test4_insertIntoTable4() throws Exception { @@ -749,28 +648,6 @@ public class TstRestMusicDataAPI { } @Test - public void test5_updateTable_wrongAuth() throws Exception { - System.out.println("Testing update table w/ wrong credentials"); - createTable(); - - JsonUpdate jsonUpdate = new JsonUpdate(); - Map<String, String> consistencyInfo = new HashMap<>(); - Map<String, Object> values = new HashMap<>(); - values.put("emp_salary", 2500); - consistencyInfo.put("type", "atomic"); - jsonUpdate.setConsistencyInfo(consistencyInfo); - jsonUpdate.setKeyspaceName(keyspaceName); - jsonUpdate.setTableName(tableName); - jsonUpdate.setValues(values); - Response response = data.updateTable("1", "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, - wrongAuthorization, jsonUpdate, keyspaceName, tableName, info); - - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(401, response.getStatus()); - } - - @Test public void test5_updateTable_tableDNE() throws Exception { System.out.println("Testing update table that does not exist"); createTable(); @@ -843,62 +720,6 @@ public class TstRestMusicDataAPI { assertEquals(200, response.getStatus()); } - @Ignore - @Test - public void test5_updateTableAuthException1() throws Exception { - System.out.println("Testing update table authentication error"); - createTable(); - JsonUpdate jsonUpdate = new JsonUpdate(); - Map<String, String> consistencyInfo = new HashMap<>(); - MultivaluedMap<String, String> row = new MultivaluedMapImpl(); - Map<String, Object> values = new HashMap<>(); - row.add("emp_name", "testname"); - values.put("emp_salary", 2500); - consistencyInfo.put("type", "atomic"); - jsonUpdate.setConsistencyInfo(consistencyInfo); - jsonUpdate.setKeyspaceName(keyspaceName); - jsonUpdate.setTableName(tableName); - jsonUpdate.setValues(values); - - Mockito.when(info.getQueryParameters()).thenReturn(row); - String authDatax = ":"; - String authorizationx = new String(Base64.encode(authDatax.getBytes())); - Response response = data.updateTable("1", "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, - authorizationx, jsonUpdate, keyspaceName, tableName, info); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(401, response.getStatus()); - } - - @Ignore - @Test - public void test5_updateTableAuthEmpty() throws Exception { - System.out.println("Testing update table without authentication"); - createTable(); - - JsonUpdate jsonUpdate = new JsonUpdate(); - Map<String, String> consistencyInfo = new HashMap<>(); - MultivaluedMap<String, String> row = new MultivaluedMapImpl(); - Map<String, Object> values = new HashMap<>(); - row.add("emp_name", "testname"); - values.put("emp_salary", 2500); - consistencyInfo.put("type", "atomic"); - jsonUpdate.setConsistencyInfo(consistencyInfo); - jsonUpdate.setKeyspaceName(keyspaceName); - jsonUpdate.setTableName(tableName); - jsonUpdate.setValues(values); - - Mockito.when(info.getQueryParameters()).thenReturn(row); - String authDatax = ":" + password; - String authorizationx = new String(Base64.encode(authDatax.getBytes())); - String appNamex = "xx"; - Response response = data.updateTable("1", "1", "1", "", appNamex, authorizationx, jsonUpdate, keyspaceName, - tableName, info); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(401, response.getStatus()); - } - @Test public void test6_critical_selectAtomic() throws Exception { System.out.println("Testing critical select atomic"); @@ -942,21 +763,6 @@ public class TstRestMusicDataAPI { } @Test - public void test6_critical_select_wrongAuth() throws Exception { - System.out.println("Testing critical select w/ wrong authentication"); - createAndInsertIntoTable(); - JsonInsert jsonInsert = new JsonInsert(); - Map<String, String> consistencyInfo = new HashMap<>(); - consistencyInfo.put("type", "atomic"); - jsonInsert.setConsistencyInfo(consistencyInfo); - Response response = data.selectCritical("1", "1", "1","abc66ccc-d857-4e90-b1e5-df98a3d40ce6", - appName, wrongAuthorization, jsonInsert, keyspaceName, tableName,info); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(401, response.getStatus()); - } - - @Test public void test6_critical_select_nulltable() throws Exception { System.out.println("Testing critical select w/ null tablename"); createAndInsertIntoTable(); @@ -994,21 +800,6 @@ public class TstRestMusicDataAPI { } @Test - public void test6_select_wrongAuth() throws Exception { - System.out.println("Testing select w/ wrong authentication"); - createAndInsertIntoTable(); - JsonSelect jsonSelect = new JsonSelect(); - Map<String, String> consistencyInfo = new HashMap<>(); - consistencyInfo.put("type", "atomic"); - jsonSelect.setConsistencyInfo(consistencyInfo); - Response response = data.select("1", "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", - appName, wrongAuthorization, keyspaceName, tableName, info); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(401, response.getStatus()); - } - - @Test public void test6_select_nullTablename() throws Exception { System.out.println("Testing select w/ null tablename"); createAndInsertIntoTable(); @@ -1041,20 +832,6 @@ public class TstRestMusicDataAPI { } @Test - public void test6_deleteFromTable_wrongAuth() throws Exception { - System.out.println("Testing delete from table"); - createAndInsertIntoTable(); - JsonDelete jsonDelete = new JsonDelete(); - Map<String, String> consistencyInfo = new HashMap<>(); - consistencyInfo.put("type", "atomic"); - jsonDelete.setConsistencyInfo(consistencyInfo); - Response response = data.deleteFromTable("1", "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, - wrongAuthorization, jsonDelete, keyspaceName, tableName, info); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(401, response.getStatus()); - } - - @Test public void test6_deleteFromTable_missingTablename() throws Exception { System.out.println("Testing delete from table w/ null tablename"); createAndInsertIntoTable(); @@ -1120,21 +897,6 @@ public class TstRestMusicDataAPI { } @Test - public void test7_dropTable_wrongAuth() throws Exception { - System.out.println("Testing drop table w/ wrong auth"); - createTable(); - JsonTable jsonTable = new JsonTable(); - Map<String, String> consistencyInfo = new HashMap<>(); - consistencyInfo.put("type", "atomic"); - jsonTable.setConsistencyInfo(consistencyInfo); - Response response = data.dropTable("1", "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, - wrongAuthorization, keyspaceName, tableName); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(401, response.getStatus()); - } - - @Test public void test7_dropTable_nullTablename() throws Exception { System.out.println("Testing drop table w/ null tablename"); createTable(); @@ -1189,8 +951,6 @@ public class TstRestMusicDataAPI { query.addValue(MusicUtil.convertToActualDataType(DataType.text(), hashedpwd)); query.addValue(MusicUtil.convertToActualDataType(DataType.text(), userId)); query.addValue(MusicUtil.convertToActualDataType(DataType.cboolean(), isAAF)); - CachingUtil.updateMusicCache(keyspaceName, appName); - CachingUtil.updateMusicValidateCache(appName, userId, hashedpwd); MusicCore.eventualPut(query); } diff --git a/src/test/java/org/onap/music/unittests/TstRestMusicLockAPI.java b/src/test/java/org/onap/music/unittests/TstRestMusicLockAPI.java index 956a266d..86746472 100644 --- a/src/test/java/org/onap/music/unittests/TstRestMusicLockAPI.java +++ b/src/test/java/org/onap/music/unittests/TstRestMusicLockAPI.java @@ -29,9 +29,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; - +import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Response; - +import javax.ws.rs.core.UriInfo; import org.junit.After; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -39,15 +39,18 @@ import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mindrot.jbcrypt.BCrypt; +import org.mockito.Mock; +import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.onap.music.authentication.CachingUtil; -import org.onap.music.datastore.MusicDataStoreHandle; import org.onap.music.datastore.PreparedQueryObject; import org.onap.music.datastore.jsonobjects.JsonInsert; import org.onap.music.datastore.jsonobjects.JsonLeasedLock; +import org.onap.music.datastore.jsonobjects.JsonLock; import org.onap.music.datastore.jsonobjects.JsonTable; +import org.onap.music.datastore.jsonobjects.JsonUpdate; import org.onap.music.exceptions.MusicServiceException; import org.onap.music.lockingservice.cassandra.CassaLockStore; +import org.onap.music.lockingservice.cassandra.LockType; import org.onap.music.main.MusicCore; import org.onap.music.main.MusicUtil; import org.onap.music.rest.RestMusicDataAPI; @@ -56,256 +59,253 @@ import com.datastax.driver.core.DataType; import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Row; import com.sun.jersey.core.util.Base64; +import com.sun.jersey.core.util.MultivaluedMapImpl; @RunWith(MockitoJUnitRunner.class) public class TstRestMusicLockAPI { - RestMusicLocksAPI lock = new RestMusicLocksAPI(); - RestMusicDataAPI data = new RestMusicDataAPI(); - static PreparedQueryObject testObject; - - static String appName = "TestApp"; - static String userId = "TestUser"; - static String password = "TestPassword"; - static String authData = userId+":"+password; - static String wrongAuthData = userId+":"+"pass"; - static String authorization = new String(Base64.encode(authData.getBytes())); - static String wrongAuthorization = new String(Base64.encode(wrongAuthData.getBytes())); - static boolean isAAF = false; - static UUID uuid = UUID.fromString("abc66ccc-d857-4e90-b1e5-df98a3d40ce6"); - static String keyspaceName = "testcassa"; - static String tableName = "employees"; - static String onboardUUID = null; - static String lockName = "testcassa.employees.testname"; - static String malformedLock = "malformedLock"; - - @BeforeClass - public static void init() throws Exception { - System.out.println("Testing RestMusicLock class"); - try { - createKeyspace(); - } catch (Exception e) { - e.printStackTrace(); - throw new Exception("Unable to initialize before TestRestMusicData test class. " + e.getMessage()); - } - } - - @After - public void afterEachTest( ) throws MusicServiceException { - clearAllTablesFromKeyspace(); - } - - @AfterClass - public static void tearDownAfterClass() throws Exception { - testObject = new PreparedQueryObject(); - testObject.appendQueryString("DROP KEYSPACE IF EXISTS " + keyspaceName); - MusicCore.eventualPut(testObject); - } - @SuppressWarnings("unchecked") - @Test - public void test_createLockReference() throws Exception { - System.out.println("Testing create lockref"); - createAndInsertIntoTable(); - Response response =lock.createLockReference(lockName,"1","1",authorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); - Map<String,Object> respMap = (Map<String, Object>) response.getEntity(); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - - assertEquals(200, response.getStatus()); - assertTrue(respMap.containsKey("lock")); - assertTrue(((Map<String,String>) respMap.get("lock")).containsKey("lock")); + @Mock + UriInfo info; + + RestMusicLocksAPI lock = new RestMusicLocksAPI(); + RestMusicDataAPI data = new RestMusicDataAPI(); + static PreparedQueryObject testObject; + + static String appName = "TestApp"; + static String userId = "TestUser"; + static String password = "TestPassword"; + static String authData = userId + ":" + password; + static String wrongAuthData = userId + ":" + "pass"; + static String authorization = new String(Base64.encode(authData.getBytes())); + static String wrongAuthorization = new String(Base64.encode(wrongAuthData.getBytes())); + static boolean isAAF = false; + static UUID uuid = UUID.fromString("abc66ccc-d857-4e90-b1e5-df98a3d40ce6"); + static String keyspaceName = "testcassa"; + static String tableName = "employees"; + static String onboardUUID = null; + static String lockName = "testcassa.employees.testname"; + + @BeforeClass + public static void init() throws Exception { + System.out.println("Testing RestMusicLock class"); + try { + createKeyspace(); + } catch (Exception e) { + e.printStackTrace(); + throw new Exception("Unable to initialize before TestRestMusicData test class. " + e.getMessage()); + } } - @Test - public void test_createLockReference_wrongAuth() throws Exception { - System.out.println("Testing create lockref with wrong auth"); - createAndInsertIntoTable(); - Response response =lock.createLockReference(lockName,"1","1", wrongAuthorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); + @After + public void afterEachTest() throws MusicServiceException { + clearAllTablesFromKeyspace(); + } - assertEquals(401, response.getStatus()); + @AfterClass + public static void tearDownAfterClass() throws Exception { + testObject = new PreparedQueryObject(); + testObject.appendQueryString("DROP KEYSPACE IF EXISTS " + keyspaceName); + MusicCore.eventualPut(testObject); } - + + @SuppressWarnings("unchecked") @Test - public void test_createLockReference_malformedLockName() throws Exception { - System.out.println("Testing create lockref w/ malformed lock"); + public void test_createLockReference() throws Exception { + System.out.println("Testing create lockref"); createAndInsertIntoTable(); - Response response =lock.createLockReference(malformedLock,"1","1",authorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); + Response response = lock.createLockReference(lockName, "1", "1", authorization, + "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", null, appName); + Map<String, Object> respMap = (Map<String, Object>) response.getEntity(); System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(400, response.getStatus()); + assertEquals(200, response.getStatus()); + assertTrue(respMap.containsKey("lock")); + assertTrue(((Map<String, String>) respMap.get("lock")).containsKey("lock")); } @Test - public void test_accquireLock() throws Exception { - System.out.println("Testing acquire lock"); - createAndInsertIntoTable(); - String lockRef = createLockReference(); - - Response response = lock.accquireLock(lockRef, "1", "1", authorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(200, response.getStatus()); - } - - @Test - public void test_accquireLock_wrongAuth() throws Exception { - System.out.println("Testing acquire lock w/ wrong auth"); + public void test_createReadLock() throws Exception { + System.out.println("Testing create read lockref"); createAndInsertIntoTable(); - String lockRef = createLockReference(); - - Response response = lock.accquireLock(lockRef, "1", "1", wrongAuthorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); + JsonLock jsonLock = createJsonLock(LockType.READ); + Response response = lock.createLockReference(lockName, "1", "1", authorization, + "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", jsonLock, appName); + Map<String, Object> respMap = (Map<String, Object>) response.getEntity(); System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(401, response.getStatus()); + + assertEquals(200, response.getStatus()); + assertTrue(respMap.containsKey("lock")); + assertTrue(((Map<String, String>) respMap.get("lock")).containsKey("lock")); } - + @Test - public void test_accquireBadLock() throws Exception { - System.out.println("Testing acquire lock that is not lock-holder"); + public void test_createWriteLock() throws Exception { + System.out.println("Testing create read lockref"); createAndInsertIntoTable(); - - String lockRef1 = createLockReference(); - String lockRef2 = createLockReference(); - - - Response response = lock.accquireLock(lockRef2, "1", "1", authorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); + JsonLock jsonLock = createJsonLock(LockType.WRITE); + Response response = lock.createLockReference(lockName, "1", "1", authorization, + "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", jsonLock, appName); + Map<String, Object> respMap = (Map<String, Object>) response.getEntity(); System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(400, response.getStatus()); + + assertEquals(200, response.getStatus()); + assertTrue(respMap.containsKey("lock")); + assertTrue(((Map<String, String>) respMap.get("lock")).containsKey("lock")); } - + @Test - public void test_accquireLock_malformedLock() throws Exception { - System.out.println("Testing acquire lock w/ malformedLock"); + public void test_accquireLock() throws Exception { + System.out.println("Testing acquire lock"); createAndInsertIntoTable(); + String lockRef = createLockReference(); - Response response = lock.accquireLock(malformedLock, "1", "1", wrongAuthorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); + Response response = + lock.accquireLock(lockRef, "1", "1", authorization, "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(400, response.getStatus()); + assertEquals(200, response.getStatus()); } - + @Test - public void test_accquireLockWLease() throws Exception { - System.out.println("Testing acquire lock with lease"); + public void test_acquireReadLock() throws Exception { + System.out.println("Testing acquire read lock"); createAndInsertIntoTable(); - String lockRef = createLockReference(); + String lockRef = createLockReference(LockType.READ); + String lockRef2 = createLockReference(LockType.READ); - JsonLeasedLock jsonLock = new JsonLeasedLock(); - jsonLock.setLeasePeriod(10000); //10 second lease period? - Response response = lock.accquireLockWithLease(jsonLock, lockRef, "1", "1", authorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); + Response response = + lock.accquireLock(lockRef, "1", "1", authorization, "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); + System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); + assertEquals(200, response.getStatus()); + response = + lock.accquireLock(lockRef2, "1", "1", authorization, "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); assertEquals(200, response.getStatus()); } @Test - public void test_accquireLockWLease_wrongAuth() throws Exception { - System.out.println("Testing acquire lock with lease w/ wrong Auth"); + public void test_acquireReadLockaFail() throws Exception { + System.out.println("Testing acquire read lock"); createAndInsertIntoTable(); - String lockRef = createLockReference(); + String lockRef = createLockReference(LockType.WRITE); + String lockRef2 = createLockReference(LockType.READ); - JsonLeasedLock jsonLock = new JsonLeasedLock(); - jsonLock.setLeasePeriod(10000); //10 second lease period? - Response response = lock.accquireLockWithLease(jsonLock, lockRef, "1", "1", wrongAuthorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); + Response response = + lock.accquireLock(lockRef, "1", "1", authorization, "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); + System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); + assertEquals(200, response.getStatus()); + response = + lock.accquireLock(lockRef2, "1", "1", authorization, "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(401, response.getStatus()); + assertEquals(400, response.getStatus()); } - + @Test - public void test_accquireLockWLease_malformedLock() throws Exception { - System.out.println("Testing acquire lock with lease w/ malformed lock"); + public void test_writeWReadLock() throws Exception { + System.out.println("Testing writing with a read lock"); createAndInsertIntoTable(); - String lockRef = createLockReference(); + String lockRef = createLockReference(LockType.READ); + + JsonUpdate jsonUpdate = new JsonUpdate(); + Map<String, String> consistencyInfo = new HashMap<>(); + Map<String, Object> values = new HashMap<>(); + values.put("emp_salary", 2500); + consistencyInfo.put("type", "critical"); + consistencyInfo.put("lockId", lockRef); + jsonUpdate.setConsistencyInfo(consistencyInfo); + jsonUpdate.setKeyspaceName(keyspaceName); + jsonUpdate.setTableName(tableName); + jsonUpdate.setValues(values); + MultivaluedMap<String, String> row = new MultivaluedMapImpl(); + row.add("emp_name", "testname"); + Mockito.when(info.getQueryParameters()).thenReturn(row); + + Response response = data.updateTable("1", "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, + authorization, jsonUpdate, keyspaceName, tableName, info); - JsonLeasedLock jsonLock = new JsonLeasedLock(); - jsonLock.setLeasePeriod(10000); //10 second lease period? - Response response = lock.accquireLockWithLease(jsonLock, malformedLock, "1", "1", - wrongAuthorization, "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); assertEquals(400, response.getStatus()); } - - @Test - public void test_currentLockHolder() throws Exception { - System.out.println("Testing get current lock holder"); - createAndInsertIntoTable(); - String lockRef = createLockReference(); + @Test + public void test_writeWWriteLock() throws Exception { + System.out.println("Testing writing with a read lock"); + createAndInsertIntoTable(); + String lockRef = createLockReference(LockType.WRITE); + + JsonUpdate jsonUpdate = new JsonUpdate(); + Map<String, String> consistencyInfo = new HashMap<>(); + Map<String, Object> values = new HashMap<>(); + values.put("emp_salary", 2500); + consistencyInfo.put("type", "critical"); + consistencyInfo.put("lockId", lockRef); + jsonUpdate.setConsistencyInfo(consistencyInfo); + jsonUpdate.setKeyspaceName(keyspaceName); + jsonUpdate.setTableName(tableName); + jsonUpdate.setValues(values); + MultivaluedMap<String, String> row = new MultivaluedMapImpl(); + row.add("emp_name", "testname"); + Mockito.when(info.getQueryParameters()).thenReturn(row); + + Response response = data.updateTable("1", "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, + authorization, jsonUpdate, keyspaceName, tableName, info); - Response response = lock.currentLockHolder(lockName, "1", "1", authorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(200, response.getStatus()); - Map<String,Object> respMap = (Map<String, Object>) response.getEntity(); - assertEquals(lockRef, ((Map<String,String>) respMap.get("lock")).get("lock-holder")); + assertEquals(200, response.getStatus()); } - + @Test - public void test_currentLockHolder_wrongAuth() throws Exception { - System.out.println("Testing get current lock holder w/ wrong Auth"); + public void test_accquireLockWLease() throws Exception { + System.out.println("Testing acquire lock with lease"); createAndInsertIntoTable(); - String lockRef = createLockReference(); - Response response = lock.currentLockHolder(lockName, "1", "1", wrongAuthorization, + JsonLeasedLock jsonLock = new JsonLeasedLock(); + jsonLock.setLeasePeriod(10000); // 10 second lease period? + Response response = lock.accquireLockWithLease(jsonLock, lockRef, "1", "1", authorization, "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(401, response.getStatus()); + assertEquals(200, response.getStatus()); } @Test - public void test_currentLockHolder_malformedLock() throws Exception { - System.out.println("Testing get current lock holder w/ malformed lock"); + public void test_accquireBadLock() throws Exception { + System.out.println("Testing acquire lock that is not lock-holder"); createAndInsertIntoTable(); + // This is required to create an initial loc reference. + String lockRef1 = createLockReference(); + // This will create the next lock reference, whcih will not be avalale yet. + String lockRef2 = createLockReference(); - String lockRef = createLockReference(); - - Response response = lock.currentLockHolder(malformedLock, "1", "1", wrongAuthorization, + Response response = lock.accquireLock(lockRef2, "1", "1", authorization, "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); assertEquals(400, response.getStatus()); } @Test - public void test_unLock() throws Exception { - System.out.println("Testing unlock"); - createAndInsertIntoTable(); - String lockRef = createLockReference(); - - Response response = lock.unLock(lockRef, "1", "1", authorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(200, response.getStatus()); - } - - @Test - public void test_unLock_wrongAuth() throws Exception { - System.out.println("Testing unlock w/ wrong auth"); + public void test_currentLockHolder() throws Exception { + System.out.println("Testing get current lock holder"); createAndInsertIntoTable(); + String lockRef = createLockReference(); - Response response = lock.unLock(lockRef, "1", "1", wrongAuthorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); + Response response = + lock.enquireLock(lockName, "1", "1", authorization, "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(401, response.getStatus()); + assertEquals(200, response.getStatus()); + Map<String, Object> respMap = (Map<String, Object>) response.getEntity(); + assertEquals(lockRef, ((Map<String, String>) respMap.get("lock")).get("lock-holder")); } @Test - public void test_unLock_malformedLock() throws Exception { - System.out.println("Testing unlock w/ malformedLock"); + public void test_unLock() throws Exception { + System.out.println("Testing unlock"); createAndInsertIntoTable(); String lockRef = createLockReference(); - Response response = lock.unLock("malformedLock", "1", "1", wrongAuthorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); + Response response = + lock.unLock(lockRef, "1", "1", authorization, "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(400, response.getStatus()); + assertEquals(200, response.getStatus()); } @Test @@ -322,102 +322,59 @@ public class TstRestMusicLockAPI { Map<String,Object> respMap = (Map<String, Object>) response.getEntity(); assertEquals(lockRef, ((Map<String,String>) respMap.get("lock")).get("lock-holder")); } - - @Test - public void test_getLockState_wrongAuth() throws Exception { - System.out.println("Testing get lock state w/ wrong auth"); - createAndInsertIntoTable(); - - String lockRef = createLockReference(); - Response response = lock.currentLockState(lockName, "1", "1", wrongAuthorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(401, response.getStatus()); - } - + // Ignoring since this is now a duplicate of delete lock ref. @Test - public void test_getLockState_malformedLock() throws Exception { - System.out.println("Testing get lock state w/ malformedLock"); - createAndInsertIntoTable(); - - String lockRef = createLockReference(); - - Response response = lock.currentLockState(malformedLock, "1", "1", wrongAuthorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(400, response.getStatus()); - } - - @Test - @Ignore //deprecated function + @Ignore public void test_deleteLock() throws Exception { - System.out.println("Testing delete lock"); + System.out.println("Testing get lock state"); createAndInsertIntoTable(); - String lockRef = createLockReference(); - Response response = lock.deleteLock(lockName, "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", authorization, appName); System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); assertEquals(200, response.getStatus()); } - @Test - @Ignore //deprecated function - public void test_deleteLock_wrongAuth() throws Exception { - System.out.println("Testing delete lock w/ wrong auth"); - createAndInsertIntoTable(); - - String lockRef = createLockReference(); - - Response response = lock.deleteLock(lockName, "1", "1", - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", wrongAuthorization, appName); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(401, response.getStatus()); + /** + * Create table and lock reference + * + * @return the lock ref created + * @throws Exception + */ + @SuppressWarnings("unchecked") + private String createLockReference() throws Exception { + Response response = lock.createLockReference(lockName, "1", "1", authorization, + "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", null, appName); + Map<String, Object> respMap = (Map<String, Object>) response.getEntity(); + return ((Map<String, String>) respMap.get("lock")).get("lock"); } - - @Test - @Ignore //deprecated function - public void test_deleteLock_malformedLock() throws Exception { - System.out.println("Testing delete lock w/ malformed lock"); - createAndInsertIntoTable(); - - String lockRef = createLockReference(); - Response response = lock.deleteLock(malformedLock, "1", "1", - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", wrongAuthorization, appName); - System.out.println("Status: " + response.getStatus() + ". Entity " + response.getEntity()); - assertEquals(400, response.getStatus()); + /** + * Create table and lock reference + * + * @return the lock ref created + * @throws Exception + */ + @SuppressWarnings("unchecked") + private String createLockReference(LockType lockType) throws Exception { + JsonLock jsonLock = createJsonLock(lockType); + Response response = lock.createLockReference(lockName, "1", "1", authorization, + "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", jsonLock, appName); + Map<String, Object> respMap = (Map<String, Object>) response.getEntity(); + return ((Map<String, String>) respMap.get("lock")).get("lock"); } - - /** - * Create table and lock reference - * @return the lock ref created - * @throws Exception - */ - @SuppressWarnings("unchecked") - private String createLockReference() throws Exception { - Response response =lock.createLockReference(lockName,"1","1",authorization, - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName); - Map<String,Object> respMap = (Map<String, Object>) response.getEntity(); - return ((Map<String,String>) respMap.get("lock")).get("lock"); - } - - - - - private static void createKeyspace() throws Exception { - //shouldn't really be doing this here, but create keyspace is currently turned off - PreparedQueryObject query = new PreparedQueryObject(); - query.appendQueryString(CassandraCQL.createKeySpace); - MusicCore.eventualPut(query); - - boolean isAAF = false; + + private static void createKeyspace() throws Exception { + // shouldn't really be doing this here, but create keyspace is currently turned off + PreparedQueryObject query = new PreparedQueryObject(); + query.appendQueryString(CassandraCQL.createKeySpace); + MusicCore.eventualPut(query); + + boolean isAAF = false; String hashedpwd = BCrypt.hashpw(password, BCrypt.gensalt()); query = new PreparedQueryObject(); - query.appendQueryString( - "INSERT into admin.keyspace_master (uuid, keyspace_name, application_name, is_api, " + query.appendQueryString("INSERT into admin.keyspace_master (uuid, keyspace_name, application_name, is_api, " + "password, username, is_aaf) values (?,?,?,?,?,?,?)"); query.addValue(MusicUtil.convertToActualDataType(DataType.uuid(), uuid)); query.addValue(MusicUtil.convertToActualDataType(DataType.text(), keyspaceName)); @@ -426,69 +383,78 @@ public class TstRestMusicLockAPI { query.addValue(MusicUtil.convertToActualDataType(DataType.text(), hashedpwd)); query.addValue(MusicUtil.convertToActualDataType(DataType.text(), userId)); query.addValue(MusicUtil.convertToActualDataType(DataType.cboolean(), isAAF)); - CachingUtil.updateMusicCache(keyspaceName, appName); - CachingUtil.updateMusicValidateCache(appName, userId, hashedpwd); + //CachingUtil.updateMusicCache(keyspaceName, appName); + //CachingUtil.updateMusicValidateCache(appName, userId, hashedpwd); MusicCore.eventualPut(query); - } - - private void clearAllTablesFromKeyspace() throws MusicServiceException { - ArrayList<String> tableNames = new ArrayList<>(); - PreparedQueryObject query = new PreparedQueryObject(); - query.appendQueryString("SELECT table_name FROM system_schema.tables WHERE keyspace_name = '"+keyspaceName+"';"); - ResultSet rs = MusicCore.get(query); - for (Row row: rs) { - tableNames.add(row.getString("table_name")); - } - for (String table: tableNames) { - query = new PreparedQueryObject(); - query.appendQueryString("DROP TABLE " + keyspaceName + "." + table); - MusicCore.eventualPut(query); - } - } - - /** - * Create a table {@link tableName} in {@link keyspaceName} - * @throws Exception - */ - private void createTable() throws Exception { - JsonTable jsonTable = new JsonTable(); - Map<String, String> consistencyInfo = new HashMap<>(); - Map<String, String> fields = new HashMap<>(); - fields.put("uuid", "text"); - fields.put("emp_name", "text"); - fields.put("emp_salary", "varint"); - fields.put("PRIMARY KEY", "(emp_name)"); - consistencyInfo.put("type", "eventual"); - jsonTable.setConsistencyInfo(consistencyInfo); - jsonTable.setKeyspaceName(keyspaceName); - jsonTable.setPrimaryKey("emp_name"); - jsonTable.setTableName(tableName); - jsonTable.setFields(fields); - //Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion()); - Response response = data.createTable("1", "1", "1", - "abc66ccc-d857-4e90-b1e5-df98a3d40ce6",appName, authorization, - jsonTable, keyspaceName, tableName); - } - - /** - * Create table {@link createTable} and insert into said table - * @throws Exception - */ - private void createAndInsertIntoTable() throws Exception { - createTable(); - - JsonInsert jsonInsert = new JsonInsert(); - Map<String, String> consistencyInfo = new HashMap<>(); - Map<String, Object> values = new HashMap<>(); - values.put("uuid", "cfd66ccc-d857-4e90-b1e5-df98a3d40cd6"); - values.put("emp_name", "testname"); - values.put("emp_salary", 500); - consistencyInfo.put("type", "eventual"); - jsonInsert.setConsistencyInfo(consistencyInfo); - jsonInsert.setKeyspaceName(keyspaceName); - jsonInsert.setTableName(tableName); - jsonInsert.setValues(values); - Response response = data.insertIntoTable("1", "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", - appName, authorization, jsonInsert, keyspaceName, tableName); - } -} + } + + private void clearAllTablesFromKeyspace() throws MusicServiceException { + ArrayList<String> tableNames = new ArrayList<>(); + PreparedQueryObject query = new PreparedQueryObject(); + query.appendQueryString( + "SELECT table_name FROM system_schema.tables WHERE keyspace_name = '" + keyspaceName + "';"); + ResultSet rs = MusicCore.get(query); + for (Row row : rs) { + tableNames.add(row.getString("table_name")); + } + for (String table : tableNames) { + query = new PreparedQueryObject(); + query.appendQueryString("DROP TABLE " + keyspaceName + "." + table); + MusicCore.eventualPut(query); + } + } + + /** + * Create a table {@link tableName} in {@link keyspaceName} + * + * @throws Exception + */ + private void createTable() throws Exception { + JsonTable jsonTable = new JsonTable(); + Map<String, String> consistencyInfo = new HashMap<>(); + Map<String, String> fields = new HashMap<>(); + fields.put("uuid", "text"); + fields.put("emp_name", "text"); + fields.put("emp_salary", "varint"); + fields.put("PRIMARY KEY", "(emp_name)"); + consistencyInfo.put("type", "eventual"); + jsonTable.setConsistencyInfo(consistencyInfo); + jsonTable.setKeyspaceName(keyspaceName); + jsonTable.setPrimaryKey("emp_name"); + jsonTable.setTableName(tableName); + jsonTable.setFields(fields); + // Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion()); + Response response = data.createTable("1", "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, + authorization, jsonTable, keyspaceName, tableName); + } + + /** + * Create table {@link createTable} and insert into said table + * + * @throws Exception + */ + private void createAndInsertIntoTable() throws Exception { + createTable(); + + JsonInsert jsonInsert = new JsonInsert(); + Map<String, String> consistencyInfo = new HashMap<>(); + Map<String, Object> values = new HashMap<>(); + values.put("uuid", "cfd66ccc-d857-4e90-b1e5-df98a3d40cd6"); + values.put("emp_name", "testname"); + values.put("emp_salary", 500); + consistencyInfo.put("type", "eventual"); + jsonInsert.setConsistencyInfo(consistencyInfo); + jsonInsert.setKeyspaceName(keyspaceName); + jsonInsert.setTableName(tableName); + jsonInsert.setValues(values); + Response response = data.insertIntoTable("1", "1", "1", "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, + authorization, jsonInsert, keyspaceName, tableName); + } + + private JsonLock createJsonLock(LockType lockType) { + JsonLock jsonLock = new JsonLock(); + jsonLock.setLockType(lockType); + return jsonLock; + } + +}
\ No newline at end of file |