public void ShouldNotImportIfImportFileEmpty()
        {
            var importModel       = new ClaimSetFileImportModel();
            var validator         = new ClaimSetFileImportModelValidator(TestContext);
            var validationResults = validator.Validate(importModel);

            validationResults.IsValid.ShouldBe(false);
            validationResults.Errors.Select(x => x.ErrorMessage).ShouldContain("'Import File' must not be empty.");
        }
Example #2
0
        public void ShouldNotImportIfClaimSetNotUnique()
        {
            var testApplication = new Application
            {
                ApplicationName = $"Test Application {DateTime.Now:O}"
            };

            Save(testApplication);

            var alreadyExistingClaimSet = new ClaimSet {
                ClaimSetName = "Test ClaimSet", Application = testApplication
            };

            Save(alreadyExistingClaimSet);

            SetupResourceClaims(testApplication);

            var testJSON = @"{
                ""title"": ""testfile"",
                ""template"": {
                    ""claimSets"": [
                      {
                        ""name"": ""Test Claimset"",
                        ""resourceClaims"": [
                          {
                            ""Name"": ""TestParentResourceClaim1"",
                            ""Read"": true,
                            ""Create"": false,
                            ""Update"": false,
                            ""Delete"": false,
                            ""Children"": []
                          }
                        ]
                      }
                    ]
                }
            }";

            var importModel = GetImportModel(testJSON);

            Scoped <ISecurityContext>(securityContext =>
            {
                var validator         = new ClaimSetFileImportModelValidator(securityContext);
                var validationResults = validator.Validate(importModel);
                validationResults.IsValid.ShouldBe(false);
                validationResults.Errors.Select(x => x.ErrorMessage).ShouldContain(
                    "This template contains a claimset with a name which already exists in the system. Please use a unique name for 'Test Claimset'.\n");
            });
        }
Example #3
0
        public void ShouldNotImportIfImportFileHasAnInvalidExtension()
        {
            var importModel = new ClaimSetFileImportModel();

            var importFile = new Mock <IFormFile>();

            importFile.Setup(f => f.FileName).Returns("testfile.xml");
            importModel.ImportFile = importFile.Object;

            Scoped <ISecurityContext>(securityContext =>
            {
                var validator         = new ClaimSetFileImportModelValidator(securityContext);
                var validationResults = validator.Validate(importModel);
                validationResults.IsValid.ShouldBe(false);
                validationResults.Errors.Select(x => x.ErrorMessage).ShouldContain("Invalid file extension. Only '*.json' files are allowed.");
            });
        }
Example #4
0
        public void ShouldNotImportIfResourceDoesNotExist()
        {
            var testApplication = new Application
            {
                ApplicationName = $"Test Application {DateTime.Now:O}"
            };

            Save(testApplication);

            SetupResourceClaims(testApplication);

            var testJSON = @"{
                ""title"": ""testfile"",
                ""template"": {
                    ""claimSets"": [
                      {
                        ""name"": ""Test Claimset"",
                        ""resourceClaims"": [
                          {
                            ""Name"": ""TestParentResourceClaim88"",
                            ""Read"": true,
                            ""Create"": false,
                            ""Update"": false,
                            ""Delete"": false,
                            ""Children"": []
                          }
                        ]
                      }
                    ]
                }
            }";

            var importModel = GetImportModel(testJSON);

            Scoped <ISecurityContext>(securityContext =>
            {
                var validator         = new ClaimSetFileImportModelValidator(securityContext);
                var validationResults = validator.Validate(importModel);
                validationResults.IsValid.ShouldBe(false);
                validationResults.Errors.Select(x => x.ErrorMessage).ShouldContain("This template contains a resource which is not in the system. Claimset Name: Test Claimset Resource name: 'TestParentResourceClaim88'.\n");
            });
        }