public void MustBeValidClaim_Valid_Succeeds()
        {
            var claimId = Guid.NewGuid().ToString();

            _claimsDatastore.Setup(x => x.ById(claimId)).Returns(Creator.GetClaimsBase());
            var validator = new DummyClaimsEvidenceBlobStoreValidatorBase(_context.Object, _logger.Object, _solutionsDatastore.Object, _claimsDatastore.Object);

            validator.MustBeValidClaim();
            var valres = validator.Validate(claimId);

            valres.Errors.Should().BeEmpty();
        }
        public void MustBeValidClaim_Invalid_ReturnsError()
        {
            var claimId   = Guid.NewGuid().ToString();
            var validator = new DummyClaimsEvidenceBlobStoreValidatorBase(_context.Object, _logger.Object, _solutionsDatastore.Object, _claimsDatastore.Object);

            validator.MustBeValidClaim();
            var valres = validator.Validate(claimId);

            valres.Errors.Should()
            .ContainSingle(x => x.ErrorMessage == "Could not find claim")
            .And
            .HaveCount(1);
        }
        public void MustBeSameOrganisationById_Buyer_Ignored(string role)
        {
            var orgId = Guid.NewGuid().ToString();
            var ctx   = Creator.GetContext(role: role);

            _context.Setup(c => c.HttpContext).Returns(ctx);
            var claimId   = Guid.NewGuid().ToString();
            var validator = new DummyClaimsEvidenceBlobStoreValidatorBase(_context.Object, _logger.Object, _solutionsDatastore.Object, _claimsDatastore.Object);

            validator.MustBeSameOrganisationById();
            var valres = validator.Validate(Guid.NewGuid().ToString());

            valres.Errors.Should().BeEmpty();
            _claimsDatastore.Verify(x => x.ById(It.IsAny <string>()), Times.Never);
            _solutionsDatastore.Verify(x => x.ById(It.IsAny <string>()), Times.Never);
        }
        public void MustBeSameOrganisationById_Same_NonBuyer_Succeeds(string role)
        {
            var orgId = Guid.NewGuid().ToString();
            var ctx   = Creator.GetContext(orgId: orgId, role: role);

            _context.Setup(c => c.HttpContext).Returns(ctx);
            var soln = Creator.GetSolution(orgId: orgId);

            _solutionsDatastore.Setup(x => x.ById(soln.Id)).Returns(soln);
            var validator = new DummyClaimsEvidenceBlobStoreValidatorBase(_context.Object, _logger.Object, _solutionsDatastore.Object, _claimsDatastore.Object);

            validator.MustBeSameOrganisationById();
            var valres = validator.Validate(soln.Id);

            valres.Errors.Should().BeEmpty();
        }
        public void MustBeSameOrganisationById_Different_Supplier_ReturnsError(string role)
        {
            var orgId = Guid.NewGuid().ToString();
            var ctx   = Creator.GetContext(role: role);

            _context.Setup(c => c.HttpContext).Returns(ctx);
            var soln = Creator.GetSolution(orgId: orgId);

            _solutionsDatastore.Setup(x => x.ById(soln.Id)).Returns(soln);
            var validator = new DummyClaimsEvidenceBlobStoreValidatorBase(_context.Object, _logger.Object, _solutionsDatastore.Object, _claimsDatastore.Object);

            validator.MustBeSameOrganisationById();
            var valres = validator.Validate(soln.Id);

            valres.Errors.Should()
            .ContainSingle(x => x.ErrorMessage == "Cannot add/see evidence for other organisation")
            .And
            .HaveCount(1);
        }