public void MustBeValidStatusTransition_Valid_Succeeds(SolutionStatus oldStatus, SolutionStatus newStatus, string role) { var solnId = Guid.NewGuid().ToString(); _context.Setup(x => x.HttpContext).Returns(Creator.GetContext(role: role)); var validator = new SolutionsValidator(_context.Object, _logger.Object, _solutionDatastore.Object, _organisationDatastore.Object, _env.Object); var oldSoln = Creator.GetSolution(id: solnId, status: oldStatus); var newSoln = Creator.GetSolution(id: solnId, status: newStatus); _solutionDatastore.Setup(x => x.ById(solnId)).Returns(oldSoln); validator.MustBeValidStatusTransition(); var valres = validator.Validate(newSoln); valres.Errors.Should().BeEmpty(); }
public void MustBeValidStatusTransition_Invalid_ReturnsError(SolutionStatus oldStatus, SolutionStatus newStatus, string role) { var solnId = Guid.NewGuid().ToString(); _context.Setup(x => x.HttpContext).Returns(Creator.GetContext(role: role)); var validator = new SolutionsValidator(_context.Object, _logger.Object, _solutionDatastore.Object, _organisationDatastore.Object, _env.Object); var oldSoln = Creator.GetSolution(id: solnId, status: oldStatus); var newSoln = Creator.GetSolution(id: solnId, status: newStatus); _solutionDatastore.Setup(x => x.ById(solnId)).Returns(oldSoln); validator.MustBeValidStatusTransition(); var valres = validator.Validate(newSoln); valres.Errors.Should() .ContainSingle(x => x.ErrorMessage == "Invalid Status transition") .And .HaveCount(1); }
public void MustBeValidStatusTransition_FinalState_ReturnsError( #region params [Values( SolutionStatus.Approved, SolutionStatus.Failed)] SolutionStatus oldStatus, [Values( SolutionStatus.Failed, SolutionStatus.Draft, SolutionStatus.Registered, SolutionStatus.CapabilitiesAssessment, SolutionStatus.StandardsCompliance, SolutionStatus.SolutionPage, SolutionStatus.FinalApproval, SolutionStatus.Approved)] SolutionStatus newStatus, [Values( Roles.Admin, Roles.Buyer, Roles.Supplier)] #endregion string role) { var solnId = Guid.NewGuid().ToString(); _context.Setup(x => x.HttpContext).Returns(Creator.GetContext(role: role)); var validator = new SolutionsValidator(_context.Object, _logger.Object, _solutionDatastore.Object, _organisationDatastore.Object, _env.Object); var oldSoln = Creator.GetSolution(id: solnId, status: oldStatus); var newSoln = Creator.GetSolution(id: solnId, status: newStatus); _solutionDatastore.Setup(x => x.ById(solnId)).Returns(oldSoln); validator.MustBeValidStatusTransition(); var valres = validator.Validate(newSoln); valres.Errors.Should() .ContainSingle(x => x.ErrorMessage == "Invalid Status transition") .And .HaveCount(1); }