pdxcodemonkey commented on a change in pull request #806:
URL: https://github.com/apache/geode-native/pull/806#discussion_r808284464



##########
File path: cppcache/integration/test/PdxTypeRegistryTest.cpp
##########
@@ -140,19 +141,60 @@ TEST(PdxTypeRegistryTest, cleanupOnClusterRestart) {
 
   listener->waitConnected();
 
-  key = "after-restart";
-  region->put(key, createTestPdxInstance(cache, key));
+  region->put(key, pdx);
 
   // If PdxTypeRegistry was cleaned up, then the PdxType should have been
   // registered in the new cluster
 
   std::shared_ptr<SelectResults> result;
-  auto query =
-      qs->newQuery("SELECT * FROM /region WHERE entryName = '" + key + "'");
+  auto query = qs->newQuery("SELECT * FROM /region WHERE int_value = -1");
 
   EXPECT_NO_THROW(result = query->execute());
   EXPECT_TRUE(result);
-  EXPECT_GT(result->size(), 0);
+  EXPECT_EQ(result->size(), 1);
 }
 
+TEST(PdxTypeRegistryTest, cleanupOnClusterRestartAndFetchFields) {
+  Cluster cluster{LocatorCount{1}, ServerCount{2}};
+  cluster.start();
+
+  auto& gfsh = cluster.getGfsh();
+  gfsh.create().region().withName("region").withType("PARTITION").execute();
+
+  auto listener = std::make_shared<RegionListener>();
+
+  auto cache = createTestCache();
+  createTestPool(cluster, cache);
+  auto qs = cache.getQueryService("pool");
+  auto region = createTestRegion(cache, listener);
+
+  std::string key = "before-shutdown";
+  region->put(key, createTestPdxInstance(cache, key));
+  auto object = region->get(key);
+  EXPECT_TRUE(object);
+
+  auto pdx = std::dynamic_pointer_cast<PdxInstance>(object);
+  EXPECT_TRUE(pdx);
+
+  // Shutdown and wait for some time
+  gfsh.shutdown().execute();
+  listener->waitDisconnected();
+  std::this_thread::sleep_for(std::chrono::seconds{15});
+
+  for (auto& server : cluster.getServers()) {
+    server.start();
+  }
+
+  listener->waitConnected();
+  auto fields = pdx->getFieldNames();
+  EXPECT_TRUE(fields);
+
+  std::set<std::string> fields_set;
+  for (auto field : fields->value()) {
+    fields_set.insert(field->toString());
+  }
+
+  EXPECT_EQ(fields_set.count("entryName"), 1);

Review comment:
       Fair enough




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to