2 * ============LICENSE_START========================================== org.onap.music
3 * =================================================================== Copyright (c) 2017 AT&T
4 * Intellectual Property ===================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
6 * in compliance with the License. You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software distributed under the License
11 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12 * or implied. See the License for the specific language governing permissions and limitations under
15 * ============LICENSE_END=============================================
16 * ====================================================================
18 package org.onap.music.unittests;
20 import static org.junit.Assert.assertEquals;
21 import static org.junit.Assert.assertFalse;
22 import static org.junit.Assert.assertNotEquals;
23 import static org.junit.Assert.assertTrue;
24 //cjc import static org.junit.Assert.assertTrue;
27 import java.net.URISyntaxException;
28 import java.util.HashMap;
29 import java.util.List;
30 //cjc import java.util.List;
32 import java.util.UUID;
33 import javax.servlet.http.HttpServletResponse;
34 import javax.ws.rs.core.MultivaluedMap;
35 import javax.ws.rs.core.Response;
36 import javax.ws.rs.core.UriInfo;
37 import org.apache.curator.test.TestingServer;
38 import org.junit.AfterClass;
39 import org.junit.BeforeClass;
40 import org.junit.FixMethodOrder;
41 import org.junit.Test;
42 import org.junit.runner.RunWith;
43 import org.junit.runners.MethodSorters;
44 import org.mindrot.jbcrypt.BCrypt;
45 //cjcimport org.mindrot.jbcrypt.BCrypt;
46 import org.mockito.Mock;
47 import org.mockito.Mockito;
48 import org.mockito.runners.MockitoJUnitRunner;
49 import org.onap.music.datastore.PreparedQueryObject;
50 import org.onap.music.datastore.jsonobjects.JsonDelete;
51 import org.onap.music.datastore.jsonobjects.JsonInsert;
52 import org.onap.music.datastore.jsonobjects.JsonKeySpace;
53 //cjc import org.onap.music.datastore.jsonobjects.JsonKeySpace;
54 //import org.onap.music.datastore.jsonobjects.JsonOnboard;
55 import org.onap.music.datastore.jsonobjects.JsonSelect;
56 import org.onap.music.datastore.jsonobjects.JsonTable;
57 import org.onap.music.datastore.jsonobjects.JsonUpdate;
58 import org.onap.music.lockingservice.MusicLockingService;
59 import org.onap.music.main.MusicCore;
60 import org.onap.music.main.MusicUtil;
61 //import org.onap.music.main.ResultType;
62 import org.onap.music.rest.RestMusicAdminAPI;
63 import org.onap.music.rest.RestMusicDataAPI;
64 import org.onap.music.rest.RestMusicQAPI;
65 import org.onap.music.rest.RestMusicLocksAPI;
66 import com.datastax.driver.core.DataType;
67 import com.datastax.driver.core.ResultSet;
68 import com.datastax.driver.core.Row;
69 import com.sun.jersey.core.util.Base64;
70 //import com.datastax.driver.core.DataType;
71 //import com.datastax.driver.core.ResultSet;
72 //import com.datastax.driver.core.Row;
73 import com.sun.jersey.core.util.MultivaluedMapImpl;
75 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
76 @RunWith(MockitoJUnitRunner.class)
77 public class TestRestMusicQAPI {
80 RestMusicAdminAPI admin = new RestMusicAdminAPI();
81 RestMusicLocksAPI lock = new RestMusicLocksAPI();
82 RestMusicQAPI qData = new RestMusicQAPI();
83 static PreparedQueryObject testObject;
84 static TestingServer zkServer;
87 static HttpServletResponse http;
92 static String appName = "TestApp";
93 static String userId = "TestUser";
94 static String password = "TestPassword";
96 static String appName = "com.att.ecomp.portal.demeter.aid";//"TestApp";
97 static String userId = "m00468@portal.ecomp.att.com";//"TestUser";
98 static String password = "happy123";//"TestPassword";
100 static String authData = userId+":"+password;
101 static String wrongAuthData = userId+":"+"pass";
102 static String authorization = new String(Base64.encode(authData.getBytes()));
103 static String wrongAuthorization = new String(Base64.encode(wrongAuthData.getBytes()));
105 static boolean isAAF = false;
106 static UUID uuid = UUID.fromString("abc66ccc-d857-4e90-b1e5-df98a3d40ce6");
107 static String uuidS = "abc66ccc-d857-4e90-b1e5-df98a3d40ce6";
108 static String keyspaceName = "testkscjc";
109 static String tableName = "employees";
110 static String xLatestVersion = "X-latestVersion";
111 static String onboardUUID = null;
112 static String lockId = null;
113 static String lockName = "testkscjc.employees.sample3";
114 static String majorV="3";
115 static String minorV="0";
116 static String patchV="1";
117 static String aid=null;
118 static JsonKeySpace kspObject=null;
119 static RestMusicDataAPI data = new RestMusicDataAPI();
120 static Response resp;
123 public static void init() throws Exception {
125 System.out.println("before class cassandra");
126 MusicCore.mDstoreHandle = CassandraCQL.connectToEmbeddedCassandra();
127 System.out.println("before class zoo");
128 zkServer = new TestingServer(2181, new File("/tmp/zk"));
129 MusicCore.mLockHandle = new MusicLockingService();
130 // System.out.println("before class keysp");
131 //resp=data.createKeySpace(majorV,minorV,patchV,aid,appName,userId,password,kspObject,keyspaceName);
132 //System.out.println("after keyspace="+keyspaceName);
133 } catch (Exception e) {
134 System.out.println("before class exception ");
137 // admin keyspace and table
138 testObject = new PreparedQueryObject();
139 testObject.appendQueryString("CREATE KEYSPACE admin WITH REPLICATION = "
140 + "{'class' : 'SimpleStrategy' , "
141 + "'replication_factor': 1} AND DURABLE_WRITES = true");
142 MusicCore.eventualPut(testObject);
143 testObject = new PreparedQueryObject();
144 testObject.appendQueryString(
145 "CREATE TABLE admin.keyspace_master (" + " uuid uuid, keyspace_name text,"
146 + " application_name text, is_api boolean,"
147 + " password text, username text,"
148 + " is_aaf boolean, PRIMARY KEY (uuid)\n" + ");");
149 MusicCore.eventualPut(testObject);
151 testObject = new PreparedQueryObject();
152 testObject.appendQueryString(
153 "INSERT INTO admin.keyspace_master (uuid, keyspace_name, application_name, is_api, "
154 + "password, username, is_aaf) VALUES (?,?,?,?,?,?,?)");
155 testObject.addValue(MusicUtil.convertToActualDataType(DataType.uuid(), uuid));
156 testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(),
157 MusicUtil.DEFAULTKEYSPACENAME));
158 testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(), appName));
159 testObject.addValue(MusicUtil.convertToActualDataType(DataType.cboolean(), "True"));
160 testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(), BCrypt.hashpw(password, BCrypt.gensalt())));
161 testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(), userId));
162 testObject.addValue(MusicUtil.convertToActualDataType(DataType.cboolean(), isAAF));
163 MusicCore.eventualPut(testObject);
165 testObject = new PreparedQueryObject();
166 testObject.appendQueryString(
167 "INSERT INTO admin.keyspace_master (uuid, keyspace_name, application_name, is_api, "
168 + "password, username, is_aaf) VALUES (?,?,?,?,?,?,?)");
169 testObject.addValue(MusicUtil.convertToActualDataType(DataType.uuid(),
170 UUID.fromString("bbc66ccc-d857-4e90-b1e5-df98a3d40de6")));
171 testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(),
172 MusicUtil.DEFAULTKEYSPACENAME));
173 testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(), "TestApp1"));
174 testObject.addValue(MusicUtil.convertToActualDataType(DataType.cboolean(), "True"));
175 testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(), BCrypt.hashpw(password, BCrypt.gensalt())));
176 testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(), "TestUser1"));
177 testObject.addValue(MusicUtil.convertToActualDataType(DataType.cboolean(), isAAF));
178 MusicCore.eventualPut(testObject);
180 testObject = new PreparedQueryObject();
181 testObject.appendQueryString(
182 "select uuid from admin.keyspace_master where application_name = ? allow filtering");
183 testObject.addValue(MusicUtil.convertToActualDataType(DataType.text(), appName));
184 ResultSet rs = MusicCore.get(testObject);
185 List<Row> rows = rs.all();
186 if (rows.size() > 0) {
187 System.out.println("#######UUID is:" + rows.get(0).getUUID("uuid"));
190 JsonKeySpace jsonKeyspace = new JsonKeySpace();
191 Map<String, String> consistencyInfo = new HashMap<>();
192 Map<String, Object> replicationInfo = new HashMap<>();
193 consistencyInfo.put("type", "eventual");
194 replicationInfo.put("class", "SimpleStrategy");
195 replicationInfo.put("replication_factor", 1);
196 jsonKeyspace.setConsistencyInfo(consistencyInfo);
197 jsonKeyspace.setDurabilityOfWrites("true");
198 jsonKeyspace.setKeyspaceName(keyspaceName);
199 jsonKeyspace.setReplicationInfo(replicationInfo);
200 Response response = data.createKeySpace(majorV, minorV, patchV, null, authorization, appName,
201 jsonKeyspace, keyspaceName);
202 System.out.println("#######status is " + response.getStatus()+" keyspace="+keyspaceName);
207 public static void tearDownAfterClass() throws Exception {
208 System.out.println("After class");
209 testObject = new PreparedQueryObject();
210 testObject.appendQueryString("DROP KEYSPACE IF EXISTS " + keyspaceName);
211 MusicCore.eventualPut(testObject);
212 testObject = new PreparedQueryObject();
213 testObject.appendQueryString("DROP KEYSPACE IF EXISTS admin");
214 MusicCore.eventualPut(testObject);
215 MusicCore.mDstoreHandle.close();
216 MusicCore.mLockHandle.getzkLockHandle().close();
217 MusicCore.mLockHandle.close();
223 public void Test1_createQ_good() throws Exception {
224 JsonTable jsonTable = new JsonTable();
225 Map<String, String> consistencyInfo = new HashMap<>();
226 Map<String, String> fields = new HashMap<>();
227 fields.put("uuid", "text");
228 fields.put("emp_name", "text");
229 fields.put("emp_salary", "varint");
230 consistencyInfo.put("type", "eventual");
231 jsonTable.setConsistencyInfo(consistencyInfo);
232 jsonTable.setKeyspaceName(keyspaceName);
233 jsonTable.setTableName(tableName);
234 jsonTable.setFields(fields);
235 jsonTable.setPartitionKey("emp_name");
236 jsonTable.setClusteringKey("uuid");
237 jsonTable.setClusteringOrder("uuid ASC");
238 //System.out.println("cjc before print version, xLatestVersion="+xLatestVersion);
239 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
240 Response response = qData.createQ(majorV, minorV,patchV,
241 aid, appName, authorization,
242 jsonTable, keyspaceName, tableName);
243 // "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, userId, password,
244 System.out.println("#######status is " + response.getStatus());
245 System.out.println("Entity" + response.getEntity());
246 assertEquals(200, response.getStatus());
250 public void Test1_createQ_FieldsEmpty() throws Exception {
251 JsonTable jsonTable = new JsonTable();
252 Map<String, String> consistencyInfo = new HashMap<>();
253 Map<String, String> fields = new HashMap<>();
255 fields.put("uuid", "text");
256 fields.put("emp_name", "text");
257 fields.put("emp_salary", "varint");
258 fields.put("PRIMARY KEY", "(emp_name)");
260 consistencyInfo.put("type", "eventual");
261 jsonTable.setConsistencyInfo(consistencyInfo);
262 jsonTable.setKeyspaceName(keyspaceName);
263 jsonTable.setPrimaryKey("emp_name");
264 jsonTable.setTableName(tableName);
265 jsonTable.setFields(fields);
266 //System.out.println("cjc before print version, xLatestVersion="+xLatestVersion);
267 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
268 Response response = qData.createQ(majorV, minorV,patchV,
269 aid, appName, authorization,
270 jsonTable, keyspaceName, tableName);
271 // "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, userId, password,
272 System.out.println("EmptyFields #######status is " + response.getStatus());
273 System.out.println("Entity" + response.getEntity());
274 assertNotEquals(200, response.getStatus());
277 public void Test1_createQ_Clustergood() throws Exception {
278 String tableNameC="testcjcC";
279 JsonTable jsonTable = new JsonTable();
280 Map<String, String> consistencyInfo = new HashMap<>();
281 Map<String, String> fields = new HashMap<>();
282 fields.put("uuid", "text");
283 fields.put("emp_name", "text");
284 fields.put("emp_id", "text");
285 fields.put("emp_salary", "varint");
286 consistencyInfo.put("type", "eventual");
287 jsonTable.setConsistencyInfo(consistencyInfo);
288 jsonTable.setKeyspaceName(keyspaceName);
289 jsonTable.setPartitionKey("emp_name");
290 jsonTable.setClusteringKey("emp_id");
291 jsonTable.setClusteringOrder("emp_id DESC");
292 jsonTable.setTableName(tableNameC);
293 jsonTable.setFields(fields);
294 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
295 Response response = qData.createQ(majorV, minorV,patchV,
296 aid, appName, authorization,
297 jsonTable, keyspaceName, tableNameC);
298 // "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, userId, password,
299 System.out.println("#######status is " + response.getStatus()+"table namec="+tableNameC);
300 System.out.println("Entity" + response.getEntity());
301 assertEquals(200, response.getStatus());
305 public void Test1_createQ_ClusterOrderGood1() throws Exception {
306 String tableNameC="testcjcO";
307 JsonTable jsonTable = new JsonTable();
308 Map<String, String> consistencyInfo = new HashMap<>();
309 Map<String, String> fields = new HashMap<>();
310 fields.put("uuid", "text");
311 fields.put("emp_name", "text");
312 fields.put("emp_id", "text");
313 fields.put("emp_salary", "varint");
314 fields.put("PRIMARY KEY", "(emp_name,emp_id)");
315 consistencyInfo.put("type", "eventual");
316 jsonTable.setConsistencyInfo(consistencyInfo);
317 jsonTable.setKeyspaceName(keyspaceName);
318 jsonTable.setTableName(tableNameC);
319 jsonTable.setClusteringOrder("emp_id DESC");
320 jsonTable.setFields(fields);
321 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
322 Response response = qData.createQ(majorV, minorV,patchV,
323 aid, appName, authorization,
324 jsonTable, keyspaceName, tableNameC);
325 // "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, userId, password,
326 System.out.println("#######status is " + response.getStatus()+"table namec="+tableNameC);
327 System.out.println("Entity" + response.getEntity());
328 assertEquals(200, response.getStatus());
332 public void Test1_createQ_PartitionKeygood() throws Exception {
333 String tableNameP="testcjcP";
334 JsonTable jsonTable = new JsonTable();
335 Map<String, String> consistencyInfo = new HashMap<>();
336 Map<String, String> fields = new HashMap<>();
337 fields.put("uuid", "text");
338 fields.put("emp_name", "text");
339 fields.put("emp_id", "text");
340 fields.put("emp_salary", "varint");
341 fields.put("PRIMARY KEY", "((emp_name,emp_salary),emp_id)");
342 consistencyInfo.put("type", "eventual");
343 jsonTable.setConsistencyInfo(consistencyInfo);
344 jsonTable.setKeyspaceName(keyspaceName);
345 jsonTable.setTableName(tableNameP);
346 jsonTable.setClusteringOrder("emp_id DESC");
347 jsonTable.setFields(fields);
348 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
349 Response response = qData.createQ(majorV, minorV,patchV,
350 aid, appName, authorization,
351 jsonTable, keyspaceName, tableNameP);
352 // "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, userId, password,
353 System.out.println("#######status is " + response.getStatus()+"table namec="+tableNameP);
354 System.out.println("Entity" + response.getEntity());
355 assertEquals(200, response.getStatus());
359 public void Test1_createQ_PartitionKeybadclose() throws Exception {
360 String tableNameC="testcjcP1";
361 JsonTable jsonTable = new JsonTable();
362 Map<String, String> consistencyInfo = new HashMap<>();
363 Map<String, String> fields = new HashMap<>();
364 fields.put("uuid", "text");
365 fields.put("emp_name", "text");
366 fields.put("emp_id", "text");
367 fields.put("emp_salary", "varint");
368 fields.put("PRIMARY KEY", "((emp_name,emp_salary),emp_id))");
369 consistencyInfo.put("type", "eventual");
370 jsonTable.setConsistencyInfo(consistencyInfo);
371 jsonTable.setKeyspaceName(keyspaceName);
372 jsonTable.setPrimaryKey("emp_name,emp_id");
373 jsonTable.setTableName(tableNameC);
374 jsonTable.setClusteringOrder("emp_id DESC");
375 jsonTable.setFields(fields);
376 //System.out.println("cjc before print version, xLatestVersion="+xLatestVersion);
377 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
378 Response response = qData.createQ(majorV, minorV,patchV,
379 aid, appName, authorization,
380 jsonTable, keyspaceName, tableNameC);
381 // "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, userId, password,
382 System.out.println("#######status is " + response.getStatus()+"table namec="+tableNameC);
383 System.out.println("Entity" + response.getEntity());
384 //assertEquals(400, response.getStatus());
385 assertTrue(200 != response.getStatus());
389 public void Test1_createQ_ClusterOrderGood2() throws Exception {
390 String tableNameC="testcjcO1g";
391 JsonTable jsonTable = new JsonTable();
392 Map<String, String> consistencyInfo = new HashMap<>();
393 Map<String, String> fields = new HashMap<>();
394 fields.put("uuid", "text");
395 fields.put("emp_name", "text");
396 fields.put("emp_id", "text");
397 fields.put("emp_salary", "varint");
398 fields.put("PRIMARY KEY", "(emp_name,emp_salary,emp_id)");
399 consistencyInfo.put("type", "eventual");
400 jsonTable.setConsistencyInfo(consistencyInfo);
401 jsonTable.setKeyspaceName(keyspaceName);
402 jsonTable.setPrimaryKey("emp_name,emp_id");
403 jsonTable.setTableName(tableNameC);
404 jsonTable.setClusteringOrder("emp_salary ASC,emp_id DESC");
405 jsonTable.setFields(fields);
406 //System.out.println("cjc before print version, xLatestVersion="+xLatestVersion);
407 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
408 Response response = qData.createQ(majorV, minorV,patchV,
409 aid, appName, authorization,
410 jsonTable, keyspaceName, tableNameC);
411 // "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, userId, password,
412 System.out.println("#######status is " + response.getStatus()+"table namec="+tableNameC);
413 System.out.println("Entity" + response.getEntity());
414 assertEquals(200, response.getStatus());
418 public void Test1_createQ_ColPkeyoverridesPrimaryKeyGood() throws Exception {
419 String tableNameC="testcjcPr";
420 JsonTable jsonTable = new JsonTable();
421 Map<String, String> consistencyInfo = new HashMap<>();
422 Map<String, String> fields = new HashMap<>();
423 fields.put("uuid", "text");
424 fields.put("emp_name", "text");
425 fields.put("emp_id", "text");
426 fields.put("emp_salary", "varint");
427 fields.put("PRIMARY KEY", "((emp_name),emp_salary,emp_id)");
428 consistencyInfo.put("type", "eventual");
429 jsonTable.setConsistencyInfo(consistencyInfo);
430 jsonTable.setKeyspaceName(keyspaceName);
431 jsonTable.setPrimaryKey("emp_name,emp_id");
432 jsonTable.setTableName(tableNameC);
433 jsonTable.setClusteringOrder("emp_salary ASC,emp_id DESC");
434 jsonTable.setFields(fields);
435 //System.out.println("cjc before print version, xLatestVersion="+xLatestVersion);
436 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
437 Response response = qData.createQ(majorV, minorV,patchV,
438 aid, appName, authorization,
439 jsonTable, keyspaceName, tableNameC);
440 // "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, userId, password,
441 System.out.println("#######status is " + response.getStatus()+"table namec="+tableNameC);
442 System.out.println("Entity" + response.getEntity());
443 assertEquals(200, response.getStatus());
444 //assertTrue(200 != response.getStatus());
448 public void Test1_createQ_ClusterOrderBad() throws Exception {
449 String tableNameC="testcjcO1b";
450 JsonTable jsonTable = new JsonTable();
451 Map<String, String> consistencyInfo = new HashMap<>();
452 Map<String, String> fields = new HashMap<>();
453 fields.put("uuid", "text");
454 fields.put("emp_name", "text");
455 fields.put("emp_id", "text");
456 fields.put("emp_salary", "varint");
457 fields.put("PRIMARY KEY", "(emp_name,emp_id)");
458 consistencyInfo.put("type", "eventual");
459 jsonTable.setConsistencyInfo(consistencyInfo);
460 jsonTable.setKeyspaceName(keyspaceName);
461 jsonTable.setPrimaryKey("emp_name,emp_id");
462 jsonTable.setTableName(tableNameC);
463 jsonTable.setClusteringOrder("emp_id DESCx");
464 jsonTable.setFields(fields);
465 //System.out.println("cjc before print version, xLatestVersion="+xLatestVersion);
466 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
467 Response response = qData.createQ(majorV, minorV,patchV,
468 aid, appName, authorization,
469 jsonTable, keyspaceName, tableNameC);
470 // "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, userId, password,
471 System.out.println("#######status is " + response.getStatus()+"table namec="+tableNameC);
472 System.out.println("Entity" + response.getEntity());
473 assertEquals(400, response.getStatus());
478 public void Test3_createQ_0() throws Exception {
479 //duplicate testing ...
480 JsonTable jsonTable = new JsonTable();
481 Map<String, String> consistencyInfo = new HashMap<>();
482 Map<String, String> fields = new HashMap<>();
483 fields.put("uuid", "text");
484 fields.put("emp_name", "text");
485 fields.put("emp_salary", "varint");
486 fields.put("PRIMARY KEY", "(emp_name)");
487 consistencyInfo.put("type", "eventual");
488 jsonTable.setConsistencyInfo(consistencyInfo);
489 jsonTable.setKeyspaceName(keyspaceName);
490 jsonTable.setPrimaryKey("emp_name");
491 String tableNameDup=tableName+"X";
492 jsonTable.setTableName(tableNameDup);
493 jsonTable.setFields(fields);
494 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
495 Response response = qData.createQ(majorV, minorV,patchV,
496 "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, authorization,
497 jsonTable, keyspaceName, tableNameDup);
498 System.out.println("#######status for 1st time " + response.getStatus());
499 System.out.println("Entity" + response.getEntity());
501 Response response0 = qData.createQ(majorV, minorV,patchV,
502 "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, authorization,
503 jsonTable, keyspaceName, tableNameDup);
504 // 400 is the duplicate status found in response
505 // Music 113 duplicate testing
506 //import static org.junit.Assert.assertNotEquals;
507 System.out.println("#######status for 2nd time " + response0.getStatus());
508 System.out.println("Entity" + response0.getEntity());
510 assertFalse("Duplicate table not created for "+tableNameDup, 200==response0.getStatus());
511 //assertEquals(400, response0.getStatus());
512 //assertNotEquals(200,response0.getStatus());
517 public void Test3_createQ1() throws Exception {
518 JsonTable jsonTable = new JsonTable();
519 Map<String, String> consistencyInfo = new HashMap<>();
520 Map<String, String> fields = new HashMap<>();
521 fields.put("uuid", "text");
522 fields.put("emp_name", "text");
523 fields.put("emp_salary", "varint");
524 fields.put("PRIMARY KEY", "(emp_name)");
525 consistencyInfo.put("type", "eventual");
526 jsonTable.setConsistencyInfo(consistencyInfo);
527 jsonTable.setKeyspaceName(keyspaceName);
528 jsonTable.setPartitionKey("emp_name");
529 jsonTable.setClusteringKey("uuid");
530 jsonTable.setTableName(tableName);
531 jsonTable.setClusteringOrder("uuid DESC");
532 jsonTable.setFields(fields);
533 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
534 Response response = qData.createQ(majorV, minorV,patchV,
535 "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, wrongAuthorization,
536 jsonTable, keyspaceName, tableName);
537 System.out.println("#######status is " + response.getStatus());
538 System.out.println("Entity" + response.getEntity());
539 assertEquals(401, response.getStatus());
544 public void Test3_createQ2() throws Exception {
545 JsonTable jsonTable = new JsonTable();
546 Map<String, String> consistencyInfo = new HashMap<>();
547 Map<String, String> fields = new HashMap<>();
548 fields.put("uuid", "text");
549 fields.put("emp_name", "text");
550 fields.put("emp_salary", "varint");
551 fields.put("PRIMARY KEY", "(emp_name)");
552 consistencyInfo.put("type", "eventual");
553 jsonTable.setConsistencyInfo(consistencyInfo);
554 jsonTable.setKeyspaceName(keyspaceName);
555 jsonTable.setPartitionKey("emp_name");
556 jsonTable.setTableName(tableName);
557 jsonTable.setClusteringKey("emp_salary");
558 jsonTable.setClusteringOrder("emp_salary DESC");
559 jsonTable.setFields(fields);
560 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
561 Response response = qData.createQ(majorV, minorV,patchV,
562 "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, authorization,
563 jsonTable, "wrong", tableName);
564 System.out.println("#######status is " + response.getStatus());
565 System.out.println("Entity" + response.getEntity());
566 assertEquals(401, response.getStatus());
572 public void Test4_insertIntoQ() throws Exception {
573 JsonInsert jsonInsert = new JsonInsert();
574 Map<String, String> consistencyInfo = new HashMap<>();
575 Map<String, Object> values = new HashMap<>();
576 values.put("uuid", "cfd66ccc-d857-4e90-b1e5-df98a3d40cd6");
577 values.put("emp_name", "testName");
578 values.put("emp_salary", 500);
579 consistencyInfo.put("type", "eventual");
580 jsonInsert.setConsistencyInfo(consistencyInfo);
581 jsonInsert.setKeyspaceName(keyspaceName);
582 jsonInsert.setTableName(tableName);
583 jsonInsert.setValues(values);
584 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
585 Response response = qData.insertIntoQ(majorV, minorV,patchV, "abc66ccc-d857-4e90-b1e5-df98a3d40ce6",
586 appName, authorization, jsonInsert, keyspaceName, tableName);
587 assertEquals(200, response.getStatus());
592 public void Test4_insertIntoQ_valuesEmpty() throws Exception {
593 JsonInsert jsonInsert = new JsonInsert();
594 Map<String, String> consistencyInfo = new HashMap<>();
595 Map<String, Object> values = new HashMap<>();
597 values.put("uuid", "cfd66ccc-d857-4e90-b1e5-df98a3d40cd6");
598 values.put("emp_name", "testName");
599 values.put("emp_salary", 500);
601 consistencyInfo.put("type", "eventual");
602 jsonInsert.setConsistencyInfo(consistencyInfo);
603 jsonInsert.setKeyspaceName(keyspaceName);
604 jsonInsert.setTableName(tableName);
605 jsonInsert.setValues(values);
606 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
607 Response response = qData.insertIntoQ(majorV, minorV,patchV, "abc66ccc-d857-4e90-b1e5-df98a3d40ce6",
608 appName, authorization, jsonInsert, keyspaceName, tableName);
609 assertNotEquals(200, response.getStatus());
613 public void Test4_insertIntoQ2() throws Exception {
614 JsonInsert jsonInsert = new JsonInsert();
615 Map<String, String> consistencyInfo = new HashMap<>();
616 Map<String, Object> values = new HashMap<>();
617 values.put("uuid", "cfd66ccc-d857-4e90-b1e5-df98a3d40cd6");
618 values.put("emp_name", "test1");
619 values.put("emp_salary", 1500);
620 consistencyInfo.put("type", "eventual");
621 jsonInsert.setConsistencyInfo(consistencyInfo);
622 jsonInsert.setKeyspaceName(keyspaceName);
623 jsonInsert.setTableName(tableName);
624 jsonInsert.setValues(values);
625 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
626 Response response = qData.insertIntoQ(majorV, minorV,patchV,
627 "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, authorization,
628 jsonInsert, keyspaceName, tableName);
629 assertEquals(200, response.getStatus());
634 public void Test4_insertIntoQ3() throws Exception {
635 JsonInsert jsonInsert = new JsonInsert();
636 Map<String, String> consistencyInfo = new HashMap<>();
637 Map<String, Object> values = new HashMap<>();
638 values.put("uuid", "cfd66ccc-d857-4e90-b1e5-df98a3d40cd6");
639 values.put("emp_name", "test1");
640 values.put("emp_salary", 1500);
641 consistencyInfo.put("type", "eventual");
642 jsonInsert.setConsistencyInfo(consistencyInfo);
643 jsonInsert.setKeyspaceName(keyspaceName);
644 jsonInsert.setTableName(tableName);
645 jsonInsert.setValues(values);
646 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
647 Response response = qData.insertIntoQ(majorV, minorV,patchV,
648 "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, wrongAuthorization,
649 jsonInsert, keyspaceName, tableName);
650 assertEquals(401, response.getStatus());
655 public void Test4_insertIntoQ4() throws Exception {
656 JsonInsert jsonInsert = new JsonInsert();
657 Map<String, String> consistencyInfo = new HashMap<>();
658 Map<String, Object> values = new HashMap<>();
659 values.put("uuid", "cfd66ccc-d857-4e90-b1e5-df98a3d40cd6");
660 values.put("emp_name", "test1");
661 values.put("emp_salary", 1500);
662 consistencyInfo.put("type", "eventual");
663 jsonInsert.setConsistencyInfo(consistencyInfo);
664 jsonInsert.setKeyspaceName(keyspaceName);
665 jsonInsert.setTableName(tableName);
666 jsonInsert.setValues(values);
667 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
668 Response response = qData.insertIntoQ(majorV, minorV,patchV,
669 "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, authorization,
670 jsonInsert, keyspaceName, "wrong");
671 assertEquals(400, response.getStatus());
675 public void Test5_updateQ() throws Exception {
676 JsonUpdate jsonUpdate = new JsonUpdate();
677 Map<String, String> consistencyInfo = new HashMap<>();
678 MultivaluedMap<String, String> row = new MultivaluedMapImpl();
679 Map<String, Object> values = new HashMap<>();
680 row.add("emp_name", "testName");
681 row.add("uuid", "cfd66ccc-d857-4e90-b1e5-df98a3d40cd6");
682 values.put("emp_salary", "2500");
683 consistencyInfo.put("type", "atomic");
684 jsonUpdate.setConsistencyInfo(consistencyInfo);
685 jsonUpdate.setKeyspaceName(keyspaceName);
686 jsonUpdate.setTableName(tableName);
687 jsonUpdate.setValues(values);
688 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
689 Mockito.when(info.getQueryParameters()).thenReturn(row);
690 Response response = qData.updateQ(majorV, minorV,patchV, "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName,
691 authorization, jsonUpdate, keyspaceName, tableName, info);
692 assertEquals(200, response.getStatus());
696 public void Test5_updateQEmptyValues() throws Exception {
697 JsonUpdate jsonUpdate = new JsonUpdate();
698 Map<String, String> consistencyInfo = new HashMap<>();
699 MultivaluedMap<String, String> row = new MultivaluedMapImpl();
700 Map<String, Object> values = new HashMap<>();
701 row.add("emp_name", "testName");
702 //values.put("emp_salary", 2500);
703 consistencyInfo.put("type", "atomic");
704 jsonUpdate.setConsistencyInfo(consistencyInfo);
705 jsonUpdate.setKeyspaceName(keyspaceName);
706 jsonUpdate.setTableName(tableName);
707 jsonUpdate.setValues(values);
708 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
709 Mockito.when(info.getQueryParameters()).thenReturn(row);
710 Response response = qData.updateQ(majorV, minorV,patchV, "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName,
711 authorization, jsonUpdate, keyspaceName, tableName, info);
712 assertNotEquals(200, response.getStatus());
716 public void Test6_filterQ() throws Exception { //select
717 JsonSelect jsonSelect = new JsonSelect();
718 Map<String, String> consistencyInfo = new HashMap<>();
719 MultivaluedMap<String, String> row = new MultivaluedMapImpl();
720 row.add("emp_name", "testName");
721 row.add("uuid", "cfd66ccc-d857-4e90-b1e5-df98a3d40cd6");
722 consistencyInfo.put("type", "atomic");
723 jsonSelect.setConsistencyInfo(consistencyInfo);
724 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
725 Mockito.when(info.getQueryParameters()).thenReturn(row);
726 Response response = qData.filter(majorV, minorV,patchV,"abc66ccc-d857-4e90-b1e5-df98a3d40ce6",
727 appName, authorization, keyspaceName, tableName, info);
728 HashMap<String,HashMap<String,Object>> map = (HashMap<String, HashMap<String, Object>>) response.getEntity();
729 HashMap<String, Object> result = map.get("result");
730 assertEquals("2500", ((HashMap<String,Object>) result.get("row 0")).get("emp_salary").toString());
734 public void Test6_peekQ() throws Exception { //select
735 JsonSelect jsonSelect = new JsonSelect();
736 Map<String, String> consistencyInfo = new HashMap<>();
737 MultivaluedMap<String, String> row = new MultivaluedMapImpl();
738 row.add("emp_name", "testName");
739 consistencyInfo.put("type", "atomic");
740 jsonSelect.setConsistencyInfo(consistencyInfo);
741 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
742 Mockito.when(info.getQueryParameters()).thenReturn(row);
743 Response response = qData.peek(majorV, minorV,patchV,"abc66ccc-d857-4e90-b1e5-df98a3d40ce6",
744 appName, authorization, keyspaceName, tableName, info);
745 HashMap<String,HashMap<String,Object>> map = (HashMap<String, HashMap<String, Object>>) response.getEntity();
746 HashMap<String, Object> result = map.get("result");
747 if (result.isEmpty() ) assertTrue(true);
748 else assertFalse(false);
749 //assertEquals("2500", ((HashMap<String,Object>) result.get("row 0")).get("emp_salary").toString());
753 public void Test6_peekQ_empty() throws Exception { //select
754 // row is not needed in thhis test
755 JsonSelect jsonSelect = new JsonSelect();
756 Map<String, String> consistencyInfo = new HashMap<>();
757 MultivaluedMap<String, String> row = new MultivaluedMapImpl();
758 row.add("emp_name", "testName");
759 consistencyInfo.put("type", "atomic");
760 jsonSelect.setConsistencyInfo(consistencyInfo);
761 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
762 UriInfo infoe= mockUriInfo("/peek?");//empty queryParam: cause exception
763 // infoe.setQueryParameters("");
764 System.out.println("uriinfo="+infoe.getQueryParameters());
765 Mockito.when(infoe.getQueryParameters()).thenReturn(row);
766 Response response = qData.peek(majorV, minorV,patchV,"abc66ccc-d857-4e90-b1e5-df98a3d40ce6",
767 appName, authorization, keyspaceName, tableName, infoe);
768 HashMap<String,HashMap<String,Object>> map = (HashMap<String, HashMap<String, Object>>) response.getEntity();
769 HashMap<String, Object> result = map.get("result");
770 if (result.isEmpty() ) assertTrue(true);
771 else assertFalse(false);
772 //assertEquals("2500", ((HashMap<String,Object>) result.get("row 0")).get("emp_salary").toString());
776 public void Test6_deleteFromQ1() throws Exception {
777 JsonDelete jsonDelete = new JsonDelete();
778 Map<String, String> consistencyInfo = new HashMap<>();
779 MultivaluedMap<String, String> row = new MultivaluedMapImpl();
780 row.add("emp_name", "test1");
781 consistencyInfo.put("type", "atomic");
782 jsonDelete.setConsistencyInfo(consistencyInfo);
783 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
784 Mockito.when(info.getQueryParameters()).thenReturn(row);
785 Response response = qData.deleteFromQ(majorV, minorV,patchV,
786 "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, authorization,
787 jsonDelete, keyspaceName, tableName, info);
788 assertEquals(200, response.getStatus());
793 public void Test6_deleteFromQ() throws Exception {
794 JsonDelete jsonDelete = new JsonDelete();
795 Map<String, String> consistencyInfo = new HashMap<>();
796 MultivaluedMap<String, String> row = new MultivaluedMapImpl();
797 consistencyInfo.put("type", "atomic");
798 jsonDelete.setConsistencyInfo(consistencyInfo);
799 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
800 Mockito.when(info.getQueryParameters()).thenReturn(row);
801 Response response = qData.deleteFromQ(majorV, minorV,patchV,
802 "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, authorization,
803 jsonDelete, keyspaceName, tableName, info);
804 assertEquals(400, response.getStatus());
809 public void Test6_deleteFromQ2() throws Exception {
810 JsonDelete jsonDelete = new JsonDelete();
811 Map<String, String> consistencyInfo = new HashMap<>();
812 MultivaluedMap<String, String> row = new MultivaluedMapImpl();
813 row.add("emp_name", "test1");
814 consistencyInfo.put("type", "atomic");
815 jsonDelete.setConsistencyInfo(consistencyInfo);
816 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
817 Mockito.when(info.getQueryParameters()).thenReturn(row);
818 Response response = qData.deleteFromQ(majorV, minorV,patchV,
819 "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, authorization,
820 null, keyspaceName, tableName, info);
821 assertEquals(400, response.getStatus());
825 public void Test7_dropQ() throws Exception {
826 JsonTable jsonTable = new JsonTable();
827 Map<String, String> consistencyInfo = new HashMap<>();
828 consistencyInfo.put("type", "atomic");
829 jsonTable.setConsistencyInfo(consistencyInfo);
830 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
831 Response response = qData.dropQ(majorV, minorV,patchV,
832 "abc66ccc-d857-4e90-b1e5-df98a3d40ce6", appName, authorization,
833 keyspaceName, tableName);
834 assertEquals(200, response.getStatus());
837 private UriInfo mockUriInfo(String urix) throws URISyntaxException {
838 String uri="http://localhost:8080/MUSIC/rest/v"+majorV+"/priorityq/keyspaces/"+keyspaceName+"/"+tableName+urix;
839 UriInfo uriInfo = Mockito.mock(UriInfo.class);
840 System.out.println("mock urix="+urix+" uri="+uri);
841 Mockito.when(uriInfo.getRequestUri()).thenReturn(new URI(uri));
848 public void Test8_createQ_fields_empty() throws Exception {
849 String tableNameC="testcjcC";
850 JsonTable jsonTable = new JsonTable();
851 Map<String, String> consistencyInfo = new HashMap<>();
852 consistencyInfo.put("type", "eventual");
853 jsonTable.setConsistencyInfo(consistencyInfo);
854 jsonTable.setKeyspaceName(keyspaceName);
855 jsonTable.setPartitionKey("emp_name");
856 jsonTable.setClusteringKey("emp_id");
857 jsonTable.setClusteringOrder("emp_id DESC");
858 jsonTable.setTableName(tableNameC);
859 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
860 Response response = qData.createQ(majorV, minorV,patchV,
861 aid, appName, authorization,
862 jsonTable, keyspaceName, tableNameC);
863 System.out.println("#######status is " + response.getStatus()+"table namec="+tableNameC);
864 System.out.println("Entity" + response.getEntity());
865 assertEquals(400, response.getStatus());
870 public void Test8_createQ_partitionKey_empty() throws Exception {
871 String tableNameC="testcjcC";
872 JsonTable jsonTable = new JsonTable();
873 Map<String, String> consistencyInfo = new HashMap<>();
874 Map<String, String> fields = new HashMap<>();
875 fields.put("uuid", "text");
876 fields.put("emp_name", "text");
877 fields.put("emp_id", "text");
878 fields.put("emp_salary", "varint");
879 consistencyInfo.put("type", "eventual");
880 jsonTable.setConsistencyInfo(consistencyInfo);
881 jsonTable.setKeyspaceName(keyspaceName);
882 jsonTable.setClusteringKey("emp_id");
883 jsonTable.setClusteringOrder("emp_id DESC");
884 jsonTable.setTableName(tableNameC);
885 jsonTable.setFields(fields);
886 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
887 Response response = qData.createQ(majorV, minorV,patchV,
888 aid, appName, authorization,
889 jsonTable, keyspaceName, tableNameC);
890 System.out.println("#######status is " + response.getStatus()+"table namec="+tableNameC);
891 System.out.println("Entity" + response.getEntity());
892 assertEquals(400, response.getStatus());
895 //Clustering key null
897 public void Test8_createQ_ClusteringKey_empty() throws Exception {
898 String tableNameC="testcjcC";
899 JsonTable jsonTable = new JsonTable();
900 Map<String, String> consistencyInfo = new HashMap<>();
901 Map<String, String> fields = new HashMap<>();
902 fields.put("uuid", "text");
903 fields.put("emp_name", "text");
904 fields.put("emp_id", "text");
905 fields.put("emp_salary", "varint");
906 consistencyInfo.put("type", "eventual");
907 jsonTable.setConsistencyInfo(consistencyInfo);
908 jsonTable.setKeyspaceName(keyspaceName);
909 jsonTable.setPartitionKey("emp_name");
910 jsonTable.setClusteringOrder("emp_id DESC");
911 jsonTable.setTableName(tableNameC);
912 jsonTable.setFields(fields);
913 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
914 Response response = qData.createQ(majorV, minorV,patchV,
915 aid, appName, authorization,
916 jsonTable, keyspaceName, tableNameC);
917 System.out.println("#######status is " + response.getStatus()+"table namec="+tableNameC);
918 System.out.println("Entity" + response.getEntity());
919 assertEquals(400, response.getStatus());
922 //Clustering Order null
924 public void Test8_createQ_ClusteringOrder_empty() throws Exception {
925 String tableNameC="testcjcC";
926 JsonTable jsonTable = new JsonTable();
927 Map<String, String> consistencyInfo = new HashMap<>();
928 Map<String, String> fields = new HashMap<>();
929 fields.put("uuid", "text");
930 fields.put("emp_name", "text");
931 fields.put("emp_id", "text");
932 fields.put("emp_salary", "varint");
933 consistencyInfo.put("type", "eventual");
934 jsonTable.setConsistencyInfo(consistencyInfo);
935 jsonTable.setKeyspaceName(keyspaceName);
936 jsonTable.setPartitionKey("emp_name");
937 jsonTable.setClusteringKey("emp_id");
938 jsonTable.setTableName(tableNameC);
939 jsonTable.setFields(fields);
940 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
941 Response response = qData.createQ(majorV, minorV,patchV,
942 aid, appName, authorization,
943 jsonTable, keyspaceName, tableNameC);
944 System.out.println("#######status is " + response.getStatus()+"table namec="+tableNameC);
945 System.out.println("Entity" + response.getEntity());
946 assertEquals(400, response.getStatus());
949 //Invalid primary key
951 public void Test8_createQ_primaryKey_invalid() throws Exception {
952 String tableNameC="testcjcC";
953 JsonTable jsonTable = new JsonTable();
954 Map<String, String> consistencyInfo = new HashMap<>();
955 Map<String, String> fields = new HashMap<>();
956 fields.put("uuid", "text");
957 fields.put("emp_name", "text");
958 fields.put("emp_id", "text");
959 fields.put("emp_salary", "varint");
960 consistencyInfo.put("type", "eventual");
961 jsonTable.setConsistencyInfo(consistencyInfo);
962 jsonTable.setPrimaryKey("(emp_name");
963 jsonTable.setKeyspaceName(keyspaceName);
964 jsonTable.setClusteringKey("emp_id");
965 jsonTable.setClusteringOrder("emp_id ASC");
966 jsonTable.setTableName(tableNameC);
967 jsonTable.setFields(fields);
968 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
969 Response response = qData.createQ(majorV, minorV,patchV,
970 aid, appName, authorization,
971 jsonTable, keyspaceName, tableNameC);
972 System.out.println("#######status is " + response.getStatus()+"table namec="+tableNameC);
973 System.out.println("Entity" + response.getEntity());
974 assertEquals(400, response.getStatus());
977 //Primary key with no clustering key
979 public void Test8_createQ_primaryKey_with_empty_clusteringKey() throws Exception {
980 String tableNameC="testcjcC";
981 JsonTable jsonTable = new JsonTable();
982 Map<String, String> consistencyInfo = new HashMap<>();
983 Map<String, String> fields = new HashMap<>();
984 fields.put("uuid", "text");
985 fields.put("emp_name", "text");
986 fields.put("emp_id", "text");
987 fields.put("emp_salary", "varint");
988 consistencyInfo.put("type", "eventual");
989 jsonTable.setConsistencyInfo(consistencyInfo);
990 jsonTable.setKeyspaceName(keyspaceName);
991 jsonTable.setPrimaryKey("emp_name");
992 jsonTable.setTableName(tableNameC);
993 jsonTable.setFields(fields);
994 jsonTable.setClusteringOrder("emp_id ASC");
995 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
996 Response response = qData.createQ(majorV, minorV,patchV,
997 aid, appName, authorization,
998 jsonTable, keyspaceName, tableNameC);
999 System.out.println("#######status is " + response.getStatus()+"table namec="+tableNameC);
1000 System.out.println("Entity" + response.getEntity());
1001 assertEquals(400, response.getStatus());
1004 //Primary key with no partition key
1006 public void Test8_createQ_primaryKey_with_empty_partitionKey() throws Exception {
1007 String tableNameC="testcjcC";
1008 JsonTable jsonTable = new JsonTable();
1009 Map<String, String> consistencyInfo = new HashMap<>();
1010 Map<String, String> fields = new HashMap<>();
1011 fields.put("uuid", "text");
1012 fields.put("emp_name", "text");
1013 fields.put("emp_id", "text");
1014 fields.put("emp_salary", "varint");
1015 consistencyInfo.put("type", "eventual");
1016 jsonTable.setConsistencyInfo(consistencyInfo);
1017 jsonTable.setKeyspaceName(keyspaceName);
1018 jsonTable.setPrimaryKey(" ");
1019 jsonTable.setTableName(tableNameC);
1020 jsonTable.setFields(fields);
1021 jsonTable.setClusteringOrder("emp_id ASC");
1022 Mockito.doNothing().when(http).addHeader(xLatestVersion, MusicUtil.getVersion());
1023 Response response = qData.createQ(majorV, minorV,patchV,
1024 aid, appName, authorization,
1025 jsonTable, keyspaceName, tableNameC);
1026 System.out.println("#######status is " + response.getStatus()+"table namec="+tableNameC);
1027 System.out.println("Entity" + response.getEntity());
1028 assertEquals(400, response.getStatus());