]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2565] Add RRClass.fromText()
authorMukund Sivaraman <muks@isc.org>
Mon, 17 Dec 2012 06:44:54 +0000 (12:14 +0530)
committerMukund Sivaraman <muks@isc.org>
Wed, 19 Dec 2012 03:39:59 +0000 (09:09 +0530)
src/lib/dns/rrclass.cc
src/lib/dns/tests/rrclass_unittest.cc

index cc5ba481ffaceb50647f60a511230d45615a3dcc..a608dc8a357c0d22ee524dfc937c03353caed335 100644 (file)
@@ -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();
index 6156be5fcc864bcc0e4aef5c5ed2f1e3e85688a4..697a51c1f68efa2459c4e440eee576a2931da425 100644 (file)
@@ -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);