Ignore:
Timestamp:
Dec 13, 2011, 12:00:30 PM (14 years ago)
Author:
Frederik Heber <heber@…>
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)
Message:

Added unit test on Relay.

  • added new stubs to ObserverStub implementing Relay.
  • Relay is friend of Notification.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Patterns/Observer/unittests/ObserverUnitTest.cpp

    r2c11c1 rd85532  
    6868  notificationObserver2 = new NotificationObserver(
    6969      notificationObservable->getChannel(NotificationObservable::Operation2Notify));
     70
     71  RelayObservable = new RelayTest;
     72  RelayObserver = new RelayCountObserver(RelayObservable);
    7073}
    7174
     
    7982  delete obsset;
    8083  delete obsmap;
     84  delete RelayObservable;
     85  delete RelayObserver;
    8186
    8287  delete observer1;
     
    237242}
    238243
     244void 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
    239278void ObserverTest::CircleDetectionTest() {
    240279  std::cout << std::endl << "Warning: the next test involved methods that can produce infinite loops." << std::endl;
Note: See TracChangeset for help on using the changeset viewer.