Example #1
0
        public void TestTimeSink03_ChangeTwice()
        {
            /* 创建观察者和被观察者对象 */
            MockTimeSource mockTimeSource = new MockTimeSource();
            MockTimeSink   mockTimeSink   = new MockTimeSink(mockTimeSource);
            MockTimeSink   mockTimeSink1  = new MockTimeSink(mockTimeSource);

            /* 设定观察者对象 */
            mockTimeSource.RegisterObserver(mockTimeSink);
            mockTimeSource.RegisterObserver(mockTimeSink1);

            /* Refresh the souce */
            mockTimeSource.SetTime(1, 3, 5);

            Assert.AreEqual(1, mockTimeSink.GetHour());
            Assert.AreEqual(3, mockTimeSink.GetMinite());
            Assert.AreEqual(5, mockTimeSink.GetSecond());
            Assert.AreEqual(1, mockTimeSink1.GetHour());
            Assert.AreEqual(3, mockTimeSink1.GetMinite());
            Assert.AreEqual(5, mockTimeSink1.GetSecond());

            /* Refresh the souce */
            mockTimeSource.SetTime(2, 4, 6);

            Assert.AreEqual(2, mockTimeSink1.GetHour());
            Assert.AreEqual(4, mockTimeSink1.GetMinite());
            Assert.AreEqual(6, mockTimeSink1.GetSecond());
        }