public void Validate_TwoChainedHandlers_LogLengthIsTwo() { var node1 = new ValidationHandlerNode(new AlwaysPassesValidationHandler()); var node2 = new ValidationHandlerNode(new AlwaysPassesValidationHandler()); node1.Successor = node2; node1.Validate(""); Assert.AreEqual(2, log.Length); }
public void Validate_TwoChainedHanldersFirstFails_LogLengthIsOne() { var node1 = new ValidationHandlerNode(new AlwaysFailsValidationHandler()); var node2 = new ValidationHandlerNode(new AlwaysPassesValidationHandler()); node1.Successor = node2; node1.Validate(""); Assert.AreEqual(1, log.Length); Assert.AreEqual("F", log); }
/// <summary> /// Constructs an instance of the `Validator` class using the settings passed /// into the constructor. /// </summary> /// <param name="settings">The settings that define the rules by which /// to validate a password.</param> public Validator(IPasswordValidationSettings settings) { if (settings == null) throw new ArgumentNullException("settings"); _validationChain = ValidationServiceLocator.GetValidationHandlerChain(settings); }
public void Validate_ThreeChainedHanldersMiddleFails_LogLengthIsTwo() { var node1 = new ValidationHandlerNode(new AlwaysPassesValidationHandler()); var node2 = new ValidationHandlerNode(new AlwaysFailsValidationHandler()); var node3 = new ValidationHandlerNode(new AlwaysPassesValidationHandler()); node1.Successor = node2; node2.Successor = node3; node1.Validate(""); Assert.AreEqual(2, log.Length); Assert.AreEqual("TF", log); }
public void Validate_ThreeChainedHanldersAllPass_LogLengthIsThree() { var node1 = new ValidationHandlerNode(new AlwaysPassesValidationHandler()); var node2 = new ValidationHandlerNode(new AlwaysPassesValidationHandler()); var node3 = new ValidationHandlerNode(new AlwaysPassesValidationHandler()); node1.Successor = node2; node2.Successor = node3; bool result = node1.Validate(""); Assert.AreEqual(3, log.Length); Assert.AreEqual("TTT", log); Assert.IsTrue(result); }