Browse Source

[2206] Make a common function out of duplicate code

Mukund Sivaraman 12 years ago
parent
commit
47c013b000
1 changed files with 13 additions and 10 deletions
  1. 13 10
      src/lib/datasrc/tests/memory/zone_table_segment_unittest.cc

+ 13 - 10
src/lib/datasrc/tests/memory/zone_table_segment_unittest.cc

@@ -54,22 +54,25 @@ TEST_F(ZoneTableSegmentTest, create) {
     EXPECT_NE(static_cast<void*>(NULL), segment_);
 }
 
-TEST_F(ZoneTableSegmentTest, getHeader) {
-    ZoneTableHeader& header = segment_->getHeader();
+// Helper function to check const and non-const methods.
+template <typename TS, typename TH>
+void
+testGetHeader(ZoneTableSegment* segment) {
+    TH& header = static_cast<TS*>(segment)->getHeader();
 
     // The zone table is unset.
-    ZoneTable* table = header.getTable();
+    const ZoneTable* table = header.getTable();
     EXPECT_EQ(static_cast<void*>(NULL), table);
 }
 
-TEST_F(ZoneTableSegmentTest, getHeaderConst) {
-    // Test const methods
-    const ZoneTableHeader& header =
-         static_cast<const ZoneTableSegment*>(segment_)->getHeader();
+TEST_F(ZoneTableSegmentTest, getHeader) {
+    // non-const version.
+    testGetHeader<ZoneTableSegment, ZoneTableHeader>(segment_);
+}
 
-    // The zone table is unset.
-    const ZoneTable* table = header.getTable();
-    EXPECT_EQ(static_cast<void*>(NULL), table);
+TEST_F(ZoneTableSegmentTest, getHeaderConst) {
+    // const version.
+    testGetHeader<const ZoneTableSegment, const ZoneTableHeader>(segment_);
 }
 
 TEST_F(ZoneTableSegmentTest, getMemorySegment) {