diff options
author | Tschaen, Brendan <ctschaen@att.com> | 2019-04-18 11:08:14 -0400 |
---|---|---|
committer | Tschaen, Brendan <ctschaen@att.com> | 2019-04-18 11:31:57 -0400 |
commit | 601050a535e916c0ff52826fbe2c61b798c74530 (patch) | |
tree | 137402ea91c92dcc9b41d5b431ca797c50dc621b /mdbc-server/src/test/java/org/onap/music | |
parent | eff522e4e38b11432f518d1b43fda01d8d387ca4 (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-x | mdbc-server/src/test/java/org/onap/music/mdbc/MDBCUtilsTest.java | 8 | ||||
-rw-r--r-- | mdbc-server/src/test/java/org/onap/music/mdbc/query/QueryProcessorTest.java | 97 |
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)); + } } |