Changeset d85532 for src/Patterns/Observer/unittests
- Timestamp:
- Dec 13, 2011, 12:00:30 PM (14 years ago)
- Children:
- b760ac5
- Parents:
- 2c11c1
- git-author:
- Frederik Heber <heber@…> (12/02/11 10:10:17)
- git-committer:
- Frederik Heber <heber@…> (12/13/11 12:00:30)
- Location:
- src/Patterns/Observer/unittests
- Files:
-
- 4 edited
-
ObserverUnitTest.cpp (modified) (3 diffs)
-
ObserverUnitTest.hpp (modified) (4 diffs)
-
stubs/ObserverStub.cpp (modified) (1 diff)
-
stubs/ObserverStub.hpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Patterns/Observer/unittests/ObserverUnitTest.cpp
r2c11c1 rd85532 68 68 notificationObserver2 = new NotificationObserver( 69 69 notificationObservable->getChannel(NotificationObservable::Operation2Notify)); 70 71 RelayObservable = new RelayTest; 72 RelayObserver = new RelayCountObserver(RelayObservable); 70 73 } 71 74 … … 79 82 delete obsset; 80 83 delete obsmap; 84 delete RelayObservable; 85 delete RelayObserver; 81 86 82 87 delete observer1; … … 237 242 } 238 243 244 void ObserverTest::relayTest() 245 { 246 // sign on some observables to the relay 247 simpleObservable1->signOn(RelayObservable); 248 simpleObservable2->signOn(RelayObservable); 249 250 // sign on an observer to the relay 251 RelayObservable->signOn(RelayObserver); 252 simpleObservable1->signOn(observer1); 253 254 // check that all is zero 255 CPPUNIT_ASSERT_EQUAL( 0, RelayObserver->updates ); 256 CPPUNIT_ASSERT_EQUAL( 0, observer1->updates ); 257 258 // signal update 259 simpleObservable1->changeMethod(); 260 261 // check that both the change 262 // (and RelayObserver checks being called correctly) 263 CPPUNIT_ASSERT_EQUAL( 1, RelayObserver->updates ); 264 CPPUNIT_ASSERT_EQUAL( 1, observer1->updates ); 265 266 // signal update through relay only 267 simpleObservable2->changeMethod(); 268 269 // check that only one got the change 270 CPPUNIT_ASSERT_EQUAL( 2, RelayObserver->updates ); 271 CPPUNIT_ASSERT_EQUAL( 1, observer1->updates ); 272 273 // check on signOff 274 simpleObservable1->signOff(RelayObservable); 275 simpleObservable1->signOff(observer1); 276 } 277 239 278 void ObserverTest::CircleDetectionTest() { 240 279 std::cout << std::endl << "Warning: the next test involved methods that can produce infinite loops." << std::endl; -
src/Patterns/Observer/unittests/ObserverUnitTest.hpp
r2c11c1 rd85532 24 24 class ObservableSet; 25 25 class ObservableMap; 26 class RelayObservable; 26 27 class BlockObservable; 27 28 class NotificationObservable; 29 class RelayCountObserver; 28 30 29 31 class ObserverTest : public CppUnit::TestFixture … … 37 39 CPPUNIT_TEST ( doesReportTest ); 38 40 CPPUNIT_TEST ( iteratorTest ); 41 CPPUNIT_TEST ( relayTest ); 39 42 CPPUNIT_TEST ( CircleDetectionTest ); 40 43 CPPUNIT_TEST_SUITE_END(); … … 51 54 void doesReportTest(); 52 55 void iteratorTest(); 56 void relayTest(); 53 57 void CircleDetectionTest(); 54 58 … … 70 74 ObservableSet *obsset; 71 75 ObservableMap *obsmap; 72 76 RelayTest *RelayObservable; 77 RelayCountObserver *RelayObserver; 73 78 }; 74 79 -
src/Patterns/Observer/unittests/stubs/ObserverStub.cpp
r2c11c1 rd85532 230 230 } 231 231 232 /****************** Relay *********************/ 233 234 RelayTest::RelayTest() : 235 Relay(std::string("RelayTest")) 236 {} 237 238 RelayTest::~RelayTest() 239 {} 240 241 /************ RelayCountObserver ***************/ 242 243 RelayCountObserver::RelayCountObserver(const Observable * const _relay) : 244 Observer("RelayCountObserver"), 245 updates(0), 246 relay(_relay) 247 {} 248 249 RelayCountObserver::~RelayCountObserver() 250 {} 251 252 void RelayCountObserver::update(Observable *publisher){ 253 // check that we are not called by the relay itself 254 CPPUNIT_ASSERT(publisher != relay); 255 updates++; 256 } 257 258 void RelayCountObserver::subjectKilled(Observable *publisher) { 259 } 260 -
src/Patterns/Observer/unittests/stubs/ObserverStub.hpp
r2c11c1 rd85532 12 12 #include "Observer/Observable.hpp" 13 13 #include "Observer/ObservedIterator.hpp" 14 #include "Observer/Relay.hpp" 14 15 15 16 class UpdateCountObserver : public Observer { … … 126 127 }; 127 128 129 class RelayTest : public Relay 130 { 131 public: 132 RelayTest(); 133 ~RelayTest(); 134 private: 135 }; 136 137 class RelayCountObserver : public Observer { 138 public: 139 RelayCountObserver(const Observable * const relay); 140 virtual ~RelayCountObserver(); 141 142 void update(Observable *publisher); 143 void subjectKilled(Observable *publisher); 144 145 int updates; 146 private: 147 const Observable * const relay; 148 }; 128 149 129 150 #endif /* OBSERVERSTUB_HPP_ */
Note:
See TracChangeset
for help on using the changeset viewer.
