public void VerifyPasswordTest() { Assert.Throws <ArgumentNullException>(() => new PasswordCheckerService(null, verifier)); Assert.Throws <ArgumentNullException>(() => new PasswordCheckerService(repo, null)); Assert.Throws <ArgumentException>(() => service.VerifyPassword(null)); verifier.AddCheck(PasswordVerifier.ValidateEmpty); Assert.AreEqual(Tuple.Create(false, " is empty"), service.VerifyPassword(string.Empty)); verifier.AddCheck(PasswordVerifier.ValidateMinLength); Assert.AreEqual(Tuple.Create(false, "12345 length too short"), service.VerifyPassword("12345")); verifier.AddCheck(PasswordVerifier.ValidateMaxLength); Assert.AreEqual(Tuple.Create(false, "asdqwerte35vdfr length too long"), service.VerifyPassword("asdqwerte35vdfr")); verifier.AddCheck(PasswordVerifier.ValidateLetter); Assert.AreEqual(Tuple.Create(false, "15948702 hasn't alphanumerical chars"), service.VerifyPassword("15948702")); verifier.AddCheck(PasswordVerifier.ValidateDigit); Assert.AreEqual(Tuple.Create(false, "asdwerqw hasn't digits"), service.VerifyPassword("asdwerqw")); Assert.AreEqual(Tuple.Create(true, "Password is Ok. User was created"), service.VerifyPassword("asdwer534qw")); Mock.Get(repo).Verify(repo => repo.Create("asdwer534qw")); }
private static void Main(string[] args) { var verifier = new PasswordVerifier( PasswordVerifier.ValidateEmpty, PasswordVerifier.ValidateMinLength, PasswordVerifier.ValidateMaxLength, PasswordVerifier.ValidateLetter, PasswordVerifier.ValidateDigit); var service = new PasswordCheckerService(new SqlRepository(), verifier); System.Console.WriteLine(service.VerifyPassword("123aff3fe")); verifier.AddCheck(Program.ValidateCapital); System.Console.WriteLine(service.VerifyPassword("123aff3fe")); verifier.RemoveCheck(PasswordVerifier.ValidateMinLength); System.Console.WriteLine(service.VerifyPassword("2aD")); System.Console.Read(); }