You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ds...@apache.org on 2018/12/14 18:13:18 UTC

[geode] branch feature/GEODE-6194 updated: added unit test coverage for SqlStatementFactory

This is an automated email from the ASF dual-hosted git repository.

dschneider pushed a commit to branch feature/GEODE-6194
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/feature/GEODE-6194 by this push:
     new 662e8b7  added unit test coverage for SqlStatementFactory
662e8b7 is described below

commit 662e8b75901c99d0d50b85478fce1b63eb3754d2
Author: Darrel Schneider <ds...@pivotal.io>
AuthorDate: Fri Dec 14 10:12:53 2018 -0800

    added unit test coverage for SqlStatementFactory
---
 .../jdbc/internal/SqlStatementFactoryTest.java     | 80 +++++++++++++++++++---
 1 file changed, 69 insertions(+), 11 deletions(-)

diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/SqlStatementFactoryTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/SqlStatementFactoryTest.java
index d854c45..0a13981 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/SqlStatementFactoryTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/SqlStatementFactoryTest.java
@@ -17,7 +17,6 @@ package org.apache.geode.connectors.jdbc.internal;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 
 import org.junit.Before;
@@ -27,26 +26,28 @@ import org.junit.Test;
 public class SqlStatementFactoryTest {
 
   private static final String TABLE_NAME = "testTable";
-  private static final String KEY_COLUMN_NAME = "keyColumn";
+  private static final String KEY_COLUMN_1_NAME = "keyColumn1";
+  private static final String KEY_COLUMN_2_NAME = "keyColumn2";
   private static final String VALUE_COLUMN_1_NAME = "valueColumn1";
   private static final String VALUE_COLUMN_2_NAME = "valueColumn2";
+  private final List<ColumnData> keyColumnData = new ArrayList<>();
+  private final List<ColumnData> valueColumnData = new ArrayList<>();
 
   private EntryColumnData entryColumnData;
   private SqlStatementFactory factory = new SqlStatementFactory("");
 
   @Before
   public void setup() {
-    List<ColumnData> columnData = new ArrayList<>();
-    columnData.add(new ColumnData(VALUE_COLUMN_1_NAME, null, 0));
-    columnData.add(new ColumnData(VALUE_COLUMN_2_NAME, null, 0));
-    ColumnData keyColumnData = new ColumnData(KEY_COLUMN_NAME, null, 0);
-    entryColumnData = new EntryColumnData(Arrays.asList(keyColumnData), columnData);
+    valueColumnData.add(new ColumnData(VALUE_COLUMN_1_NAME, null, 0));
+    valueColumnData.add(new ColumnData(VALUE_COLUMN_2_NAME, null, 0));
+    keyColumnData.add(new ColumnData(KEY_COLUMN_1_NAME, null, 0));
+    entryColumnData = new EntryColumnData(keyColumnData, valueColumnData);
   }
 
   @Test
   public void getSelectQueryString() throws Exception {
     String expectedStatement =
-        String.format("SELECT * FROM %s WHERE %s = ?", TABLE_NAME, KEY_COLUMN_NAME);
+        String.format("SELECT * FROM %s WHERE %s = ?", TABLE_NAME, KEY_COLUMN_1_NAME);
 
     String statement = factory.createSelectQueryString(TABLE_NAME, entryColumnData);
 
@@ -56,7 +57,7 @@ public class SqlStatementFactoryTest {
   @Test
   public void getDestroySqlString() throws Exception {
     String expectedStatement =
-        String.format("DELETE FROM %s WHERE %s = ?", TABLE_NAME, KEY_COLUMN_NAME);
+        String.format("DELETE FROM %s WHERE %s = ?", TABLE_NAME, KEY_COLUMN_1_NAME);
 
     String statement = factory.createDestroySqlString(TABLE_NAME, entryColumnData);
 
@@ -66,7 +67,7 @@ public class SqlStatementFactoryTest {
   @Test
   public void getUpdateSqlString() throws Exception {
     String expectedStatement = String.format("UPDATE %s SET %s = ?, %s = ? WHERE %s = ?",
-        TABLE_NAME, VALUE_COLUMN_1_NAME, VALUE_COLUMN_2_NAME, KEY_COLUMN_NAME);
+        TABLE_NAME, VALUE_COLUMN_1_NAME, VALUE_COLUMN_2_NAME, KEY_COLUMN_1_NAME);
 
     String statement = factory.createUpdateSqlString(TABLE_NAME, entryColumnData);
 
@@ -76,11 +77,68 @@ public class SqlStatementFactoryTest {
   @Test
   public void getInsertSqlString() throws Exception {
     String expectedStatement = String.format("INSERT INTO %s (%s,%s,%s) VALUES (?,?,?)",
-        TABLE_NAME, VALUE_COLUMN_1_NAME, VALUE_COLUMN_2_NAME, KEY_COLUMN_NAME);
+        TABLE_NAME, VALUE_COLUMN_1_NAME, VALUE_COLUMN_2_NAME, KEY_COLUMN_1_NAME);
 
     String statement = factory.createInsertSqlString(TABLE_NAME, entryColumnData);
 
     assertThat(statement).isEqualTo(expectedStatement);
   }
 
+  @Test
+  public void getInsertSqlStringGivenNoColumns() throws Exception {
+    valueColumnData.clear();
+    keyColumnData.clear();
+
+    String statement = factory.createInsertSqlString(TABLE_NAME, entryColumnData);
+
+    String expectedStatement = String.format("INSERT INTO %s () VALUES ()", TABLE_NAME);
+    assertThat(statement).isEqualTo(expectedStatement);
+  }
+
+  @Test
+  public void getInsertSqlStringGivenMultipleKeys() throws Exception {
+    keyColumnData.add(new ColumnData(KEY_COLUMN_2_NAME, null, 0));
+
+    String statement = factory.createInsertSqlString(TABLE_NAME, entryColumnData);
+
+    String expectedStatement = String.format("INSERT INTO %s (%s,%s,%s,%s) VALUES (?,?,?,?)",
+        TABLE_NAME, VALUE_COLUMN_1_NAME, VALUE_COLUMN_2_NAME, KEY_COLUMN_1_NAME, KEY_COLUMN_2_NAME);
+    assertThat(statement).isEqualTo(expectedStatement);
+  }
+
+  @Test
+  public void getUpdateSqlStringGivenMultipleKeys() throws Exception {
+    keyColumnData.add(new ColumnData(KEY_COLUMN_2_NAME, null, 0));
+
+    String statement = factory.createUpdateSqlString(TABLE_NAME, entryColumnData);
+
+    String expectedStatement = String.format("UPDATE %s SET %s = ?, %s = ? WHERE %s = ? AND %s = ?",
+        TABLE_NAME, VALUE_COLUMN_1_NAME, VALUE_COLUMN_2_NAME, KEY_COLUMN_1_NAME, KEY_COLUMN_2_NAME);
+    assertThat(statement).isEqualTo(expectedStatement);
+  }
+
+  @Test
+  public void getSelectQueryStringGivenMultipleKeys() throws Exception {
+    keyColumnData.add(new ColumnData(KEY_COLUMN_2_NAME, null, 0));
+
+    String statement = factory.createSelectQueryString(TABLE_NAME, entryColumnData);
+
+    String expectedStatement =
+        String.format("SELECT * FROM %s WHERE %s = ? AND %s = ?", TABLE_NAME, KEY_COLUMN_1_NAME,
+            KEY_COLUMN_2_NAME);
+    assertThat(statement).isEqualTo(expectedStatement);
+  }
+
+  @Test
+  public void getDestroySqlStringGivenMultipleKeys() throws Exception {
+    keyColumnData.add(new ColumnData(KEY_COLUMN_2_NAME, null, 0));
+
+    String statement = factory.createDestroySqlString(TABLE_NAME, entryColumnData);
+
+    String expectedStatement =
+        String.format("DELETE FROM %s WHERE %s = ? AND %s = ?", TABLE_NAME, KEY_COLUMN_1_NAME,
+            KEY_COLUMN_2_NAME);
+    assertThat(statement).isEqualTo(expectedStatement);
+  }
+
 }