interest: drop Selectors from matching functions
matchesData and matchesInterest only consider Name, CanBePrefix,
and MustBeFresh. matchesName is deprecated.
refs #4913
Change-Id: I6f29a98f09f1b6f97e379f4c7d74d9b18da75d0e
diff --git a/tests/unit/interest.t.cpp b/tests/unit/interest.t.cpp
index 4523d07..9c4b55d 100644
--- a/tests/unit/interest.t.cpp
+++ b/tests/unit/interest.t.cpp
@@ -25,7 +25,7 @@
#include "ndn-cxx/security/signature-sha256-with-rsa.hpp"
#include "tests/boost-test.hpp"
-#include "tests/identity-management-fixture.hpp"
+#include "tests/make-interest-data.hpp"
namespace ndn {
namespace tests {
@@ -357,98 +357,44 @@
BOOST_AUTO_TEST_CASE(MatchesData)
{
- Interest interest;
- interest.setName("ndn:/A")
- .setMinSuffixComponents(2)
- .setMaxSuffixComponents(2)
- .setPublisherPublicKeyLocator(KeyLocator("ndn:/B"))
- .setExclude(Exclude().excludeAfter(name::Component("J")));
+ auto interest = makeInterest("/A");
- Data data("ndn:/A/D");
- SignatureSha256WithRsa signature(KeyLocator("ndn:/B"));
- signature.setValue(encoding::makeEmptyBlock(tlv::SignatureValue));
- data.setSignature(signature);
- data.wireEncode();
- BOOST_CHECK_EQUAL(interest.matchesData(data), true);
+ auto data = makeData("/A");
+ BOOST_CHECK_EQUAL(interest->matchesData(*data), true);
- Data data1 = data;
- data1.setName("ndn:/A"); // violates MinSuffixComponents
- data1.wireEncode();
- BOOST_CHECK_EQUAL(interest.matchesData(data1), false);
+ data->setName("/A/D");
+ BOOST_CHECK_EQUAL(interest->matchesData(*data), false); // violates CanBePrefix
- Interest interest1 = interest;
- interest1.setMinSuffixComponents(1);
- BOOST_CHECK_EQUAL(interest1.matchesData(data1), true);
+ interest->setCanBePrefix(true);
+ BOOST_CHECK_EQUAL(interest->matchesData(*data), true);
- Data data2 = data;
- data2.setName("ndn:/A/E/F"); // violates MaxSuffixComponents
- data2.wireEncode();
- BOOST_CHECK_EQUAL(interest.matchesData(data2), false);
+ interest->setMustBeFresh(true);
+ BOOST_CHECK_EQUAL(interest->matchesData(*data), false); // violates MustBeFresh
- Interest interest2 = interest;
- interest2.setMaxSuffixComponents(3);
- BOOST_CHECK_EQUAL(interest2.matchesData(data2), true);
+ data->setFreshnessPeriod(1_s);
+ BOOST_CHECK_EQUAL(interest->matchesData(*data), true);
- Data data3 = data;
- SignatureSha256WithRsa signature3(KeyLocator("ndn:/G")); // violates PublisherPublicKeyLocator
- signature3.setValue(encoding::makeEmptyBlock(tlv::SignatureValue));
- data3.setSignature(signature3);
- data3.wireEncode();
- BOOST_CHECK_EQUAL(interest.matchesData(data3), false);
+ data->setName("/H/I");
+ BOOST_CHECK_EQUAL(interest->matchesData(*data), false); // Name does not match
- Interest interest3 = interest;
- interest3.setPublisherPublicKeyLocator(KeyLocator("ndn:/G"));
- BOOST_CHECK_EQUAL(interest3.matchesData(data3), true);
+ data->wireEncode();
+ interest = makeInterest(data->getFullName());
+ BOOST_CHECK_EQUAL(interest->matchesData(*data), true);
- Data data4 = data;
- DigestSha256 signature4; // violates PublisherPublicKeyLocator
- signature4.setValue(encoding::makeEmptyBlock(tlv::SignatureValue));
- data4.setSignature(signature4);
- data4.wireEncode();
- BOOST_CHECK_EQUAL(interest.matchesData(data4), false);
-
- Interest interest4 = interest;
- interest4.setPublisherPublicKeyLocator(KeyLocator());
- BOOST_CHECK_EQUAL(interest4.matchesData(data4), true);
-
- Data data5 = data;
- data5.setName("ndn:/A/J"); // violates Exclude
- data5.wireEncode();
- BOOST_CHECK_EQUAL(interest.matchesData(data5), false);
-
- Interest interest5 = interest;
- interest5.setExclude(Exclude().excludeAfter(name::Component("K")));
- BOOST_CHECK_EQUAL(interest5.matchesData(data5), true);
-
- Data data6 = data;
- data6.setName("ndn:/H/I"); // violates Name
- data6.wireEncode();
- BOOST_CHECK_EQUAL(interest.matchesData(data6), false);
-
- Data data7 = data;
- data7.setName("ndn:/A/B");
- data7.wireEncode();
-
- Interest interest7("/A/B/sha256digest=54008e240a7eea2714a161dfddf0dd6ced223b3856e9da96792151e180f3b128");
- BOOST_CHECK_EQUAL(interest7.matchesData(data7), true);
-
- Interest interest7b("/A/B/sha256digest=0000000000000000000000000000000000000000000000000000000000000000");
- BOOST_CHECK_EQUAL(interest7b.matchesData(data7), false); // violates implicit digest
+ setNameComponent(*interest, -1, Name("/sha256digest=000000000000000000000000"
+ "0000000000000000000000000000000000000000").at(0));
+ BOOST_CHECK_EQUAL(interest->matchesData(*data), false); // violates implicit digest
}
BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES(MatchesInterest, 1)
BOOST_AUTO_TEST_CASE(MatchesInterest)
{
- Interest interest;
- interest
- .setName("/A")
- .setMinSuffixComponents(2)
- .setMaxSuffixComponents(2)
- .setPublisherPublicKeyLocator(KeyLocator("/B"))
- .setExclude(Exclude().excludeAfter(name::Component("J")))
- .setNonce(10)
- .setInterestLifetime(5_s)
- .setForwardingHint({{1, "/H"}});
+ Interest interest("/A");
+ interest.setCanBePrefix(true)
+ .setMustBeFresh(true)
+ .setForwardingHint({{1, "/H"}})
+ .setNonce(2228)
+ .setInterestLifetime(5_s);
Interest other;
BOOST_CHECK_EQUAL(interest.matchesInterest(other), false);
@@ -456,16 +402,19 @@
other.setName(interest.getName());
BOOST_CHECK_EQUAL(interest.matchesInterest(other), false);
- other.setSelectors(interest.getSelectors());
+ other.setCanBePrefix(interest.getCanBePrefix());
+ BOOST_CHECK_EQUAL(interest.matchesInterest(other), false);
+
+ other.setMustBeFresh(interest.getMustBeFresh());
BOOST_CHECK_EQUAL(interest.matchesInterest(other), false); // will match until #3162 implemented
- other.setForwardingHint({{1, "/H"}});
+ other.setForwardingHint(interest.getForwardingHint());
BOOST_CHECK_EQUAL(interest.matchesInterest(other), true);
- other.setNonce(200);
+ other.setNonce(9336);
BOOST_CHECK_EQUAL(interest.matchesInterest(other), true);
- other.setInterestLifetime(5_h);
+ other.setInterestLifetime(3_s);
BOOST_CHECK_EQUAL(interest.matchesInterest(other), true);
}