You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by sm...@apache.org on 2015/12/03 22:48:56 UTC

drill git commit: DRILL-4159: Use test framework in TestCsvHeader

Repository: drill
Updated Branches:
  refs/heads/master 3ae3bf5e1 -> f4e34ccac


DRILL-4159: Use test framework in TestCsvHeader


Project: http://git-wip-us.apache.org/repos/asf/drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/f4e34cca
Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/f4e34cca
Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/f4e34cca

Branch: refs/heads/master
Commit: f4e34ccac6add649df469f85e38f064962eae90a
Parents: 3ae3bf5
Author: Steven Phillips <sm...@apache.org>
Authored: Thu Dec 3 13:39:03 2015 -0800
Committer: Steven Phillips <sm...@apache.org>
Committed: Thu Dec 3 13:39:03 2015 -0800

----------------------------------------------------------------------
 .../drill/exec/store/text/TestCsvHeader.java    | 142 +++++++++----------
 1 file changed, 66 insertions(+), 76 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/drill/blob/f4e34cca/exec/java-exec/src/test/java/org/apache/drill/exec/store/text/TestCsvHeader.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/text/TestCsvHeader.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/text/TestCsvHeader.java
index 0192ab8..068c30f 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/text/TestCsvHeader.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/text/TestCsvHeader.java
@@ -20,24 +20,17 @@ package org.apache.drill.exec.store.text;
 import org.apache.drill.BaseTestQuery;
 import org.apache.drill.TestBuilder;
 import org.apache.drill.common.util.FileUtils;
-import org.apache.drill.exec.exception.SchemaChangeException;
-import org.apache.drill.exec.rpc.user.QueryDataBatch;
 
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
-import java.util.List;
 
 import org.junit.Before;
 import org.junit.Test;
 
-
-import static org.junit.Assert.assertEquals;
-
 public class TestCsvHeader extends BaseTestQuery{
 
   static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestCsvHeader.class);
-  final String OUTPUT_DELIMITER = "|";
   String root;
 
   @Before
