public void RegisterExistingUser() { //Prepare Mock<LoginStatusChangedEvent> loginStatusChangedEvent = new Mock<LoginStatusChangedEvent>(); loginStatusChangedEvent.Setup(x => x.Publish(It.IsAny<IUserService>())).Verifiable(); Mock<IEventAggregator> eventAggregator = new Mock<IEventAggregator>(); eventAggregator.Setup(x => x.GetEvent<LoginStatusChangedEvent>()).Returns(loginStatusChangedEvent.Object); string user = "******"; char[] pass = "******".ToCharArray(); SecureString password = new SecureString(); foreach (char c in pass) { password.AppendChar(c); } //Act IUserService target = new BattlenetService(eventAggregator.Object); UserQueryResult result = target.Register(user, password); //Verify Assert.IsNull(target.CurrentUser); Assert.IsFalse(target.IsLoggedIn); Assert.IsFalse(result.Success); loginStatusChangedEvent.Verify(x => x.Publish(It.IsAny<IUserService>()), Times.Never); }
public void RegisterAndLoginNewUser() { //Prepare Mock<LoginStatusChangedEvent> loginStatusChangedEvent = new Mock<LoginStatusChangedEvent>(); loginStatusChangedEvent.Setup(x => x.Publish(It.IsAny<IUserService>())).Verifiable(); Mock<IEventAggregator> eventAggregator = new Mock<IEventAggregator>(); eventAggregator.Setup(x => x.GetEvent<LoginStatusChangedEvent>()).Returns(loginStatusChangedEvent.Object); string user = "******"; char[] pass = "******".ToCharArray(); SecureString password = new SecureString(); foreach (char c in pass) { password.AppendChar(c); } //Act IUserService target = new BattlenetService(eventAggregator.Object); UserQueryResult result = target.Register(user, password); target.Login(user, password); //Verify Assert.AreEqual(user, target.CurrentUser.Username); Assert.IsTrue(target.IsLoggedIn); Assert.AreEqual(OnlineStatuses.Online, target.OnlineStatus); Assert.IsTrue(result.Success); loginStatusChangedEvent.Verify(x => x.Publish(It.IsAny<IUserService>()), Times.Exactly(2)); }