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;
}
}