public async Task ExecuteAsync_UsesDefaults_ForProblemDetails() { // Arrange var details = new HttpValidationProblemDetails(); var result = new ValidationProblem(details); var stream = new MemoryStream(); var httpContext = new DefaultHttpContext { RequestServices = CreateServices(), Response = { Body = stream, }, }; // Act await result.ExecuteAsync(httpContext); // Assert Assert.Equal(StatusCodes.Status400BadRequest, httpContext.Response.StatusCode); Assert.Equal(details, result.ProblemDetails); stream.Position = 0; var responseDetails = JsonSerializer.Deserialize <ProblemDetails>(stream); Assert.Equal("https://tools.ietf.org/html/rfc7231#section-6.5.1", responseDetails.Type); Assert.Equal("One or more validation errors occurred.", responseDetails.Title); Assert.Equal(StatusCodes.Status400BadRequest, responseDetails.Status); }
public ValidationResult ValidatePlayerPurchase(Team team, Player playerIn) { List <ValidationProblem> problems = new List <ValidationProblem>(); ValidationProblem formationError = ValidateFormation(team, playerIn); if (formationError != null) { problems.Add(formationError); } ValidationProblem teamPlayerCountError = ValidateTeamPlayerCount(team, playerIn); if (teamPlayerCountError != null) { problems.Add(teamPlayerCountError); } return(new ValidationResult(problems)); }
public void SingleTest() { var project = new Mock <IProject>(); _context.Setup(r => r.AllProjects).Returns(new[] { project.Object }); var problem = new ValidationProblem("a") { Severity = ProblemSeverity.ProjectWarning }; var validator = new Mock <IProjectValidator>(); validator.Setup(v => v.Validate(It.IsAny <IExecutionContext>(), project.Object)).Returns(new[] { problem }); _factory.Setup(f => f.BuildProjectValidationSequence()).Returns(new[] { validator.Object }); var result = _validator.Validate(_context.Object); Assert.IsNotNull(result); Assert.That(result.Single(), Is.EqualTo(problem)); }
public void BreakOnFatalTest() { var project1 = new Mock <IProject>(); var project2 = new Mock <IProject>(); _context.Setup(r => r.AllProjects).Returns(new[] { project1.Object, project2.Object }); var fatal = new ValidationProblem("a") { Severity = ProblemSeverity.ProjectFatal }; var warning = new ValidationProblem("a") { Severity = ProblemSeverity.ProjectWarning }; var v1 = new Mock <IProjectValidator>(); v1.Setup(v => v.Validate(It.IsAny <IExecutionContext>(), project1.Object)).Returns(new[] { fatal }); var v2 = new Mock <IProjectValidator>(); v2.Setup(v => v.Validate(It.IsAny <IExecutionContext>(), project1.Object)).Returns(new[] { warning }); _factory.Setup(f => f.BuildProjectValidationSequence()).Returns(new[] { v1.Object, v2.Object }); var result = _validator.Validate(_context.Object); Assert.IsNotNull(result); Assert.That(result.Single(), Is.EqualTo(fatal)); v1.Verify(v => v.Validate(It.IsAny <IExecutionContext>(), project1.Object), Times.Once()); v1.Verify(v => v.Validate(It.IsAny <IExecutionContext>(), project2.Object), Times.Once()); v2.Verify(v => v.Validate(It.IsAny <IExecutionContext>(), project1.Object), Times.Never()); v2.Verify(v => v.Validate(It.IsAny <IExecutionContext>(), project2.Object), Times.Once()); }
private string ProblemToString(ValidationProblem problem) { return(problem.ToString()); }