public void ShouldNotDeleteIfResourceNotOnClaimSet()
        {
            var testApplication = new Application
            {
                ApplicationName = $"Test Application {DateTime.Now:O}"
            };

            Save(testApplication);

            var testClaimSet = new ClaimSet {
                ClaimSetName = "TestClaimSet", Application = testApplication
            };

            Save(testClaimSet);

            var testResources = SetupParentResourceClaimsWithChildren(testClaimSet, testApplication);

            var resourceNotOnClaimSet = new ResourceClaim
            {
                Application         = testApplication,
                ClaimName           = "TestClaim99",
                DisplayName         = "TestResource99",
                ParentResourceClaim = null,
                ResourceName        = "TestResource99"
            };

            Save(resourceNotOnClaimSet);

            var deleteResourceOnClaimSetModel = new DeleteClaimSetResourceModel
            {
                ClaimSetId      = testClaimSet.ClaimSetId,
                ResourceClaimId = resourceNotOnClaimSet.ResourceClaimId,
                ClaimSetName    = testClaimSet.ClaimSetName,
                ResourceName    = resourceNotOnClaimSet.ResourceName
            };

            Scoped <ISecurityContext>(securityContext =>
            {
                var validator         = new DeleteClaimSetResourceModelValidator(securityContext);
                var validationResults = validator.Validate(deleteResourceOnClaimSetModel);
                validationResults.IsValid.ShouldBe(false);
                validationResults.Errors.Single().ErrorMessage.ShouldBe("This resource does not exist on the claimset.");
            });
        }
예제 #2
0
        private IReadOnlyCollection <ResourceClaim> SetupResourceClaims(Application testApplication, int resourceClaimCount = 5)
        {
            var resourceClaims = new List <ResourceClaim>();

            foreach (var index in Enumerable.Range(1, resourceClaimCount))
            {
                var resourceClaim = new ResourceClaim
                {
                    ClaimName    = $"TestResourceClaim{index:N}",
                    DisplayName  = $"TestResourceClaim{index:N}",
                    ResourceName = $"TestResourceClaim{index:N}",
                    Application  = testApplication
                };
                resourceClaims.Add(resourceClaim);
            }

            Save(resourceClaims.Cast <object>().ToArray());

            return(resourceClaims);
        }