18 #include "ns3/names.h"
29 static TypeId GetTypeId (
void)
33 .HideFromDocumentation ()
38 virtual void Dispose (
void) {}
44 static TypeId GetTypeId (
void)
48 .HideFromDocumentation ()
53 virtual void Dispose (
void) {}
73 virtual void DoRun (
void);
74 virtual void DoTeardown (
void);
77 BasicAddTestCase::BasicAddTestCase ()
78 :
TestCase (
"Check low level Names::Add and Names::FindName functionality")
82 BasicAddTestCase::~BasicAddTestCase ()
98 Names::Add (
Ptr<Object> (0,
false),
"Name One", objectOne);
101 Names::Add (
Ptr<Object> (0,
false),
"Name Two", objectTwo);
104 Names::Add (objectOne,
"Child", childOfObjectOne);
107 Names::Add (objectTwo,
"Child", childOfObjectTwo);
109 found = Names::FindName (objectOne);
110 NS_TEST_ASSERT_MSG_EQ (found,
"Name One",
"Could not Names::Add and Names::FindName an Object");
112 found = Names::FindName (objectTwo);
113 NS_TEST_ASSERT_MSG_EQ (found,
"Name Two",
"Could not Names::Add and Names::FindName a second Object");
115 found = Names::FindName (childOfObjectOne);
116 NS_TEST_ASSERT_MSG_EQ (found,
"Child",
"Could not Names::Add and Names::FindName a child Object");
118 found = Names::FindName (childOfObjectTwo);
119 NS_TEST_ASSERT_MSG_EQ (found,
"Child",
"Could not Names::Add and Names::FindName a child Object");
138 virtual void DoRun (
void);
142 StringContextAddTestCase::StringContextAddTestCase ()
143 :
TestCase (
"Check string context Names::Add and Names::FindName functionality")
148 StringContextAddTestCase::~StringContextAddTestCase ()
164 Names::Add (
"/Names",
"Name One", objectOne);
167 Names::Add (
"/Names",
"Name Two", objectTwo);
170 Names::Add (
"/Names/Name One",
"Child", childOfObjectOne);
173 Names::Add (
"/Names/Name Two",
"Child", childOfObjectTwo);
175 found = Names::FindName (objectOne);
176 NS_TEST_ASSERT_MSG_EQ (found,
"Name One",
"Could not Names::Add and Names::FindName an Object");
178 found = Names::FindName (objectTwo);
179 NS_TEST_ASSERT_MSG_EQ (found,
"Name Two",
"Could not Names::Add and Names::FindName a second Object");
181 found = Names::FindName (childOfObjectOne);
182 NS_TEST_ASSERT_MSG_EQ (found,
"Child",
"Could not Names::Add and Names::FindName a child Object");
184 found = Names::FindName (childOfObjectTwo);
185 NS_TEST_ASSERT_MSG_EQ (found,
"Child",
"Could not Names::Add and Names::FindName a child Object");
201 virtual void DoRun (
void);
205 FullyQualifiedAddTestCase::FullyQualifiedAddTestCase ()
206 :
TestCase (
"Check fully qualified path Names::Add and Names::FindName functionality")
211 FullyQualifiedAddTestCase::~FullyQualifiedAddTestCase ()
227 Names::Add (
"/Names/Name One", objectOne);
230 Names::Add (
"/Names/Name Two", objectTwo);
233 Names::Add (
"/Names/Name One/Child", childOfObjectOne);
236 Names::Add (
"/Names/Name Two/Child", childOfObjectTwo);
238 found = Names::FindName (objectOne);
239 NS_TEST_ASSERT_MSG_EQ (found,
"Name One",
"Could not Names::Add and Names::FindName an Object");
241 found = Names::FindName (objectTwo);
242 NS_TEST_ASSERT_MSG_EQ (found,
"Name Two",
"Could not Names::Add and Names::FindName a second Object");
244 found = Names::FindName (childOfObjectOne);
245 NS_TEST_ASSERT_MSG_EQ (found,
"Child",
"Could not Names::Add and Names::FindName a child Object");
247 found = Names::FindName (childOfObjectTwo);
248 NS_TEST_ASSERT_MSG_EQ (found,
"Child",
"Could not Names::Add and Names::FindName a child Object");
267 virtual void DoRun (
void);
271 RelativeAddTestCase::RelativeAddTestCase ()
272 :
TestCase (
"Check relative path Names::Add and Names::FindName functionality")
277 RelativeAddTestCase::~RelativeAddTestCase ()
293 Names::Add (
"Name One", objectOne);
296 Names::Add (
"Name Two", objectTwo);
299 Names::Add (
"Name One/Child", childOfObjectOne);
302 Names::Add (
"Name Two/Child", childOfObjectTwo);
304 found = Names::FindName (objectOne);
305 NS_TEST_ASSERT_MSG_EQ (found,
"Name One",
"Could not Names::Add and Names::FindName an Object");
307 found = Names::FindName (objectTwo);
308 NS_TEST_ASSERT_MSG_EQ (found,
"Name Two",
"Could not Names::Add and Names::FindName a second Object");
310 found = Names::FindName (childOfObjectOne);
311 NS_TEST_ASSERT_MSG_EQ (found,
"Child",
"Could not Names::Add and Names::FindName a child Object");
313 found = Names::FindName (childOfObjectTwo);
314 NS_TEST_ASSERT_MSG_EQ (found,
"Child",
"Could not Names::Add and Names::FindName a child Object");
333 virtual void DoRun (
void);
337 BasicRenameTestCase::BasicRenameTestCase ()
338 :
TestCase (
"Check low level Names::Rename functionality")
342 BasicRenameTestCase::~BasicRenameTestCase ()
358 Names::Add (
Ptr<Object> (0,
false),
"Name", objectOne);
361 Names::Add (objectOne,
"Child", childOfObjectOne);
363 found = Names::FindName (objectOne);
364 NS_TEST_ASSERT_MSG_EQ (found,
"Name",
"Could not Names::Add and Names::FindName an Object");
366 Names::Rename (
Ptr<Object> (0,
false),
"Name",
"New Name");
368 found = Names::FindName (objectOne);
369 NS_TEST_ASSERT_MSG_EQ (found,
"New Name",
"Could not Names::Rename an Object");
371 found = Names::FindName (childOfObjectOne);
372 NS_TEST_ASSERT_MSG_EQ (found,
"Child",
"Could not Names::Add and Names::FindName a child Object");
374 Names::Rename (objectOne,
"Child",
"New Child");
376 found = Names::FindName (childOfObjectOne);
377 NS_TEST_ASSERT_MSG_EQ (found,
"New Child",
"Could not Names::Rename a child Object");
393 virtual void DoRun (
void);
397 StringContextRenameTestCase::StringContextRenameTestCase ()
398 :
TestCase (
"Check string context-based Names::Rename functionality")
402 StringContextRenameTestCase::~StringContextRenameTestCase ()
418 Names::Add (
"/Names",
"Name", objectOne);
421 Names::Add (
"/Names/Name",
"Child", childOfObjectOne);
423 found = Names::FindName (objectOne);
424 NS_TEST_ASSERT_MSG_EQ (found,
"Name",
"Could not Names::Add and Names::FindName an Object");
426 Names::Rename (
"/Names",
"Name",
"New Name");
428 found = Names::FindName (objectOne);
429 NS_TEST_ASSERT_MSG_EQ (found,
"New Name",
"Could not Names::Rename an Object");
431 found = Names::FindName (childOfObjectOne);
432 NS_TEST_ASSERT_MSG_EQ (found,
"Child",
"Could not Names::Add and Names::FindName a child Object");
434 Names::Rename (
"/Names/New Name",
"Child",
"New Child");
436 found = Names::FindName (childOfObjectOne);
437 NS_TEST_ASSERT_MSG_EQ (found,
"New Child",
"Could not Names::Rename a child Object");
453 virtual void DoRun (
void);
457 FullyQualifiedRenameTestCase::FullyQualifiedRenameTestCase ()
458 :
TestCase (
"Check fully qualified path Names::Rename functionality")
462 FullyQualifiedRenameTestCase::~FullyQualifiedRenameTestCase ()
478 Names::Add (
"/Names/Name", objectOne);
481 Names::Add (
"/Names/Name/Child", childOfObjectOne);
483 found = Names::FindName (objectOne);
484 NS_TEST_ASSERT_MSG_EQ (found,
"Name",
"Could not Names::Add and Names::FindName an Object");
486 Names::Rename (
"/Names/Name",
"New Name");
488 found = Names::FindName (objectOne);
489 NS_TEST_ASSERT_MSG_EQ (found,
"New Name",
"Could not Names::Rename an Object");
491 found = Names::FindName (childOfObjectOne);
492 NS_TEST_ASSERT_MSG_EQ (found,
"Child",
"Could not Names::Add and Names::FindName a child Object");
494 Names::Rename (
"/Names/New Name/Child",
"New Child");
496 found = Names::FindName (childOfObjectOne);
497 NS_TEST_ASSERT_MSG_EQ (found,
"New Child",
"Could not Names::Rename a child Object");
513 virtual void DoRun (
void);
517 RelativeRenameTestCase::RelativeRenameTestCase ()
518 :
TestCase (
"Check relative path Names::Rename functionality")
522 RelativeRenameTestCase::~RelativeRenameTestCase ()
538 Names::Add (
"Name", objectOne);
541 Names::Add (
"Name/Child", childOfObjectOne);
543 found = Names::FindName (objectOne);
544 NS_TEST_ASSERT_MSG_EQ (found,
"Name",
"Could not Names::Add and Names::FindName an Object");
546 Names::Rename (
"Name",
"New Name");
548 found = Names::FindName (objectOne);
549 NS_TEST_ASSERT_MSG_EQ (found,
"New Name",
"Could not Names::Rename an Object");
551 found = Names::FindName (childOfObjectOne);
552 NS_TEST_ASSERT_MSG_EQ (found,
"Child",
"Could not Names::Add and Names::FindName a child Object");
554 Names::Rename (
"New Name/Child",
"New Child");
556 found = Names::FindName (childOfObjectOne);
557 NS_TEST_ASSERT_MSG_EQ (found,
"New Child",
"Could not Names::Rename a child Object");
573 virtual void DoRun (
void);
577 FindPathTestCase::FindPathTestCase ()
578 :
TestCase (
"Check Names::FindPath functionality")
582 FindPathTestCase::~FindPathTestCase ()
598 Names::Add (
"Name", objectOne);
601 Names::Add (
"/Names/Name/Child", childOfObjectOne);
603 found = Names::FindPath (objectOne);
604 NS_TEST_ASSERT_MSG_EQ (found,
"/Names/Name",
"Could not Names::Add and Names::FindPath an Object");
606 found = Names::FindPath (childOfObjectOne);
607 NS_TEST_ASSERT_MSG_EQ (found,
"/Names/Name/Child",
"Could not Names::Add and Names::FindPath a child Object");
610 found = Names::FindPath (objectNotThere);
611 NS_TEST_ASSERT_MSG_EQ (found,
"",
"Unexpectedly found a non-existent Object");
627 virtual void DoRun (
void);
631 BasicFindTestCase::BasicFindTestCase ()
632 :
TestCase (
"Check low level Names::Find functionality")
636 BasicFindTestCase::~BasicFindTestCase ()
652 Names::Add (
"Name One", objectOne);
655 Names::Add (
"Name Two", objectTwo);
658 Names::Add (
"Name One/Child", childOfObjectOne);
661 Names::Add (
"Name Two/Child", childOfObjectTwo);
663 found = Names::Find<TestObject> (
Ptr<Object> (0,
false),
"Name One");
664 NS_TEST_ASSERT_MSG_EQ (found, objectOne,
"Could not find a previously named Object via object context");
666 found = Names::Find<TestObject> (Ptr<Object> (0,
false),
"Name Two");
667 NS_TEST_ASSERT_MSG_EQ (found, objectTwo,
"Could not find a previously named Object via object context");
669 found = Names::Find<TestObject> (objectOne,
"Child");
670 NS_TEST_ASSERT_MSG_EQ (found, childOfObjectOne,
"Could not find a previously named child Object via object context");
672 found = Names::Find<TestObject> (objectTwo,
"Child");
673 NS_TEST_ASSERT_MSG_EQ (found, childOfObjectTwo,
"Could not find a previously named child Object via object context");
689 virtual void DoRun (
void);
693 StringContextFindTestCase::StringContextFindTestCase ()
694 :
TestCase (
"Check string context-based Names::Find functionality")
698 StringContextFindTestCase::~StringContextFindTestCase ()
714 Names::Add (
"Name One", objectOne);
717 Names::Add (
"Name Two", objectTwo);
720 Names::Add (
"Name One/Child", childOfObjectOne);
723 Names::Add (
"Name Two/Child", childOfObjectTwo);
725 found = Names::Find<TestObject> (
"/Names",
"Name One");
726 NS_TEST_ASSERT_MSG_EQ (found, objectOne,
"Could not find a previously named Object via string context");
728 found = Names::Find<TestObject> (
"/Names",
"Name Two");
729 NS_TEST_ASSERT_MSG_EQ (found, objectTwo,
"Could not find a previously named Object via stribng context");
731 found = Names::Find<TestObject> (
"/Names/Name One",
"Child");
732 NS_TEST_ASSERT_MSG_EQ (found, childOfObjectOne,
"Could not find a previously named child Object via string context");
734 found = Names::Find<TestObject> (
"/Names/Name Two",
"Child");
735 NS_TEST_ASSERT_MSG_EQ (found, childOfObjectTwo,
"Could not find a previously named child Object via string context");
751 virtual void DoRun (
void);
755 FullyQualifiedFindTestCase::FullyQualifiedFindTestCase ()
756 :
TestCase (
"Check fully qualified path Names::Find functionality")
760 FullyQualifiedFindTestCase::~FullyQualifiedFindTestCase ()
776 Names::Add (
"/Names/Name One", objectOne);
779 Names::Add (
"/Names/Name Two", objectTwo);
782 Names::Add (
"/Names/Name One/Child", childOfObjectOne);
785 Names::Add (
"/Names/Name Two/Child", childOfObjectTwo);
787 found = Names::Find<TestObject> (
"/Names/Name One");
788 NS_TEST_ASSERT_MSG_EQ (found, objectOne,
"Could not find a previously named Object via string context");
790 found = Names::Find<TestObject> (
"/Names/Name Two");
791 NS_TEST_ASSERT_MSG_EQ (found, objectTwo,
"Could not find a previously named Object via stribng context");
793 found = Names::Find<TestObject> (
"/Names/Name One/Child");
794 NS_TEST_ASSERT_MSG_EQ (found, childOfObjectOne,
"Could not find a previously named child Object via string context");
796 found = Names::Find<TestObject> (
"/Names/Name Two/Child");
797 NS_TEST_ASSERT_MSG_EQ (found, childOfObjectTwo,
"Could not find a previously named child Object via string context");
813 virtual void DoRun (
void);
817 RelativeFindTestCase::RelativeFindTestCase ()
818 :
TestCase (
"Check relative path Names::Find functionality")
822 RelativeFindTestCase::~RelativeFindTestCase ()
838 Names::Add (
"Name One", objectOne);
841 Names::Add (
"Name Two", objectTwo);
844 Names::Add (
"Name One/Child", childOfObjectOne);
847 Names::Add (
"Name Two/Child", childOfObjectTwo);
849 found = Names::Find<TestObject> (
"Name One");
850 NS_TEST_ASSERT_MSG_EQ (found, objectOne,
"Could not find a previously named Object via string context");
852 found = Names::Find<TestObject> (
"Name Two");
853 NS_TEST_ASSERT_MSG_EQ (found, objectTwo,
"Could not find a previously named Object via stribng context");
855 found = Names::Find<TestObject> (
"Name One/Child");
856 NS_TEST_ASSERT_MSG_EQ (found, childOfObjectOne,
"Could not find a previously named child Object via string context");
858 found = Names::Find<TestObject> (
"Name Two/Child");
859 NS_TEST_ASSERT_MSG_EQ (found, childOfObjectTwo,
"Could not find a previously named child Object via string context");
873 virtual void DoRun (
void);
877 AlternateFindTestCase::AlternateFindTestCase ()
878 :
TestCase (
"Check GetObject operation in Names::Find")
882 AlternateFindTestCase::~AlternateFindTestCase ()
896 Names::Add (
"Test Object", testObject);
899 Names::Add (
"Alternate Test Object", alternateTestObject);
904 foundTestObject = Names::Find<TestObject> (
"Test Object");
905 NS_TEST_ASSERT_MSG_EQ (foundTestObject, testObject,
906 "Could not find a previously named TestObject via GetObject");
908 foundAlternateTestObject = Names::Find<AlternateTestObject> (
"Alternate Test Object");
909 NS_TEST_ASSERT_MSG_EQ (foundAlternateTestObject, alternateTestObject,
910 "Could not find a previously named AlternateTestObject via GetObject");
913 foundAlternateTestObject = Names::Find<AlternateTestObject> (
"Test Object");
914 NS_TEST_ASSERT_MSG_EQ (foundAlternateTestObject, 0,
915 "Unexpectedly able to GetObject<AlternateTestObject> on a TestObject");
917 foundTestObject = Names::Find<TestObject> (
"Alternate Test Object");
918 NS_TEST_ASSERT_MSG_EQ (foundTestObject, 0,
919 "Unexpectedly able to GetObject<TestObject> on an AlternateTestObject");
928 NamesTestSuite::NamesTestSuite ()
929 :
TestSuite (
"object-name-service", UNIT)
virtual void DoRun(void)
Implementation to actually run this test case.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
smart pointer class similar to boost::intrusive_ptr
TypeId AddConstructor(void)
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
virtual void DoRun(void)
Implementation to actually run this test case.
virtual void DoRun(void)
Implementation to actually run this test case.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
virtual void DoRun(void)
Implementation to actually run this test case.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
virtual void DoRun(void)
Implementation to actually run this test case.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
virtual void DoRun(void)
Implementation to actually run this test case.
virtual void DoRun(void)
Implementation to actually run this test case.
virtual void DoRun(void)
Implementation to actually run this test case.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
virtual void DoRun(void)
Implementation to actually run this test case.
virtual void DoRun(void)
Implementation to actually run this test case.
virtual void DoRun(void)
Implementation to actually run this test case.
void AddTestCase(TestCase *testCase) NS_DEPRECATED
Add an individual test case to this test suite.
virtual void DoRun(void)
Implementation to actually run this test case.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
virtual void DoRun(void)
Implementation to actually run this test case.
a base class which provides memory management and object aggregation
virtual void DoRun(void)
Implementation to actually run this test case.
a unique identifier for an interface.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
TypeId SetParent(TypeId tid)