public void MustBePending_NonDraft_ReturnsError( [Values( Roles.Buyer, Roles.Supplier, Roles.Admin )] string role, [Values( CapabilitiesImplementedStatus.Submitted, CapabilitiesImplementedStatus.Remediation, CapabilitiesImplementedStatus.Approved, CapabilitiesImplementedStatus.Rejected )] CapabilitiesImplementedStatus status) { _context.Setup(x => x.HttpContext).Returns(Creator.GetContext(role: role)); var validator = new CapabilitiesImplementedValidator(_context.Object, _logger.Object, _claimDatastore.Object, _contactsDatastore.Object, _solutionsDatastore.Object); var claim = Creator.GetCapabilitiesImplemented(status: status); validator.MustBePending(); var valres = validator.Validate(claim); valres.Errors.Should() .ContainSingle(x => x.ErrorMessage == "Only supplier can delete a draft claim") .And .HaveCount(1); }
public void Validate_Update_FinalState_ReturnsError( [Values( CapabilitiesImplementedStatus.Approved, CapabilitiesImplementedStatus.Rejected)] CapabilitiesImplementedStatus oldStatus, [Values( CapabilitiesImplementedStatus.Draft, CapabilitiesImplementedStatus.Submitted, CapabilitiesImplementedStatus.Remediation, CapabilitiesImplementedStatus.Approved, CapabilitiesImplementedStatus.Rejected)] CapabilitiesImplementedStatus newStatus, [Values( Roles.Admin, Roles.Buyer, Roles.Supplier)] string role) { _context.Setup(x => x.HttpContext).Returns(Creator.GetContext(role: role)); var validator = new CapabilitiesImplementedValidator(_context.Object, _logger.Object, _claimDatastore.Object, _contactsDatastore.Object, _solutionsDatastore.Object); var oldClaim = Creator.GetCapabilitiesImplemented(status: oldStatus); var newClaim = Creator.GetCapabilitiesImplemented(status: newStatus); _claimDatastore.Setup(x => x.ById(newClaim.Id)).Returns(oldClaim); validator.MustBeValidStatusTransition(); var valres = validator.Validate(newClaim); valres.Errors.Should() .ContainSingle(x => x.ErrorMessage == "Invalid Status transition") .And .HaveCount(1); }
public void MustBeValidStatusTransition_Valid_Succeeds(CapabilitiesImplementedStatus oldStatus, CapabilitiesImplementedStatus newStatus, string role) { _context.Setup(x => x.HttpContext).Returns(Creator.GetContext(role: role)); var validator = new CapabilitiesImplementedValidator(_context.Object, _logger.Object, _claimDatastore.Object, _contactsDatastore.Object, _solutionsDatastore.Object); var oldClaim = Creator.GetCapabilitiesImplemented(status: oldStatus); var newClaim = Creator.GetCapabilitiesImplemented(status: newStatus); _claimDatastore.Setup(x => x.ById(newClaim.Id)).Returns(oldClaim); validator.MustBeValidStatusTransition(); var valres = validator.Validate(newClaim); valres.Errors.Should().BeEmpty(); }
public void MustBeValidStatusTransition_Invalid_ReturnsError(CapabilitiesImplementedStatus oldStatus, CapabilitiesImplementedStatus newStatus, string role) { _context.Setup(x => x.HttpContext).Returns(Creator.GetContext(role: role)); var validator = new CapabilitiesImplementedValidator(_context.Object, _logger.Object, _claimDatastore.Object, _contactsDatastore.Object, _solutionsDatastore.Object); var oldClaim = Creator.GetCapabilitiesImplemented(status: oldStatus); var newClaim = Creator.GetCapabilitiesImplemented(status: newStatus); _claimDatastore.Setup(x => x.ById(newClaim.Id)).Returns(oldClaim); validator.MustBeValidStatusTransition(); var valres = validator.Validate(newClaim); valres.Errors.Should() .ContainSingle(x => x.ErrorMessage == "Invalid Status transition") .And .HaveCount(1); }
public static CapabilitiesImplemented GetCapabilitiesImplemented( string id = null, string solnId = null, string claimId = null, string ownerId = null, CapabilitiesImplementedStatus status = CapabilitiesImplementedStatus.Draft, DateTime?originalDate = null) { var retval = new CapabilitiesImplemented { Id = id ?? Guid.NewGuid().ToString(), SolutionId = solnId ?? Guid.NewGuid().ToString(), CapabilityId = claimId ?? Guid.NewGuid().ToString(), OwnerId = ownerId ?? Guid.NewGuid().ToString(), Status = status, OriginalDate = originalDate ?? DateTime.UtcNow }; Verifier.Verify(retval); return(retval); }