You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2014/07/16 23:33:13 UTC

git commit: Enhanced unittest to assert behaviour around handling empty files and creating tables in them

Repository: incubator-metamodel
Updated Branches:
  refs/heads/master e2a845b76 -> c272bea3d


Enhanced unittest to assert behaviour around handling empty files and
creating tables in them

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

Branch: refs/heads/master
Commit: c272bea3d80628a3a68f97498ff59f2631f01f0e
Parents: e2a845b
Author: Kasper Sørensen <i....@gmail.com>
Authored: Wed Jul 16 23:32:07 2014 +0200
Committer: Kasper Sørensen <i....@gmail.com>
Committed: Wed Jul 16 23:32:07 2014 +0200

----------------------------------------------------------------------
 .../metamodel/csv/CsvDataContextTest.java       | 37 +++++++++++++++++---
 1 file changed, 32 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/c272bea3/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java
----------------------------------------------------------------------
diff --git a/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java b/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java
index 18160ee..7a53723 100644
--- a/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java
+++ b/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java
@@ -56,13 +56,40 @@ public class CsvDataContextTest extends TestCase {
     private final CsvConfiguration semicolonConfiguration = new CsvConfiguration(
             CsvConfiguration.DEFAULT_COLUMN_NAME_LINE, "UTF-8", ';', '\'', CsvConfiguration.DEFAULT_ESCAPE_CHAR);
 
-    public void testEmptyFile() throws Exception {
-        DataContext dc = new CsvDataContext(new File("src/test/resources/empty_file.csv"));
+    public void testEmptyFileTableCreation() throws Exception {
+        final File file = new File("target/empty_file.csv");
+        FileHelper.copy(new File("src/test/resources/empty_file.csv"), file);
+
+        final CsvDataContext dc = new CsvDataContext(file);
         assertEquals(1, dc.getDefaultSchema().getTableCount());
 
-        Table table = dc.getDefaultSchema().getTables()[0];
-        assertEquals("empty_file.csv", table.getName());
-        assertEquals(0, table.getColumnCount());
+        final Table table1 = dc.getDefaultSchema().getTables()[0];
+        assertEquals("empty_file.csv", table1.getName());
+        assertEquals(0, table1.getColumnCount());
+
+        dc.executeUpdate(new UpdateScript() {
+            @Override
+            public void run(UpdateCallback callback) {
+                callback.dropTable(dc.getDefaultSchema().getTable(0)).execute();
+                callback.createTable(dc.getDefaultSchema(), "newtable1").withColumn("foo").withColumn("bar").execute();
+            }
+        });
+
+        assertEquals("\"foo\",\"bar\"", FileHelper.readFileAsString(file));
+
+        dc.executeUpdate(new UpdateScript() {
+            @Override
+            public void run(UpdateCallback callback) {
+                // fire additional create table statements
+                callback.createTable(dc.getDefaultSchema(), "newtable2").withColumn("foo").withColumn("bar").execute();
+                callback.createTable(dc.getDefaultSchema(), "newtable3").withColumn("bar").withColumn("baz").execute();
+            }
+        });
+
+        assertEquals("\"bar\",\"baz\"", FileHelper.readFileAsString(file));
+        
+        // still the table count should only be 1
+        assertEquals(1, dc.getDefaultSchema().getTableCount());
     }
 
     public void testAppendToFileWithoutLineBreak() throws Exception {