Parcourir la source

[2565] Add RRClass.fromText()

Mukund Sivaraman il y a 12 ans
Parent
commit
530e62ba1a
2 fichiers modifiés avec 18 ajouts et 1 suppressions
  1. 6 0
      src/lib/dns/rrclass.cc
  2. 12 1
      src/lib/dns/tests/rrclass_unittest.cc

+ 6 - 0
src/lib/dns/rrclass.cc

@@ -60,6 +60,12 @@ RRClass::toWire(AbstractMessageRenderer& renderer) const {
     renderer.writeUint16(classcode_);
 }
 
+bool
+RRClass::fromText(const std::string& class_str) {
+     return (RRParamRegistry::getRegistry().textToClassCode(class_str,
+                                                            classcode_));
+}
+
 ostream&
 operator<<(ostream& os, const RRClass& rrclass) {
     os << rrclass.toText();

+ 12 - 1
src/lib/dns/tests/rrclass_unittest.cc

@@ -59,7 +59,7 @@ RRClassTest::rrclassFactoryFromWire(const char* datafile) {
     return (RRClass(buffer));
 }
 
-TEST_F(RRClassTest, fromText) {
+TEST_F(RRClassTest, fromTextConstructor) {
     EXPECT_EQ("IN", RRClass("IN").toText());
     EXPECT_EQ("CH", RRClass("CH").toText());
 
@@ -96,6 +96,17 @@ TEST_F(RRClassTest, toText) {
     EXPECT_EQ("CLASS65000", RRClass(65000).toText());
 }
 
+TEST_F(RRClassTest, fromText) {
+    RRClass frc(1);
+    EXPECT_EQ("IN", frc.toText());
+    EXPECT_TRUE(frc.fromText("CH"));
+    EXPECT_EQ("CH", frc.toText());
+    EXPECT_FALSE(frc.fromText("ZZ"));
+    EXPECT_EQ("CH", frc.toText());
+    EXPECT_TRUE(frc.fromText("IN"));
+    EXPECT_EQ("IN", frc.toText());
+}
+
 TEST_F(RRClassTest, toWireBuffer) {
     rrclass_1.toWire(obuffer);
     rrclass_0x80.toWire(obuffer);