From: Mukund Sivaraman Date: Mon, 17 Dec 2012 06:44:54 +0000 (+0530) Subject: [2565] Add RRClass.fromText() X-Git-Tag: bind10-1.0.0-rc-release~95^2~21^2~25 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=530e62ba1a41f63a8dbcd0838fb5cfa95cb3816a;p=thirdparty%2Fkea.git [2565] Add RRClass.fromText() --- diff --git a/src/lib/dns/rrclass.cc b/src/lib/dns/rrclass.cc index cc5ba481ff..a608dc8a35 100644 --- a/src/lib/dns/rrclass.cc +++ b/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(); diff --git a/src/lib/dns/tests/rrclass_unittest.cc b/src/lib/dns/tests/rrclass_unittest.cc index 6156be5fcc..697a51c1f6 100644 --- a/src/lib/dns/tests/rrclass_unittest.cc +++ b/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);