[svn] commit: r4047 - /branches/trac458/src/bin/auth/tests/query_unittest.cc

BIND 10 source code commits bind10-changes at lists.isc.org
Tue Dec 28 18:48:10 UTC 2010


Author: vorner
Date: Tue Dec 28 18:48:09 2010
New Revision: 4047

Log:
Test MX additional processing

Modified:
    branches/trac458/src/bin/auth/tests/query_unittest.cc

Modified: branches/trac458/src/bin/auth/tests/query_unittest.cc
==============================================================================
--- branches/trac458/src/bin/auth/tests/query_unittest.cc (original)
+++ branches/trac458/src/bin/auth/tests/query_unittest.cc Tue Dec 28 18:48:09 2010
@@ -17,6 +17,7 @@
 #include <dns/rcode.h>
 #include <dns/rrttl.h>
 #include <dns/rrtype.h>
+#include <dns/rdataclass.h>
 
 #include <datasrc/memory_datasrc.h>
 
@@ -41,8 +42,14 @@
 // else return DNAME
 class MockZone : public Zone {
 public:
-    MockZone() : origin_(Name("example.com"))
-    {}
+    MockZone() :
+        origin_(Name("example.com")),
+        mx_rrset_(new RRset(Name("mx.example.com"), RRClass::IN(),
+            RRType::MX(), RRTTL(3600)))
+    {
+        mx_rrset_->addRdata(isc::dns::rdata::generic::MX(10,
+            Name("www.example.com")));
+    }
     virtual const isc::dns::Name& getOrigin() const;
     virtual const isc::dns::RRClass& getClass() const;
 
@@ -51,6 +58,7 @@
 
 private:
     Name origin_;
+    RRsetPtr mx_rrset_;
 };
 
 const Name&
@@ -76,6 +84,8 @@
         return FindResult(NXRRSET, RRsetPtr());
     } else if (name == Name("cname.example.com")) {
         return FindResult(CNAME, RRsetPtr());
+    } else if (name == Name("mx.example.com")) {
+        return (FindResult(SUCCESS, mx_rrset_));
     } else {
         return FindResult(DNAME, RRsetPtr());
     }
@@ -136,4 +146,17 @@
     nomatch_query.process();
     EXPECT_EQ(Rcode::REFUSED(), response.getRcode());
 }
+
+TEST_F(QueryTest, MX) {
+    memory_datasrc.addZone(ZonePtr(new MockZone()));
+    Name qname("mx.example.com");
+    Query mx_query(memory_datasrc, qname, RRType::MX(), response);
+    EXPECT_NO_THROW(mx_query.process());
+    EXPECT_EQ(Rcode::NOERROR(), response.getRcode());
+    EXPECT_TRUE(response.hasRRset(Message::SECTION_ANSWER,
+        Name("mx.example.com"), RRClass::IN(), RRType::MX()));
+    EXPECT_TRUE(response.hasRRset(Message::SECTION_ADDITIONAL,
+        Name("www.example.com"), RRClass::IN(), RRType::A()));
 }
+
+}




More information about the bind10-changes mailing list