public void SubscribesToMessagesWithTagsCorrectly() { var messageMediator = new MessageMediator(); var recipient = new MessageRecipient(); Assert.AreEqual(0, recipient.MessagesReceivedViaMessageMediatorWithoutTag); Assert.AreEqual(0, recipient.MessagesReceivedViaMessageMediatorWithTag); recipient.SubscribeViaMessageMediatorHelper(messageMediator); messageMediator.SendMessage("test", "tag"); messageMediator.SendMessage("test 2", "tag"); Assert.AreEqual(0, recipient.MessagesReceivedViaMessageMediatorWithoutTag); Assert.AreEqual(2, recipient.MessagesReceivedViaMessageMediatorWithTag); }
public void ReturnsFalseForUnregisteredHandlersWithTag() { var mediator = new MessageMediator(); var sender = new MessageSender(); var recipient = new MessageRecipient(); mediator.Register<string>(recipient, recipient.OnMessage); Assert.IsFalse(sender.SendMessage(mediator, "test", "myTag")); }
private void OnDestroy() { MessageMediator.RemoveListener <string>(MessageMediatType.AddPlayer, AddOneHeroItem); MessageMediator.RemoveListener <string>(MessageMediatType.RemovePlayer, RemoveOnHeroItem); }
public void ReturnsArgumentNullException() { var mediator = new MessageMediator(); ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => mediator.IsMessageRegistered(null)); }
public User(MessageMediator mediator, string name) { this.mediator = mediator; this.name = name; }
public void CleanUpWorksWhenNoHandlersRegistered() { var mediator = new MessageMediator(); mediator.CleanUp(); }
public void ReturnsFalseForUnregisteredHandler() { var mediator = new MessageMediator(); var recipient = new MessageRecipient(); Assert.IsFalse(mediator.IsRegistered<string>(recipient, recipient.OnMessage)); Assert.IsFalse(mediator.Unregister<string>(recipient, recipient.OnMessage)); }
public void ReturnsFalseForHandlersClearedByGarbageCollector() { var mediator = new MessageMediator(); var sender = new MessageSender(); var recipient = new MessageRecipient(); mediator.Register<string>(recipient, recipient.OnMessage); recipient = null; GC.Collect(); Assert.IsFalse(sender.SendMessage(mediator, "test")); Assert.AreEqual(0, mediator.GetRegisteredHandlers<string>().Count, "SendMessage should auto cleanup"); }
public void ReturnsFalseWhenNotRegistered() { var mediator = new MessageMediator(); Assert.IsFalse(mediator.IsMessageRegistered(typeof (string))); }
public void ReturnsArgumentNullException() { var mediator = new MessageMediator(); ExceptionTester.CallMethodAndExpectException<ArgumentNullException>(() => mediator.IsMessageRegistered(null)); }
public void CleanUpClearsGarbageCollectedHandlers() { var mediator = new MessageMediator(); var recipient = new MessageRecipient(); mediator.Register<string>(recipient, recipient.OnMessage); recipient = null; GC.Collect(); mediator.CleanUp(); Assert.AreEqual(0, mediator.GetRegisteredHandlers<string>().Count); }
public void SetChat(MessageMediator mediator) { this.mediator = mediator; mediator.AddUser(this); }
public void ShowErrorTest() { var ErrorWindowService = new ErrorWindowService(); var QuestionWindowService = new QuestionWindowService(); var EnterPinWindowService = new EnterPinWindowService(); AuthorizationService = new AuthorizationService(); StationRepository = MockRepository.GenerateStub <IStationRepository>(); LanguageRepository = MockRepository.GenerateStub <ILanguageRepository>(); LineProvider = MockRepository.GenerateStub <ILineProvider>(); BusinessPropsHelper = MockRepository.GenerateStub <IBusinessPropsHelper>(); DataBinding = MockRepository.GenerateStub <IDataBinding>(); IoCContainer.Kernel.Bind <IDataBinding>().ToConstant <IDataBinding>(DataBinding).InSingletonScope(); IoCContainer.Kernel.Bind <IAuthorizationService>().ToConstant <IAuthorizationService>(AuthorizationService).InSingletonScope(); IoCContainer.Kernel.Bind <IStationRepository>().ToConstant <IStationRepository>(StationRepository).InSingletonScope(); IoCContainer.Kernel.Bind <ILanguageRepository>().ToConstant <ILanguageRepository>(LanguageRepository).InSingletonScope(); IoCContainer.Kernel.Bind <ILineProvider>().ToConstant <ILineProvider>(LineProvider).InSingletonScope(); IoCContainer.Kernel.Bind <IBusinessPropsHelper>().ToConstant <IBusinessPropsHelper>(BusinessPropsHelper).InSingletonScope(); IoCContainer.Kernel.Bind <IErrorWindowService>().ToConstant <IErrorWindowService>(ErrorWindowService).InSingletonScope(); IoCContainer.Kernel.Bind <IQuestionWindowService>().ToConstant <IQuestionWindowService>(QuestionWindowService).InSingletonScope(); IoCContainer.Kernel.Bind <IEnterPinWindowService>().ToConstant <IEnterPinWindowService>(EnterPinWindowService).InSingletonScope(); DataBinding.Expect(x => x.TipListInfo).Return(new TipListInfo()); SessionWS sessionId = new SessionWS(); sessionId.balance = new accountBalance(); sessionId.username = "******"; SessionWS sessionIdNull = null; WsdlRepository.BackToRecord(); WsdlRepository.Expect(x => x.OpenSession("", true, "", "", false)).Return(new SessionWS()).IgnoreArguments(); WsdlRepository.Expect(x => x.ValidateIdCard("1234", "0024", false, out sessionId)).Return(true).OutRef(sessionIdNull); WsdlRepository.Expect(x => x.LoginWithIdCard("0024", "1234", "1234")).Return(sessionId); WsdlRepository.Replay(); StationRepository.TurnOffCashInInit = true; StationRepository.Expect(x => x.AllowAnonymousBetting).Return(true); StationRepository.Expect(x => x.IsReady).Return(true); StationRepository.Expect(x => x.Active).Return(1); StationRepository.Expect(x => x.StationNumber).Return("0024"); StationRepository.Expect(x => x.HubSettings).Return(new Dictionary <string, string>()); StationRepository.Currency = "EUR"; ChangeTracker = IoCContainer.Kernel.Get <IChangeTracker>(); ChangeTracker.CurrentUser = new AnonymousUser("1", 1); ChangeTracker.CurrentUser.Cashpool = 100000; ChangeTracker.CurrentUser.AvailableCash = 100000; BaseClass.Dispatcher.Invoke(() => { BaseClass.Window = MyRegionManager.FindWindowByViewModel <MainViewModel>(); BaseClass.Window.Show(); }); Thread.Sleep(1000); var mainModel = MyRegionManager.CurrentViewModelInRegion(RegionNames.ContentRegion); Task.Run(() => { MessageMediator.SendMessage("1234", MsgTag.CardInserted); }); while (EnterPinWindowService.Model == null) { Thread.Sleep(10); } Thread.Sleep(1000); EnterPinWindowService.Model.Pin = "1234"; EnterPinWindowService.Model.PinMasked = "1234"; EnterPinWindowService.Model.ProceedCommand.Execute(""); Task.Run(() => { mainModel.ShowMessage("msg1"); }); Thread.Sleep(1000); QuestionWindowService.Model.YesCommand.Execute(""); Task.Run(() => { mainModel.ShowError("error1"); }); Thread.Sleep(1000); ErrorWindowService.Model.OKCommand.Execute(""); Task.Run(() => { mainModel.ShowMessage("msg2"); }); Thread.Sleep(1000); QuestionWindowService.Model.YesCommand.Execute(""); Task.Run(() => { mainModel.ShowError("error2"); }); Thread.Sleep(1000); ErrorWindowService.Model.OKCommand.Execute(""); Task.Run(() => { QuestionWindowService.ShowMessage("mgs3", null, null, null, null, false, 1); }); Thread.Sleep(3000); BaseClass.Dispatcher.Invoke(() => { BaseClass.Window.Close(); }); }
public void Show2ErrorsTest() { var ErrorWindowService = new ErrorWindowService(); var QuestionWindowService = new QuestionWindowService(); var EnterPinWindowService = new EnterPinWindowService(); AuthorizationService = new AuthorizationService(); StationRepository = MockRepository.GenerateStub <IStationRepository>(); LanguageRepository = MockRepository.GenerateStub <ILanguageRepository>(); LineProvider = MockRepository.GenerateStub <ILineProvider>(); BusinessPropsHelper = MockRepository.GenerateStub <IBusinessPropsHelper>(); DataBinding = MockRepository.GenerateStub <IDataBinding>(); IoCContainer.Kernel.Bind <IDataBinding>().ToConstant <IDataBinding>(DataBinding).InSingletonScope(); IoCContainer.Kernel.Bind <IAuthorizationService>().ToConstant <IAuthorizationService>(AuthorizationService).InSingletonScope(); IoCContainer.Kernel.Bind <IStationRepository>().ToConstant <IStationRepository>(StationRepository).InSingletonScope(); IoCContainer.Kernel.Bind <ILanguageRepository>().ToConstant <ILanguageRepository>(LanguageRepository).InSingletonScope(); IoCContainer.Kernel.Bind <ILineProvider>().ToConstant <ILineProvider>(LineProvider).InSingletonScope(); IoCContainer.Kernel.Bind <IBusinessPropsHelper>().ToConstant <IBusinessPropsHelper>(BusinessPropsHelper).InSingletonScope(); IoCContainer.Kernel.Bind <IErrorWindowService>().ToConstant <IErrorWindowService>(ErrorWindowService).InSingletonScope(); IoCContainer.Kernel.Bind <IQuestionWindowService>().ToConstant <IQuestionWindowService>(QuestionWindowService).InSingletonScope(); IoCContainer.Kernel.Bind <IEnterPinWindowService>().ToConstant <IEnterPinWindowService>(EnterPinWindowService).InSingletonScope(); DataBinding.Expect(x => x.TipListInfo).Return(new TipListInfo()); StationRepository.TurnOffCashInInit = true; StationRepository.Expect(x => x.AllowAnonymousBetting).Return(true); StationRepository.Expect(x => x.IsReady).Return(true); StationRepository.Expect(x => x.Active).Return(1); StationRepository.Expect(x => x.StationNumber).Return("0024"); StationRepository.Expect(x => x.HubSettings).Return(new Dictionary <string, string>()); StationRepository.Currency = "EUR"; ChangeTracker = IoCContainer.Kernel.Get <IChangeTracker>(); ChangeTracker.CurrentUser = new AnonymousUser("1", 1); ChangeTracker.CurrentUser.Cashpool = 100000; ChangeTracker.CurrentUser.AvailableCash = 100000; Dispatcher.Invoke(() => { Window = MyRegionManager.FindWindowByViewModel <MainViewModel>(); Window.Show(); }); var mainModel = MyRegionManager.CurrentViewModelInRegion(RegionNames.ContentRegion); while (!mainModel.IsReady) { Thread.Sleep(1); } new Thread(() => { Task.Delay(1); MessageMediator.SendMessage <Tuple <string, string, bool, int> >(new Tuple <string, string, bool, int>("LostInternetConnection", "", false, 0), MsgTag.Error); MessageMediator.SendMessage <Tuple <string, string, bool, int> >(new Tuple <string, string, bool, int>("LostInternetConnection", "", false, 0), MsgTag.Error); }).Start(); MessageMediator.SendMessage <Tuple <string, string, bool, int> >(new Tuple <string, string, bool, int>("LostInternetConnection", "", false, 0), MsgTag.Error); int windowCount = 0; Thread.Sleep(1000); Dispatcher.Invoke(() => { windowCount = App.Current.Windows.Count; }); Assert.AreEqual(4, windowCount); Thread.Sleep(1000); Dispatcher.Invoke(() => { windowCount = App.Current.Windows.Count; }); Assert.AreEqual(1, windowCount); Dispatcher.Invoke(() => { Window.Close(); }); }
public void ReturnsTrueForRegisteredHandlers() { var mediator = new MessageMediator(); var sender = new MessageSender(); var recipient = new MessageRecipient(); mediator.Register<string>(recipient, recipient.OnMessage); Assert.IsTrue(sender.SendMessage(mediator, "test")); Assert.AreEqual(1, recipient.MessagesReceived); }
public void ReturnsTrueWhenRegistered() { var mediator = new MessageMediator(); var recipient = new MessageRecipient(); mediator.Register<string>(recipient, recipient.OnMessage); Assert.IsTrue(mediator.IsMessageRegistered(typeof (string))); }
public void ReturnsTrueForRegisteredHandlersWithTag() { var mediator = new MessageMediator(); var sender = new MessageSender(); var recipient = new MessageRecipient(); // Double registration with separate tags is possible mediator.Register<string>(recipient, recipient.OnMessage, "myTag"); mediator.Register<string>(recipient, recipient.OnMessage, "anotherTag"); Assert.IsTrue(sender.SendMessage(mediator, "test", "myTag")); Assert.AreEqual(1, recipient.MessagesReceived); }
public void ReturnsFalseWhenRegisteredWithTagButNotProvided() { var mediator = new MessageMediator(); var recipient = new MessageRecipient(); mediator.Register<string>(recipient, recipient.OnMessage, "myTag"); Assert.IsFalse(mediator.IsMessageRegistered(typeof(string))); }
public void UnregistersRegisteredHandlerWithTag() { var mediator = new MessageMediator(); var recipient = new MessageRecipient(); mediator.Register<string>(recipient, recipient.OnMessage, "myTag"); Assert.IsTrue(mediator.IsRegistered<string>(recipient, recipient.OnMessage, "myTag")); Assert.IsTrue(mediator.Unregister<string>(recipient, recipient.OnMessage, "myTag")); Assert.IsFalse(mediator.IsRegistered<string>(recipient, recipient.OnMessage, "myTag")); }
public void ReturnsTrueWhenRegisteredWithAndWithoutTag() { var mediator = new MessageMediator(); var recipient = new MessageRecipient(); mediator.Register<string>(recipient, recipient.OnMessage, "myTag"); mediator.Register<string>(recipient, recipient.AnotherOnMessage); Assert.IsTrue(mediator.IsMessageRegistered(typeof(string))); }
public void UnregistersAllMethodsOfRecipient() { var mediator = new MessageMediator(); var recipient = new MessageRecipient(); mediator.Register<string>(recipient, recipient.OnMessage); mediator.Register<string>(recipient, recipient.AnotherOnMessage); mediator.Register<string>(recipient, recipient.YetAnotherOnMessage); Assert.IsTrue(mediator.IsRegistered<string>(recipient, recipient.OnMessage)); Assert.IsTrue(mediator.IsRegistered<string>(recipient, recipient.AnotherOnMessage)); Assert.IsTrue(mediator.IsRegistered<string>(recipient, recipient.YetAnotherOnMessage)); mediator.UnregisterRecipient(recipient); Assert.IsFalse(mediator.IsRegistered<string>(recipient, recipient.OnMessage)); Assert.IsFalse(mediator.IsRegistered<string>(recipient, recipient.AnotherOnMessage)); Assert.IsFalse(mediator.IsRegistered<string>(recipient, recipient.YetAnotherOnMessage)); }
public void RegistersHandler() { var mediator = new MessageMediator(); var recipient = new MessageRecipient(); Assert.IsFalse(mediator.IsRegistered<string>(recipient, recipient.OnMessage)); mediator.Register<string>(recipient, recipient.OnMessage); Assert.IsTrue(mediator.IsRegistered<string>(recipient, recipient.OnMessage)); }
public void CleanUpKeepsNonGarbageCollectedHandlersRegistered() { var mediator = new MessageMediator(); var recipient = new MessageRecipient(); mediator.Register<string>(recipient, recipient.OnMessage); mediator.CleanUp(); Assert.IsTrue(mediator.IsRegistered<string>(recipient, recipient.OnMessage)); }
public void ReturnsFalsForDoubleRegistration() { var mediator = new MessageMediator(); var recipient = new MessageRecipient(); Assert.IsTrue(mediator.Register<string>(recipient, recipient.OnMessage)); Assert.IsFalse(mediator.Register<string>(recipient, recipient.OnMessage)); }
public ChatUser(MessageMediator mediator, string name) : base(mediator, name) { mediator.AddUser(this); }
public void ReturnsFalseForUnregisteredHandlers() { var mediator = new MessageMediator(); var sender = new MessageSender(); Assert.IsFalse(sender.SendMessage(mediator, "test")); }
public void ReturnsFalseWhenNotRegistered() { var mediator = new MessageMediator(); Assert.IsFalse(mediator.IsMessageRegistered(typeof(string))); }