EXPECT_FALSE(context->getNext(data));
}
+// This tests getting NSEC3 records
+TEST_F(SQLite3AccessorTest, nsec3) {
+ const std::pair<bool, int>
+ zone_info(accessor->getZone("sql2.example.com."));
+ ASSERT_TRUE(zone_info.first);
+
+ DatabaseAccessor::IteratorContextPtr
+ context(accessor->getNSEC3Records("1BB7SO0452U1QHL98UISNDD9218GELR5",
+ zone_info.second));
+ // This relies on specific ordering in the DB. Is it OK?
+ checkRR(context, "1BB7SO0452U1QHL98UISNDD9218GELR5", "7200", "NSEC3",
+ "1 0 10 FEEDABEE 4KLSVDE8KH8G95VU68R7AHBE1CPQN38J");
+ checkRR(context, "1BB7SO0452U1QHL98UISNDD9218GELR5", "7200", "RRSIG",
+ "NSEC3 5 4 7200 20100410172647 20100311172647 63192 "
+ "sql2.example.com. gNIVj4T8t51fEU6kOPpvK7HOGBFZGbalN5ZK "
+ "mInyrww6UWZsUNdw07ge6/U6HfG+/s61RZ/L is2M6yUWHyXbNbj/"
+ "QqwqgadG5dhxTArfuR02 xP600x0fWX8LXzW4yLMdKVxGbzYT+vvGz71o "
+ "8gHSY5vYTtothcZQa4BMKhmGQEk=");
+
+ // And that's all
+ std::string data[DatabaseAccessor::COLUMN_COUNT];
+ EXPECT_FALSE(context->getNext(data));
+
+ // Calling again won't hurt
+ EXPECT_FALSE(context->getNext(data));
+
+ // This one should be empty ‒ no data here
+ context = accessor->getNSEC3Records("NO_SUCH_HASH", zone_info.second);
+ EXPECT_FALSE(context->getNext(data));
+ // Still nothing? ;-)
+ EXPECT_FALSE(context->getNext(data));
+}
+
// This tests the difference iterator context
// Test that at attempt to create a difference iterator for a serial number