aboutsummaryrefslogtreecommitdiffstats
path: root/mdbc-server/src/test/java/org/onap/music
diff options
context:
space:
mode:
authorTschaen, Brendan <ctschaen@att.com>2019-04-18 11:08:14 -0400
committerTschaen, Brendan <ctschaen@att.com>2019-04-18 11:31:57 -0400
commit601050a535e916c0ff52826fbe2c61b798c74530 (patch)
tree137402ea91c92dcc9b41d5b431ca797c50dc621b /mdbc-server/src/test/java/org/onap/music
parenteff522e4e38b11432f518d1b43fda01d8d387ca4 (diff)
Switch to calcite query parser
Handle SQL Joins Return Schema/DB and table as range Change-Id: I9455da1e9118bc547bf28e5f22cce2cf044ce75a Issue-ID: MUSIC-380 Signed-off-by: Tschaen, Brendan <ctschaen@att.com>
Diffstat (limited to 'mdbc-server/src/test/java/org/onap/music')
-rwxr-xr-xmdbc-server/src/test/java/org/onap/music/mdbc/MDBCUtilsTest.java8
-rw-r--r--mdbc-server/src/test/java/org/onap/music/mdbc/query/QueryProcessorTest.java97
2 files changed, 62 insertions, 43 deletions
diff --git a/mdbc-server/src/test/java/org/onap/music/mdbc/MDBCUtilsTest.java b/mdbc-server/src/test/java/org/onap/music/mdbc/MDBCUtilsTest.java
index a9cf88a..4703d0e 100755
--- a/mdbc-server/src/test/java/org/onap/music/mdbc/MDBCUtilsTest.java
+++ b/mdbc-server/src/test/java/org/onap/music/mdbc/MDBCUtilsTest.java
@@ -22,16 +22,12 @@ package org.onap.music.mdbc;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import java.io.IOException;
import java.nio.ByteBuffer;
-import java.util.HashMap;
-import java.util.HashSet;
import org.json.JSONObject;
-import org.junit.Ignore;
import org.junit.Test;
import org.onap.music.exceptions.MDBCServiceException;
-import org.onap.music.mdbc.tables.OperationType;
+import org.onap.music.mdbc.query.SQLOperation;
import org.onap.music.mdbc.tables.StagingTable;
public class MDBCUtilsTest {
@@ -40,7 +36,7 @@ public class MDBCUtilsTest {
public void toStringTest1() {
StagingTable table = new StagingTable();
try {
- table.addOperation(new Range("TABLE1"),OperationType.INSERT,(new JSONObject(new String[]{"test3", "Test4"})).toString(),null);
+ table.addOperation(new Range("TABLE1"),SQLOperation.INSERT,(new JSONObject(new String[]{"test3", "Test4"})).toString(),null);
} catch (MDBCServiceException e) {
fail();
}
diff --git a/mdbc-server/src/test/java/org/onap/music/mdbc/query/QueryProcessorTest.java b/mdbc-server/src/test/java/org/onap/music/mdbc/query/QueryProcessorTest.java
index e39cc95..e76533e 100644
--- a/mdbc-server/src/test/java/org/onap/music/mdbc/query/QueryProcessorTest.java
+++ b/mdbc-server/src/test/java/org/onap/music/mdbc/query/QueryProcessorTest.java
@@ -16,23 +16,20 @@
package org.onap.music.mdbc.query;
import static org.junit.Assert.*;
-import java.io.IOException;
+import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
-import org.apache.calcite.sql.parser.SqlParseException;
import org.junit.Test;
-import org.onap.music.mdbc.tables.MusicTxDigestDaemon;
-import org.onap.music.mdbc.tables.StagingTable;
public class QueryProcessorTest {
@Test
- public void tableQuery() throws Exception {
+ public void tableQuery() throws SQLException {
String sqlQuery = "CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20))";
- HashMap<String, List<Operation>> expectedOut = new HashMap<>();
- List<Operation> op = new ArrayList<>();
+ HashMap<String, List<SQLOperation>> expectedOut = new HashMap<>();
+ List<SQLOperation> op = new ArrayList<>();
// no table ops for now
// op.add(Operation.TABLE);
// expectedOut.put("pet", op);
@@ -40,23 +37,33 @@ public class QueryProcessorTest {
}
@Test
- public void selectQuery() throws SqlParseException {
- String sqlQuery = "SELECT name, age FROM table1 t1";
- HashMap<String, List<Operation>> expectedOut = new HashMap<>();
- List<Operation> t1op = new ArrayList<>();
- t1op.add(Operation.SELECT);
- expectedOut.put("TABLE1", t1op);
+ public void selectQuery() throws SQLException {
+ String sqlQuery = "SELECT name, age FROM DB.table1 t1;";
+ HashMap<String, List<SQLOperation>> expectedOut = new HashMap<>();
+ List<SQLOperation> t1op = new ArrayList<>();
+ t1op.add(SQLOperation.SELECT);
+ expectedOut.put("DB.TABLE1", t1op);
+ assertEquals(expectedOut, QueryProcessor.parseSqlQuery(sqlQuery));
+ }
+
+ @Test
+ public void selectQuery1() throws SQLException {
+ String sqlQuery = "SELECT name, age FROM DB.table1;";
+ HashMap<String, List<SQLOperation>> expectedOut = new HashMap<>();
+ List<SQLOperation> t1op = new ArrayList<>();
+ t1op.add(SQLOperation.SELECT);
+ expectedOut.put("DB.TABLE1", t1op);
assertEquals(expectedOut, QueryProcessor.parseSqlQuery(sqlQuery));
}
@Test
- public void selectQuery2Table() throws SqlParseException {
+ public void selectQuery2Table() throws SQLException {
String sqlQuery = "SELECT name, age FROM table1 t1, table2 t2 WHERE t1.id = t2.id";
- HashMap<String, List<Operation>> expectedOut = new HashMap<>();
- List<Operation> t1op = new ArrayList<>();
- List<Operation> t2op = new ArrayList<>();
- t1op.add(Operation.SELECT);
- t2op.add(Operation.SELECT);
+ HashMap<String, List<SQLOperation>> expectedOut = new HashMap<>();
+ List<SQLOperation> t1op = new ArrayList<>();
+ List<SQLOperation> t2op = new ArrayList<>();
+ t1op.add(SQLOperation.SELECT);
+ t2op.add(SQLOperation.SELECT);
expectedOut.put("TABLE1", t1op);
expectedOut.put("TABLE2", t2op);
assertEquals(expectedOut, QueryProcessor.parseSqlQuery(sqlQuery));
@@ -66,40 +73,56 @@ public class QueryProcessorTest {
}
@Test
- public void insertQuery() throws SqlParseException {
+ public void insertQuery() throws SQLException {
String sqlQuery = "INSERT INTO Employees (id, name) values ('1','Vikram')";
- HashMap<String, List<Operation>> expectedOut = new HashMap<>();
- List<Operation> t1op = new ArrayList<>();
- t1op.add(Operation.INSERT);
+ HashMap<String, List<SQLOperation>> expectedOut = new HashMap<>();
+ List<SQLOperation> t1op = new ArrayList<>();
+ t1op.add(SQLOperation.INSERT);
expectedOut.put("EMPLOYEES", t1op);
assertEquals(expectedOut, QueryProcessor.parseSqlQuery(sqlQuery));
}
@Test
- public void updateQuery() throws SqlParseException {
- String sqlQuery = "UPDATE Employees SET id = 1 WHERE id = 2";
- HashMap<String, List<Operation>> expectedOut = new HashMap<>();
- List<Operation> t1op = new ArrayList<>();
- t1op.add(Operation.UPDATE);
- expectedOut.put("EMPLOYEES", t1op);
+ public void updateQuery() throws SQLException {
+ String sqlQuery = "UPDATE Db.Employees SET id = 1 WHERE id = 2";
+ HashMap<String, List<SQLOperation>> expectedOut = new HashMap<>();
+ List<SQLOperation> t1op = new ArrayList<>();
+ t1op.add(SQLOperation.UPDATE);
+ expectedOut.put("DB.EMPLOYEES", t1op);
assertEquals(expectedOut, QueryProcessor.parseSqlQuery(sqlQuery));
- sqlQuery = "UPDATE Employees SET id = 1";
+ sqlQuery = "UPDATE db.Employees SET id = 1";
assertEquals(expectedOut, QueryProcessor.parseSqlQuery(sqlQuery));
}
@Test
- public void insertSelect() throws SqlParseException {
+ public void insertSelect() throws SQLException {
String sqlQuery =
"INSERT INTO table1 (CustomerName, City, Country) SELECT SupplierName, City, Country FROM table2";
- HashMap<String, List<Operation>> expectedOut = new HashMap<>();
- List<Operation> t1op = new ArrayList<>();
- List<Operation> t2op = new ArrayList<>();
- t1op.add(Operation.INSERT);
- t2op.add(Operation.SELECT);
+ HashMap<String, List<SQLOperation>> expectedOut = new HashMap<>();
+ List<SQLOperation> t1op = new ArrayList<>();
+ List<SQLOperation> t2op = new ArrayList<>();
+ t1op.add(SQLOperation.INSERT);
+ t2op.add(SQLOperation.SELECT);
expectedOut.put("TABLE1", t1op);
expectedOut.put("TABLE2", t2op);
assertEquals(expectedOut, QueryProcessor.parseSqlQuery(sqlQuery));
}
-
+
+ @Test
+ public void selectJoin() throws SQLException {
+ String sqlQuery =
+ "SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate " +
+ "FROM Orders " +
+ "INNER JOIN DB.Customers ON Orders.CustomerID=Customers.CustomerID;";
+
+ HashMap<String, List<SQLOperation>> expectedOut = new HashMap<>();
+ List<SQLOperation> t1op = new ArrayList<>();
+ List<SQLOperation> t2op = new ArrayList<>();
+ t1op.add(SQLOperation.SELECT);
+ t2op.add(SQLOperation.SELECT);
+ expectedOut.put("ORDERS", t1op);
+ expectedOut.put("DB.CUSTOMERS", t2op);
+ assertEquals(expectedOut, QueryProcessor.parseSqlQuery(sqlQuery));
+ }
}