public void Handler_Shall_Pass_Validattion_to_next() { var validations = new Dictionary <ValidationTypes, IValidation>() { { ValidationTypes.Security, new SecurityValidation( ValidationResult.Valid, new DateTime(2019, 10, 1)) }, { ValidationTypes.Comfort, new ComfortValidation( ValidationResult.Valid, new DateTime(2019, 10, 1)) } }; IValidationRequest request = new ValidationRequest(validations); IHandler comfortHandler = new ValidationHandler <IValidationRequest, ComfortValidation>( request, new ComfortValidation(ValidationResult.OnReview, new DateTime(2019, 10, 1)), null); IHandler securityHandler = new ValidationHandler <IValidationRequest, SecurityValidation>( request, new SecurityValidation(ValidationResult.Valid, new DateTime(2019, 10, 1)), comfortHandler); securityHandler.Handle(); }
private static Task HandleExceptionAsync(HttpContext context, Exception exception) { (int code, string error) = ValidationHandler.Handle(exception); context.Response.ContentType = "application/json"; context.Response.StatusCode = code; return(context.Response.WriteAsync(error)); }
public void Handle_InnerIsCalled() { IRequestHandler <Request, string> inner = Substitute.For <IRequestHandler <Request, string> >(); var logger = Substitute.For <ILogger>(); var validator = Substitute.For <IValidator <Request> >(); validator.Validate(Arg.Any <Request>()).Returns(v => new ValidationResult()); var handler = new ValidationHandler <Request, string>(inner, validator, logger); handler.Handle(new Request()); inner.Received().Handle(Arg.Any <Request>()); }
public void Handle_ThrowsBusniessRulexception() { IRequestHandler <Request, string> inner = Substitute.For <IRequestHandler <Request, string> >(); var logger = Substitute.For <ILogger>(); var validator = new StaticValidator(false); var handler = new ValidationHandler <Request, string>(inner, validator, logger); var e = Assert.Throws <BusinessRuleException>(() => handler.Handle(new Request())); Assert.AreEqual(e.Violations.First().PropertyName, "foo"); Assert.AreEqual(e.Violations.First().Violation, "bar"); inner.DidNotReceive().Handle(Arg.Any <Request>()); }