TEST_F(TestLink, InterestSelectedDelegation) { Link link; link.setName(Name("test")); link.addDelegation(10, Name("/test1")); link.addDelegation(20, Name("/test2")); link.addDelegation(100, Name("/test3")); keyChain_->sign(link, certificateName_); Blob linkEncoding = link.wireEncode(); Interest interestA; interestA.setLinkWireEncoding(linkEncoding); ASSERT_TRUE(interestA.getSelectedDelegationIndex() < 0); interestA.setSelectedDelegationIndex (link.getDelegations().find(Name("test2"))); ASSERT_TRUE(interestA.getSelectedDelegationIndex() >= 0); Link* link2 = interestA.getLink(); ASSERT_EQ (Name("test2"), link2->getDelegations().get(interestA.getSelectedDelegationIndex()).getName()); interestA.setSelectedDelegationIndex(-1); ASSERT_TRUE(interestA.getSelectedDelegationIndex() < 0); }
TEST_F(TestLink, DecodeInterestWithLink) { Interest interest; interest.wireDecode(Blob(InterestWithLink, sizeof(InterestWithLink))); Link* link = interest.getLink(); ASSERT_TRUE(link) << "Interest link object not specified"; ASSERT_EQ(Name("/local/ndn/prefix"), link->getName()); const DelegationSet& delegations = link->getDelegations(); for (size_t i = 0; i < delegations.size(); ++i) { if (i == 0) { ASSERT_EQ(10, delegations.get(i).getPreference()); ASSERT_EQ(Name("local"), delegations.get(i).getName()); } if (i == 1) { ASSERT_EQ(20, delegations.get(i).getPreference()); ASSERT_EQ(Name("ndn"), delegations.get(i).getName()); } } ASSERT_TRUE(interest.getSelectedDelegationIndex() >= 0) << "Interest selected delegation not specified"; ASSERT_EQ (Name("local"), delegations.get(interest.getSelectedDelegationIndex()).getName()); }
TEST_F(TestLink, DecodeInterestWithLinkNonDecreasingOrder) { Interest interest; interest.wireDecode(Blob (InterestWithLinkNonDecreasingOrder, sizeof(InterestWithLinkNonDecreasingOrder))); Link* link = interest.getLink(); ASSERT_TRUE(interest.getSelectedDelegationIndex() >= 0); ASSERT_EQ (Name("ndn"), link->getDelegations().get(interest.getSelectedDelegationIndex()).getName()); }