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 0e9f3d1  added composite key tests
0e9f3d1 is described below

commit 0e9f3d16ba4a5cb567c110f6c41cf4bfa3e3eb65
Author: Darrel Schneider <[email protected]>
AuthorDate: Mon Dec 17 16:55:03 2018 -0800

    added composite key tests
---
 .../jdbc/JdbcAsyncWriterIntegrationTest.java       |  5 +--
 .../geode/connectors/jdbc/JdbcDistributedTest.java | 41 ++++++++++++++++++++--
 .../geode/connectors/jdbc/internal/SqlHandler.java |  2 +-
 3 files changed, 43 insertions(+), 5 deletions(-)

diff --git 
a/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcAsyncWriterIntegrationTest.java
 
b/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcAsyncWriterIntegrationTest.java
index e083dbb..b7d6d38 100644
--- 
a/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcAsyncWriterIntegrationTest.java
+++ 
b/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcAsyncWriterIntegrationTest.java
@@ -72,7 +72,7 @@ public abstract class JdbcAsyncWriterIntegrationTest {
     employee1 = (Employee) pdxEmployee1.getObject();
     employee2 = (Employee) pdxEmployee2.getObject();
   }
-  
+
   private void setupRegion(String ids) throws RegionMappingExistsException {
     employees = createRegionWithJDBCAsyncWriter(REGION_TABLE_NAME, ids);
   }
@@ -137,7 +137,8 @@ public abstract class JdbcAsyncWriterIntegrationTest {
   }
 
   @Test
-  public void putNonPdxInstanceThatIsPdxSerializable() throws SQLException, 
RegionMappingExistsException {
+  public void putNonPdxInstanceThatIsPdxSerializable()
+      throws SQLException, RegionMappingExistsException {
     setupRegion(null);
     Region nonPdxEmployees = this.employees;
     Employee value = new Employee("2", "Emp2", 22);
diff --git 
a/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcDistributedTest.java
 
b/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcDistributedTest.java
index 94fa59d..06e1cd3 100644
--- 
a/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcDistributedTest.java
+++ 
b/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcDistributedTest.java
@@ -29,6 +29,7 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Date;
 
+import org.json.JSONObject;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -446,6 +447,36 @@ public abstract class JdbcDistributedTest implements 
Serializable {
   }
 
   @Test
+  public void getReadsFromDBWithCompositeKey() throws Exception {
+    createTable();
+    createRegionUsingGfsh();
+    createJdbcDataSource();
+    createMapping(REGION_NAME, DATA_SOURCE_NAME, Employee.class.getName(), 
true, "id,age");
+    server.invoke(() -> {
+      PdxInstance pdxEmployee1 =
+          
ClusterStartupRule.getCache().createPdxInstanceFactory(Employee.class.getName())
+              .writeString("id", "id1").writeString("name", 
"Emp1").writeInt("age", 55).create();
+      JSONObject compositeKey1 = new JSONObject();
+      compositeKey1.put("id", pdxEmployee1.getField("id"));
+      compositeKey1.put("age", pdxEmployee1.getField("age"));
+      String key = compositeKey1.toString();
+      Region<Object, Object> region = 
ClusterStartupRule.getCache().getRegion(REGION_NAME);
+      region.put(key, pdxEmployee1);
+      region.invalidate(key);
+      JdbcWriter<Object, Object> writer =
+          (JdbcWriter<Object, Object>) region.getAttributes().getCacheWriter();
+      long writeCallsCompletedBeforeGet = writer.getTotalEvents();
+
+      Employee result = (Employee) region.get(key);
+
+      assertThat(result.getId()).isEqualTo("id1");
+      assertThat(result.getName()).isEqualTo("Emp1");
+      assertThat(result.getAge()).isEqualTo(55);
+      
assertThat(writer.getTotalEvents()).isEqualTo(writeCallsCompletedBeforeGet);
+    });
+  }
+
+  @Test
   public void getReadsFromDBWithAsyncWriter() throws Exception {
     createTable();
     createRegionUsingGfsh();
@@ -640,15 +671,21 @@ public abstract class JdbcDistributedTest implements 
Serializable {
   }
 
   private void createMapping(String regionName, String connectionName, boolean 
synchronous) {
-    createMapping(regionName, connectionName, Employee.class.getName(), 
synchronous);
+    createMapping(regionName, connectionName, Employee.class.getName(), 
synchronous, null);
   }
 
   private void createMapping(String regionName, String connectionName, String 
pdxClassName,
       boolean synchronous) {
+    createMapping(regionName, connectionName, pdxClassName, synchronous, null);
+  }
+
+  private void createMapping(String regionName, String connectionName, String 
pdxClassName,
+      boolean synchronous, String ids) {
     final String commandStr = "create jdbc-mapping --region=" + regionName
         + " --data-source=" + connectionName
         + " --synchronous=" + synchronous
-        + " --pdx-name=" + pdxClassName;
+        + " --pdx-name=" + pdxClassName
+        + ((ids != null) ? (" --id=" + ids) : "");
     gfsh.executeAndAssertThat(commandStr).statusIsSuccess();
     if (!synchronous) {
       final String alterAsyncQueue =
diff --git 
a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/SqlHandler.java
 
b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/SqlHandler.java
index 6549bd9..a09db75 100644
--- 
a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/SqlHandler.java
+++ 
b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/SqlHandler.java
@@ -199,7 +199,7 @@ public class SqlHandler {
         }
       }
 
-      assert updateCount == 1;
+      assert updateCount == 1 : "expected 1 but updateCount was: " + 
updateCount;
     }
   }
 

Reply via email to