public void HasMultipleObserver_And_GenericParams() { CObserverSubject_ChainData <string, int> pObserverSubject = new CObserverSubject_ChainData <string, int>(); _iTestValue = 0; pObserverSubject.DoRegist_Listener(AddField_HasParam, 1); Assert.IsTrue(_iTestValue == 0); pObserverSubject.DoNotify("테스트_A", 5); Assert.IsTrue(_iTestValue == 5); pObserverSubject.DoRegist_Listener(PrintLog_HasParam, 2); pObserverSubject.DoNotify("테스트_B", 8); Assert.IsTrue(_iTestValue == 5 + 8); pObserverSubject.DoRegist_Listener(Decrease_20_CurrentValue_HasParam, 0); pObserverSubject.DoNotify("테스트_C", 10); Assert.IsTrue(_iTestValue == 5 + 8 + (10 - 20)); }
public void IsNotOverlap_Observer() { CObserverSubject_ChainData <int> pObserverSubject = new CObserverSubject_ChainData <int>(); _iTestValue = 0; pObserverSubject.DoRegist_Listener(Plus_To_TestValue, 0); pObserverSubject.DoRegist_Listener(Plus_To_TestValue, 1); // Not Regist Assert.IsTrue(_iTestValue == 0); pObserverSubject.DoNotify(123); Assert.IsTrue(_iTestValue == 123); }
public void Regist_And_Remove() { CObserverSubject_ChainData <int> pObserverSubject = new CObserverSubject_ChainData <int>(); _iTestValue = 0; pObserverSubject.DoRegist_Listener(Plus_To_TestValue, 0); pObserverSubject.DoRegist_Listener(Minus_To_TestValue, 1); pObserverSubject.DoRemove_Listener(Plus_To_TestValue); // Remove Plus & Minus Only Assert.IsTrue(_iTestValue == 0); pObserverSubject.DoNotify(10); // Minus Only Assert.IsTrue(_iTestValue == -10); }