@@ -50,105 +43,110 @@ public class TestCsvHeader extends BaseTestQuery{
   public void testCsvWithHeader() throws Exception {
     //Pre DRILL-951: Qry: select * from dfs_test.`%s` LIMIT 2
     String query = String.format("select * from dfs_test.`%s` LIMIT 2", root);
-    List<QueryDataBatch> batches = testSqlWithResults(query);
-
-    String expectedOutput = "Year|Make|Model|Description|Price\n" +
-        "1997|Ford|E350|ac, abs, moon|3000.00\n" +
-        "1999|Chevy|Venture \"Extended Edition\"||4900.00\n";
-
-    validateResults (batches, expectedOutput);
+    testBuilder()
+            .sqlQuery(query)
+            .unOrdered()
+            .baselineColumns("Year", "Make", "Model", "Description", "Price")
+            .baselineValues("1997", "Ford", "E350", "ac, abs, moon", "3000.00")
+            .baselineValues("1999", "Chevy", "Venture \"Extended Edition\"", "", "4900.00")
+            .go();
   }
 
   @Test //DRILL-951
   public void testCsvWhereWithHeader() throws Exception {
     //Pre DRILL-951: Qry: select * from dfs_test.`%s` where columns[1] = 'Chevy'
     String query = String.format("select * from dfs_test.`%s` where Make = 'Chevy'", root);
-    List<QueryDataBatch> batches = testSqlWithResults(query);
 
-    String expectedOutput = "Year|Make|Model|Description|Price\n" +
-        "1999|Chevy|Venture \"Extended Edition\"||4900.00\n" +
-        "1999|Chevy|Venture \"Extended Edition, Very Large\"||5000.00\n";
-
-    validateResults (batches, expectedOutput);
+    testBuilder()
+            .sqlQuery(query)
+            .unOrdered()
+            .baselineColumns("Year", "Make", "Model", "Description", "Price")
+            .baselineValues("1999", "Chevy", "Venture \"Extended Edition\"", "", "4900.00")
+            .baselineValues("1999", "Chevy", "Venture \"Extended Edition, Very Large\"", "", "5000.00")
+            .go();
   }
 
   @Test //DRILL-951
   public void testCsvStarPlusWithHeader() throws Exception {
     //Pre DRILL-951: Qry: select *,columns[1] from dfs_test.`%s` where columns[1] = 'Chevy'
     String query = String.format("select *, Make from dfs_test.`%s` where Make = 'Chevy'", root);
-    List<QueryDataBatch> batches = testSqlWithResults(query);
-
-    String expectedOutput = "Year|Make|Model|Description|Price|Make0\n" +
-        "1999|Chevy|Venture \"Extended Edition\"||4900.00|Chevy\n" +
-        "1999|Chevy|Venture \"Extended Edition, Very Large\"||5000.00|Chevy\n";
 
-    validateResults (batches, expectedOutput);
+    testBuilder()
+            .sqlQuery(query)
+            .unOrdered()
+            .baselineColumns("Year", "Make", "Model", "Description", "Price", "Make0")
+            .baselineValues("1999", "Chevy", "Venture \"Extended Edition\"", "", "4900.00", "Chevy")
+            .baselineValues("1999", "Chevy", "Venture \"Extended Edition, Very Large\"", "", "5000.00", "Chevy")
+            .go();
   }
 
   @Test //DRILL-951
   public void testCsvWhereColumnsWithHeader() throws Exception {
     //Pre DRILL-951: Qry: select columns[1] from dfs_test.`%s` where columns[1] = 'Chevy'
     String query = String.format("select Make from dfs_test.`%s` where Make = 'Chevy'", root);
-    List<QueryDataBatch> batches = testSqlWithResults(query);
-
-    String expectedOutput = "Make\n" +
-        "Chevy\n" +
-        "Chevy\n";
-
-    validateResults (batches, expectedOutput);
+    testBuilder()
+            .sqlQuery(query)
+            .unOrdered()
+            .baselineColumns("Make")
+            .baselineValues("Chevy")
+            .baselineValues("Chevy")
+            .go();
   }
 
   @Test //DRILL-951
   public void testCsvColumnsWithHeader() throws Exception {
     //Pre DRILL-951: Qry: select columns[0],columns[2],columns[4] from dfs_test.`%s` where columns[1] = 'Chevy'
     String query = String.format("select `Year`, Model, Price from dfs_test.`%s` where Make = 'Chevy'", root);
-    List<QueryDataBatch> batches = testSqlWithResults(query);
 
-    String expectedOutput = "Year|Model|Price\n" +
-        "1999|Venture \"Extended Edition\"|4900.00\n" +
-        "1999|Venture \"Extended Edition, Very Large\"|5000.00\n";
-
-    validateResults (batches, expectedOutput);
+    testBuilder()
+            .sqlQuery(query)
+            .unOrdered()
+            .baselineColumns("Year", "Model", "Price")
+            .baselineValues("1999", "Venture \"Extended Edition\"", "4900.00")
+            .baselineValues("1999", "Venture \"Extended Edition, Very Large\"", "5000.00")
+            .go();
   }
 
   @Test //DRILL-951
   public void testCsvHeaderShortCircuitReads() throws Exception {
     String query = String.format("select `Year`, Model from dfs_test.`%s` where Make = 'Chevy'", root);
-    List<QueryDataBatch> batches = testSqlWithResults(query);
-
-    String expectedOutput = "Year|Model\n" +
-        "1999|Venture \"Extended Edition\"\n" +
-        "1999|Venture \"Extended Edition, Very Large\"\n";
 
-    validateResults (batches, expectedOutput);
+    testBuilder()
+            .sqlQuery(query)
+            .unOrdered()
+            .baselineColumns("Year", "Model")
+            .baselineValues("1999", "Venture \"Extended Edition\"")
+            .baselineValues("1999", "Venture \"Extended Edition, Very Large\"")
+            .go();
   }
 
   @Test //DRILL-4108
   public void testCsvHeaderNonExistingColumn() throws Exception {
     String query = String.format("select `Year`, Model, Category from dfs_test.`%s` where Make = 'Chevy'", root);
-    List<QueryDataBatch> batches = testSqlWithResults(query);
 
-    String expectedOutput = "Year|Model|Category\n" +
-        "1999|Venture \"Extended Edition\"|\n" +
-        "1999|Venture \"Extended Edition, Very Large\"|\n";
-
-    validateResults (batches, expectedOutput);
+    testBuilder()
+            .sqlQuery(query)
+            .unOrdered()
+            .baselineColumns("Year", "Model", "Category")
+            .baselineValues("1999", "Venture \"Extended Edition\"", "")
+            .baselineValues("1999", "Venture \"Extended Edition, Very Large\"", "")
+            .go();
   }
 
   @Test //DRILL-4108
   public void testCsvHeaderMismatch() throws Exception {
     String ddir = FileUtils.getResourceAsFile("/store/text/data/d2").toURI().toString();
     String query = String.format("select `Year`, Model, Category from dfs_test.`%s` where Make = 'Chevy'", ddir);
-    List<QueryDataBatch> batches = testSqlWithResults(query);
-    // double header is unique to this test framework, doesn't happen with sqlline
-    String expectedOutput = "Year|Model|Category\n" +
-        "1999|Venture \"Extended Edition\"|\n" +
-        "1999|Venture \"Extended Edition, Very Large\"|\n" +
-        "Year|Model|Category\n" +
-        "1999||Venture \"Extended Edition\"\n" +
-        "1999||Venture \"Extended Edition, Very Large\"\n";
-
-    validateResults (batches, expectedOutput);
+    
+    testBuilder()
+            .sqlQuery(query)
+            .unOrdered()
+            .baselineColumns("Year", "Model", "Category")
+            .baselineValues("1999", "", "Venture \"Extended Edition\"")
+            .baselineValues("1999", "", "Venture \"Extended Edition, Very Large\"")
+            .baselineValues("1999", "Venture \"Extended Edition\"", "")
+            .baselineValues("1999", "Venture \"Extended Edition, Very Large\"", "")
+            .go();
   }
 
   @Test //DRILL-4108
@@ -157,13 +155,13 @@ public class TestCsvHeader extends BaseTestQuery{
     // testing by defining new format plugin with skipFirstLine set to true and diff file extension
     String dfile = FileUtils.getResourceAsFile("/store/text/data/cars.csvh-test").toURI().toString();
     String query = String.format("select `Year`, Model from dfs_test.`%s` where Make = 'Chevy'", dfile);
-    List<QueryDataBatch> batches = testSqlWithResults(query);
-
-    String expectedOutput = "Year|Model\n" +
-        "1999|Venture \"Extended Edition\"\n" +
-        "1999|Venture \"Extended Edition, Very Large\"\n";
-
-    validateResults (batches, expectedOutput);
+    testBuilder()
+            .sqlQuery(query)
+            .unOrdered()
+            .baselineColumns("Year", "Model")
+            .baselineValues("1999", "Venture \"Extended Edition\"")
+            .baselineValues("1999", "Venture \"Extended Edition, Very Large\"")
+            .go();
   }
 
   @Test
@@ -188,12 +186,4 @@ public class TestCsvHeader extends BaseTestQuery{
       }
       builder.go();
   }
-
-  private void validateResults (List<QueryDataBatch> batches, String expectedOutput) throws SchemaChangeException {
-    String actualOutput = getResultString(batches, OUTPUT_DELIMITER);
-    //for your and machine's eyes
-    System.out.println(actualOutput);
-    assertEquals(String.format("Result mismatch.\nExpected:\n%s \nReceived:\n%s",
-        expectedOutput, actualOutput), expectedOutput, actualOutput);
-  }
 }