public void Should_Process_Failed_Attempt() { var dataUser = new User { CreationDate = new DateTime(2000, 01, 20), Email = "*****@*****.**", FirstName = "Jack", LastName = "Hoffman", UserId = "551581bf90eb291bd0e97fb2", LastLogin = new DateTime(2012, 10, 31) }; MockRetrievableUserById .Setup(x => x.Retrieve(It.IsAny<ByUserId>())) .Returns(dataUser); MockRetrievableUserByEmail .Setup(x => x.Retrieve(It.IsAny<ByUserEmail>())) .Returns(dataUser); MockRetrievableAuthyId .Setup(x => x.RetrieveAll(It.IsAny<ByEncodedUserId>())) .Returns(new List<UserAuthentication> { new UserAuthentication { AccountActive = true, AccountType = AccountType.ActualAccount, EncodedPassword = "******", EncodedUserId = "Yvf08ew7hUptyomgslYIYhQmJ+jhUM/nrgQtbJgnW50=", EncryptionKey = "ApplePear", FailedLoginAttemptCount = 0 }, new UserAuthentication { AccountActive = true, AccountType = AccountType.Trap1Account, EncodedPassword = "******", EncodedUserId = "Yvf08ew7hUptyomgslYIYhQmJ+jhUM/nrgQtbJgnW50=", EncryptionKey = "PearBanana", FailedLoginAttemptCount = 0 }, new UserAuthentication { AccountActive = true, AccountType = AccountType.Trap2Account, EncodedPassword = "******", EncodedUserId = "Yvf08ew7hUptyomgslYIYhQmJ+jhUM/nrgQtbJgnW50=", EncryptionKey = "BananaGrape", FailedLoginAttemptCount = 0 }, new UserAuthentication { AccountActive = true, AccountType = AccountType.Trap3Account, EncodedPassword = "******", EncodedUserId = "Yvf08ew7hUptyomgslYIYhQmJ+jhUM/nrgQtbJgnW50=", EncryptionKey = "GrapeApple", FailedLoginAttemptCount = 0 } }); //arrange MockSystemTime .Setup(x => x.Current()) .Returns(new DateTime(2015, 12, 2, 0, 0, 0, DateTimeKind.Utc)); var input = new Credentials { Email = "*****@*****.**", Password = "******" }; UserAccount actual; //act actual = Subject.RetrieveAccount(input); //assert MockUpdatableAuth.Verify(x=>x.Update(It.Is<UserAuthentication>(i=> i.FailedLoginAttemptCount == 1)), Times.Exactly(4)); MockUpdatableAuth.Verify(x=>x.Save(),Times.Once); }
public void Should_Return_Account() { //Data Layer Arrange var dataUser = new User { CreationDate = new DateTime(2000, 01, 20), Email = "*****@*****.**", FirstName = "Jack", LastName = "Hoffman", UserId = "551581bf90eb291bd0e97fb2", LastLogin = new DateTime(2012, 10, 31) }; MockRetrievableUserById .Setup(x => x.Retrieve(It.IsAny<ByUserId>())) .Returns(dataUser); MockRetrievableUserByEmail .Setup(x => x.Retrieve(It.IsAny<ByUserEmail>())) .Returns(dataUser); MockRetrievableAuthyId .Setup(x => x.RetrieveAll(It.IsAny<ByEncodedUserId>())) .Returns(new List<UserAuthentication> { new UserAuthentication { AccountActive = true, AccountType = AccountType.ActualAccount, EncodedPassword = "******", EncodedUserId = "Yvf08ew7hUptyomgslYIYhQmJ+jhUM/nrgQtbJgnW50=", EncryptionKey = "ApplePear", FailedLoginAttemptCount = 0 }, new UserAuthentication { AccountActive = true, AccountType = AccountType.Trap1Account, EncodedPassword = "******", EncodedUserId = "Yvf08ew7hUptyomgslYIYhQmJ+jhUM/nrgQtbJgnW50=", EncryptionKey = "PearBanana", FailedLoginAttemptCount = 0 }, new UserAuthentication { AccountActive = true, AccountType = AccountType.Trap2Account, EncodedPassword = "******", EncodedUserId = "Yvf08ew7hUptyomgslYIYhQmJ+jhUM/nrgQtbJgnW50=", EncryptionKey = "BananaGrape", FailedLoginAttemptCount = 0 }, new UserAuthentication { AccountActive = true, AccountType = AccountType.Trap3Account, EncodedPassword = "******", EncodedUserId = "Yvf08ew7hUptyomgslYIYhQmJ+jhUM/nrgQtbJgnW50=", EncryptionKey = "GrapeApple", FailedLoginAttemptCount = 0 } }); //arrange MockSystemTime .Setup(x => x.Current()) .Returns(new DateTime(2015, 12, 2, 0, 0, 0, DateTimeKind.Utc)); var input = new Credentials { Email = "*****@*****.**", Password = "******" }; var expected = new UserAccount { Email = "*****@*****.**", FirstName = "Jack", LastName = "Hoffman", UserId = "551581bf90eb291bd0e97fb2" }; UserAccount actual; //act actual = Subject.RetrieveAccount(input); //assert Assert.AreEqual(expected.Email, actual.Email, string.Format("Expected Email of {0}, actual was {1}", expected.Email, actual.Email)); Assert.AreEqual(expected.FirstName, actual.FirstName, string.Format("Expected FirstName of {0}, actual was {1}", expected.FirstName, actual.FirstName)); Assert.AreEqual(expected.LastName, actual.LastName, string.Format("Expected LastName of {0}, actual was {1}", expected.LastName, actual.LastName)); Assert.AreEqual(expected.UserId, actual.UserId, string.Format("Expected UserId of {0}, actual was {1}", expected.UserId, actual.UserId)); }
public IList<UserAuthentication> GetUserAuthCollection(User user) { var encodedUserId = EncryptionHandler.Encrypt(user.UserId, user.UserId); var query = new ByEncodedUserId { EncodedUserId = encodedUserId }; return _retrieveAllUserAuthenticationByEncodedUserId.RetrieveAll(query); }