public void ShouldNotAddDuplicateResourcesToClaimSetDuringEdit() { var testApplication = new Application { ApplicationName = $"Test Application {DateTime.Now:O}" }; Save(testApplication); var testClaimSet = new ClaimSet { ClaimSetName = "TestClaimSet", Application = testApplication }; Save(testClaimSet); SetupParentResourceClaimsWithChildren(testClaimSet, testApplication); var existingResources = new GetResourcesByClaimSetIdQuery(TestContext, GetMapper()).AllResources(testClaimSet.ClaimSetId) .ToList(); var duplicateResource = existingResources.Single(x => x.Name == "TestParentResourceClaim1"); var editResourceOnClaimSetModel = new EditClaimSetResourceModel { ClaimSetId = testClaimSet.ClaimSetId, ResourceClaim = duplicateResource, ExistingResourceClaims = existingResources }; var validator = new EditClaimSetResourceModelValidator(); var validationResults = validator.Validate(editResourceOnClaimSetModel); validationResults.IsValid.ShouldBe(false); validationResults.Errors.Single().ErrorMessage.ShouldBe("Only unique resource claims can be added. The following is a duplicate resource:\nTestParentResourceClaim1"); }
public void ShouldAddChildResourcesToClaimSet() { var testApplication = new Application { ApplicationName = $"Test Application {DateTime.Now:O}" }; Save(testApplication); var testClaimSet = new ClaimSet { ClaimSetName = "TestClaimSet", Application = testApplication }; Save(testClaimSet); var testResources = SetupResourceClaims(testApplication); var testParentResource1 = testResources.Single(x => x.ResourceName == "TestParentResourceClaim1"); var testChildResource1ToAdd = Transaction(securityContext => securityContext.ResourceClaims.Single(x => x.ResourceName == "TestChildResourceClaim1" && x.ParentResourceClaimId == testParentResource1.ResourceClaimId)); var resourceToAdd = new ResourceClaim() { Id = testChildResource1ToAdd.ResourceClaimId, Name = testChildResource1ToAdd.ResourceName, Create = true, Read = false, Update = true, Delete = false }; var existingResources = ResourceClaimsForClaimSet(testClaimSet.ClaimSetId); var editResourceOnClaimSetModel = new EditClaimSetResourceModel { ClaimSetId = testClaimSet.ClaimSetId, ResourceClaim = resourceToAdd, ExistingResourceClaims = existingResources }; Scoped <ISecurityContext>(securityContext => { var command = new EditResourceOnClaimSetCommand(securityContext); command.Execute(editResourceOnClaimSetModel); }); var resourceClaimsForClaimSet = ResourceClaimsForClaimSet(testClaimSet.ClaimSetId); var resultChildResourceClaim1 = resourceClaimsForClaimSet.Single(x => x.Name == testChildResource1ToAdd.ResourceName); resultChildResourceClaim1.Create.ShouldBe(resourceToAdd.Create); resultChildResourceClaim1.Read.ShouldBe(resourceToAdd.Read); resultChildResourceClaim1.Update.ShouldBe(resourceToAdd.Update); resultChildResourceClaim1.Delete.ShouldBe(resourceToAdd.Delete); }
public void ShouldAddParentResourceToClaimSet() { var testApplication = new Application { ApplicationName = $"Test Application {DateTime.Now:O}" }; Save(testApplication); var testClaimSet = new ClaimSet { ClaimSetName = "TestClaimSet", Application = testApplication }; Save(testClaimSet); var testResources = SetupResourceClaims(testApplication); var testResourceToAdd = testResources.Single(x => x.ResourceName == "TestParentResourceClaim1"); var resourceToAdd = new ResourceClaim() { Id = testResourceToAdd.ResourceClaimId, Name = testResourceToAdd.ResourceName, Create = true, Read = false, Update = true, Delete = false }; var existingResources = new GetResourcesByClaimSetIdQuery(TestContext, GetMapper()).AllResources(testClaimSet.ClaimSetId) .ToList(); var editResourceOnClaimSetModel = new EditClaimSetResourceModel { ClaimSetId = testClaimSet.ClaimSetId, ResourceClaim = resourceToAdd, ExistingResourceClaims = existingResources }; var command = new EditResourceOnClaimSetCommand(TestContext); command.Execute(editResourceOnClaimSetModel); var resourceClaimsForClaimSet = new GetResourcesByClaimSetIdQuery(TestContext, GetMapper()).AllResources(testClaimSet.ClaimSetId).ToList(); var resultResourceClaim1 = resourceClaimsForClaimSet.Single(x => x.Name == testResourceToAdd.ResourceName); resultResourceClaim1.Create.ShouldBe(resourceToAdd.Create); resultResourceClaim1.Read.ShouldBe(resourceToAdd.Read); resultResourceClaim1.Update.ShouldBe(resourceToAdd.Update); resultResourceClaim1.Delete.ShouldBe(resourceToAdd.Delete); }
public void ShouldNotAddInvalidResourcesToClaimSetDuringEdit() { 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 testResource = testResources.Single(x => x.ResourceClaim.ResourceName == "TestParentResourceClaim1").ResourceClaim; var invalidResource = new ResourceClaim { Id = testResource.ResourceClaimId, Name = testResource.ResourceName, Create = false, Read = false, Update = false, Delete = false }; var editResourceOnClaimSetModel = new EditClaimSetResourceModel { ClaimSetId = testClaimSet.ClaimSetId, ResourceClaim = invalidResource, ExistingResourceClaims = new GetResourcesByClaimSetIdQuery(TestContext, GetMapper()).AllResources(testClaimSet.ClaimSetId) .ToList() }; var validator = new EditClaimSetResourceModelValidator(); var validationResults = validator.Validate(editResourceOnClaimSetModel); validationResults.IsValid.ShouldBe(false); validationResults.Errors.Single().ErrorMessage.ShouldBe("Only valid resources can be added. A resource must have at least one action associated with it to be added. The following is an invalid resource:\nTestParentResourceClaim1"); }
public ActionResult EditResourceOnClaimSet(EditClaimSetResourceModel model) { _editResourceOnClaimSetCommand.Execute(model); return(RedirectToAction("EditClaimSet", "ClaimSets", new { claimSetId = model.ClaimSetId })); }