public async Task DeleteRequirementDefinition_AsPreserver_ShouldReturnForbidden_WhenPermissionMissing()
 => await RequirementTypesControllerTestsHelper.DeleteRequirementDefinitionAsync(
     UserType.Preserver, TestFactory.PlantWithAccess,
     9999,
     8888,
     TestFactory.AValidRowVersion,
     HttpStatusCode.Forbidden);
Ejemplo n.º 2
0
        public async Task UpdateRequirementDefinition_AsAdmin_ShouldUpdateRequirementDefinitionAndRowVersion()
        {
            // Arrange
            var reqTypeIdUnderTest = ReqTypeAIdUnderTest;
            var reqDefIdUnderTest  = await RequirementTypesControllerTestsHelper.CreateRequirementDefinitionAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                Guid.NewGuid().ToString());

            var reqDef = await RequirementTypesControllerTestsHelper.GetRequirementDefinitionDetailsAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                reqDefIdUnderTest);

            var currentRowVersion = reqDef.RowVersion;
            var newTitle          = Guid.NewGuid().ToString();

            // Act
            var newRowVersion = await RequirementTypesControllerTestsHelper.UpdateRequirementDefinitionAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                reqDef.Id,
                newTitle,
                4,
                currentRowVersion);

            // Assert
            AssertRowVersionChange(currentRowVersion, newRowVersion);
            reqDef = await RequirementTypesControllerTestsHelper.GetRequirementDefinitionDetailsAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                reqDefIdUnderTest);

            Assert.AreEqual(newTitle, reqDef.Title);
        }
 public async Task DeleteRequirementDefinition_AsAdmin_ShouldReturnForbidden_WhenNoAccessToPlant()
 => await RequirementTypesControllerTestsHelper.DeleteRequirementDefinitionAsync(
     UserType.LibraryAdmin, TestFactory.PlantWithoutAccess,
     9999,
     8888,
     TestFactory.AValidRowVersion,
     HttpStatusCode.Forbidden);
 public async Task DeleteRequirementDefinition_AsAnonymous_ShouldReturnUnauthorized()
 => await RequirementTypesControllerTestsHelper.DeleteRequirementDefinitionAsync(
     UserType.Anonymous, TestFactory.UnknownPlant,
     9999,
     8888,
     TestFactory.AValidRowVersion,
     HttpStatusCode.Unauthorized);
 public async Task UnvoidRequirementDefinition_AsHacker_ShouldReturnForbidden_WhenNoAccessToPlant()
 => await RequirementTypesControllerTestsHelper.UnvoidRequirementDefinitionAsync(
     UserType.Hacker, TestFactory.PlantWithoutAccess,
     9999,
     8888,
     TestFactory.AValidRowVersion,
     HttpStatusCode.Forbidden);
Ejemplo n.º 6
0
        public async Task UnvoidRequirementDefinition_AsAdmin_ShouldUnvoidRequirementDefinition_AndUpdateAndRowVersion()
        {
            // Arrange
            var reqTypeIdUnderTest = ReqTypeAIdUnderTest;
            var reqDefId           = await RequirementTypesControllerTestsHelper.CreateRequirementDefinitionAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                Guid.NewGuid().ToString());

            var reqDef =
                await RequirementTypesControllerTestsHelper.GetRequirementDefinitionDetailsAsync(UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                                                                                                 reqTypeIdUnderTest, reqDefId);

            var currentRowVersion = await RequirementTypesControllerTestsHelper.VoidRequirementDefinitionAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                reqDefId,
                reqDef.RowVersion);

            // Act
            var newRowVersion = await RequirementTypesControllerTestsHelper.UnvoidRequirementDefinitionAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                reqDefId,
                currentRowVersion);

            // Assert
            AssertRowVersionChange(currentRowVersion, newRowVersion);
            reqDef = await RequirementTypesControllerTestsHelper.GetRequirementDefinitionDetailsAsync(UserType.LibraryAdmin, TestFactory.PlantWithAccess, reqTypeIdUnderTest, reqDefId);

            Assert.IsFalse(reqDef.IsVoided);
        }
Ejemplo n.º 7
0
        public async Task DeleteRequirementDefinition_AsAdmin_ShouldDeleteRequirementDefinition()
        {
            // Arrange
            var reqTypeIdUnderTest = ReqTypeAIdUnderTest;
            var reqDefId           = await RequirementTypesControllerTestsHelper.CreateRequirementDefinitionAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                Guid.NewGuid().ToString());

            var reqDef = await RequirementTypesControllerTestsHelper.GetRequirementDefinitionDetailsAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                reqDefId);

            var currentRowVersion = await RequirementTypesControllerTestsHelper.VoidRequirementDefinitionAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                reqDefId,
                reqDef.RowVersion);

            // Act
            await RequirementTypesControllerTestsHelper.DeleteRequirementDefinitionAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                reqDefId,
                currentRowVersion);

            // Assert
            reqDef = await RequirementTypesControllerTestsHelper.GetRequirementDefinitionDetailsAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                reqDefId);

            Assert.IsNull(reqDef);
        }
Ejemplo n.º 8
0
        public async Task CreateRequirementDefinition_AsAdmin_ShouldCreateRequirementDefinitionWithField()
        {
            // Arrange
            var reqTypeIdUnderTest = ReqTypeAIdUnderTest;
            var title = Guid.NewGuid().ToString();
            var label = Guid.NewGuid().ToString();

            // Act
            var reqDefId = await RequirementTypesControllerTestsHelper.CreateRequirementDefinitionAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                title,
                new List <FieldDto>
            {
                new FieldDto
                {
                    FieldType = FieldType.Info,
                    Label     = label,
                    SortKey   = 20
                }
            });

            // Assert
            var reqDef = await RequirementTypesControllerTestsHelper.GetRequirementDefinitionDetailsAsync(
                UserType.LibraryAdmin,
                TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                reqDefId);

            Assert.IsNotNull(reqDef);
            Assert.AreEqual(title, reqDef.Title);
            Assert.IsNotNull(reqDef.Fields);
            Assert.AreEqual(1, reqDef.Fields.Count());
            Assert.AreEqual(label, reqDef.Fields.Single().Label);
        }
 public async Task CreateRequirementDefinition_AsAdmin_ShouldReturnBadRequest_WhenUnknownPlant()
 => await RequirementTypesControllerTestsHelper.CreateRequirementDefinitionAsync(
     UserType.LibraryAdmin, TestFactory.UnknownPlant,
     9999,
     "RequirementDefinition1",
     expectedStatusCode : HttpStatusCode.BadRequest,
     expectedMessageOnBadRequest : "is not a valid plant");
 public async Task DeleteRequirementDefinition_AsAdmin_ShouldReturnBadRequest_WhenUnknownPlant()
 => await RequirementTypesControllerTestsHelper.DeleteRequirementDefinitionAsync(
     UserType.LibraryAdmin, TestFactory.UnknownPlant,
     9999,
     8888,
     TestFactory.AValidRowVersion,
     HttpStatusCode.BadRequest,
     "is not a valid plant");
 public async Task UnvoidRequirementDefinition_AsHacker_ShouldReturnBadRequest_WhenUnknownPlant()
 => await RequirementTypesControllerTestsHelper.UnvoidRequirementDefinitionAsync(
     UserType.Hacker, TestFactory.UnknownPlant,
     9999,
     8888,
     TestFactory.AValidRowVersion,
     HttpStatusCode.BadRequest,
     "is not a valid plant");
 public async Task DeleteRequirementDefinition_AsAdmin_ShouldReturnBadRequest_WhenUnknownRequirementTypeOrRequirementDefinitionId()
 => await RequirementTypesControllerTestsHelper.DeleteRequirementDefinitionAsync(
     UserType.LibraryAdmin, TestFactory.PlantWithAccess,
     ReqTypeAIdUnderTest,
     ReqDefInReqTypeBIdUnderTest,     // req def in other RequirementType
     TestFactory.AValidRowVersion,
     HttpStatusCode.BadRequest,
     "Requirement type and/or requirement definition doesn't exist!");
 public async Task UpdateRequirementDefinition_AsAnonymous_ShouldReturnUnauthorized()
 => await RequirementTypesControllerTestsHelper.UpdateRequirementDefinitionAsync(
     UserType.Anonymous, TestFactory.UnknownPlant,
     9999,
     8888,
     Guid.NewGuid().ToString(),
     4,
     TestFactory.AValidRowVersion,
     expectedStatusCode : HttpStatusCode.Unauthorized);
 public async Task UpdateRequirementDefinition_AsPreserver_ShouldReturnForbidden_WhenPermissionMissing()
 => await RequirementTypesControllerTestsHelper.UpdateRequirementDefinitionAsync(
     UserType.Preserver, TestFactory.PlantWithAccess,
     9999,
     8888,
     Guid.NewGuid().ToString(),
     4,
     TestFactory.AValidRowVersion,
     expectedStatusCode : HttpStatusCode.Forbidden);
 public async Task UpdateRequirementDefinition_AsPreserver_ShouldReturnBadRequest_WhenUnknownReqDefId()
 => await RequirementTypesControllerTestsHelper.UpdateRequirementDefinitionAsync(
     UserType.LibraryAdmin, TestFactory.PlantWithAccess,
     ReqTypeAIdUnderTest,
     ReqDefInReqTypeBIdUnderTest,       // known ReqDefId, but under other ReqType
     Guid.NewGuid().ToString(),
     4,
     TestFactory.AValidRowVersion,
     expectedStatusCode : HttpStatusCode.BadRequest,
     expectedMessageOnBadRequest : "Requirement type and/or requirement definition doesn't exist!");
 public async Task UpdateRequirementDefinition_AsAdmin_ShouldReturnBadRequest_WhenUnknownPlant()
 => await RequirementTypesControllerTestsHelper.UpdateRequirementDefinitionAsync(
     UserType.LibraryAdmin, TestFactory.UnknownPlant,
     9999,
     8888,
     Guid.NewGuid().ToString(),
     4,
     TestFactory.AValidRowVersion,
     expectedStatusCode : HttpStatusCode.BadRequest,
     expectedMessageOnBadRequest : "is not a valid plant");
Ejemplo n.º 17
0
        public async Task GetRequirementTypes_AsAdmin_ShouldGetRequirementTypesWithReqDefs()
        {
            // Act
            var reqTypes = await RequirementTypesControllerTestsHelper.GetRequirementTypesAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess);

            // Assert
            Assert.IsNotNull(reqTypes);
            Assert.AreNotEqual(0, reqTypes.Count);
            var reqDef = reqTypes.First().RequirementDefinitions.FirstOrDefault();

            Assert.IsNotNull(reqDef);
        }
Ejemplo n.º 18
0
        public async Task UpdateRequirementDefinition_AsAdmin_ShouldUpdateFieldAndFieldRowVersion()
        {
            // Arrange
            var reqTypeIdUnderTest = ReqTypeAIdUnderTest;
            var reqDefIdUnderTest  = await RequirementTypesControllerTestsHelper.CreateRequirementDefinitionAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                Guid.NewGuid().ToString(),
                new List <FieldDto>
            {
                new FieldDto
                {
                    FieldType = FieldType.Info,
                    Label     = Guid.NewGuid().ToString(),
                    SortKey   = 20
                }
            });

            var reqDef = await RequirementTypesControllerTestsHelper.GetRequirementDefinitionDetailsAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                reqDefIdUnderTest);

            var fieldDetailsDto    = reqDef.Fields.Single();
            var oldFieldRowVersion = fieldDetailsDto.RowVersion;
            var newFieldLabel      = Guid.NewGuid().ToString();

            fieldDetailsDto.Label = newFieldLabel;

            // Act
            await RequirementTypesControllerTestsHelper.UpdateRequirementDefinitionAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                reqDef.Id,
                reqDef.Title,
                4,
                reqDef.RowVersion,
                reqDef.Fields.ToList());

            // Assert
            reqDef = await RequirementTypesControllerTestsHelper.GetRequirementDefinitionDetailsAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                reqDefIdUnderTest);

            fieldDetailsDto = reqDef.Fields.Single();
            AssertRowVersionChange(oldFieldRowVersion, fieldDetailsDto.RowVersion);
            Assert.AreEqual(newFieldLabel, fieldDetailsDto.Label);
        }
        public async Task UpdateRequirementDefinition_AsPreserver_ShouldReturnBadRequest_WhenUpdatingUnknownFieldId()
        {
            var reqTypeIdUnderTest      = ReqTypeAIdUnderTest;
            var reqDefIdUnderTest       = ReqDefIdUnderTest_ForReqDefWithCbField_InReqTypeA;
            var existingReqDefWithField = await RequirementTypesControllerTestsHelper.GetRequirementDefinitionDetailsAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                reqDefIdUnderTest);

            var newReqDefId = await RequirementTypesControllerTestsHelper.CreateRequirementDefinitionAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                Guid.NewGuid().ToString(),
                new List <FieldDto>
            {
                new FieldDto
                {
                    FieldType = FieldType.Info,
                    Label     = Guid.NewGuid().ToString(),
                    SortKey   = 20
                }
            });

            var newReqDefWithField = await RequirementTypesControllerTestsHelper.GetRequirementDefinitionDetailsAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                newReqDefId);

            var fieldsToUpdate = new List <FieldDetailsDto>();

            fieldsToUpdate.AddRange(existingReqDefWithField.Fields);

            // try to update a known field in another requirement definition
            fieldsToUpdate.Add(newReqDefWithField.Fields.Single());

            await RequirementTypesControllerTestsHelper.UpdateRequirementDefinitionAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                reqDefIdUnderTest,
                Guid.NewGuid().ToString(),
                4,
                TestFactory.AValidRowVersion,
                fieldsToUpdate,
                HttpStatusCode.BadRequest,
                "Field doesn't exist in requirement!");
        }
Ejemplo n.º 20
0
        public async Task TestInitialize()
        {
            var requirementTypes = await RequirementTypesControllerTestsHelper.GetRequirementTypesAsync(UserType.LibraryAdmin, TestFactory.PlantWithAccess);

            var reqTypeA = requirementTypes.Single(j => j.Code == KnownTestData.ReqTypeA);

            ReqTypeAIdUnderTest = reqTypeA.Id;
            ReqDefIdUnderTest_ForReqDefWithNoFields_InReqTypeA
                = reqTypeA.RequirementDefinitions.Single(rd => rd.Title == KnownTestData.ReqDefInReqTypeANoField).Id;
            ReqDefIdUnderTest_ForReqDefWithCbField_InReqTypeA
                = reqTypeA.RequirementDefinitions.Single(rd => rd.Title == KnownTestData.ReqDefInReqTypeAWithCbField).Id;

            var reqTypeB = requirementTypes.Single(j => j.Code == KnownTestData.ReqTypeB);

            ReqTypeBIdUnderTest         = reqTypeB.Id;
            ReqDefInReqTypeBIdUnderTest = reqTypeB.RequirementDefinitions.First().Id;
        }
Ejemplo n.º 21
0
        public async Task CreateRequirementDefinition_AsAdmin_ShouldCreateRequirementDefinition()
        {
            // Arrange
            var reqTypeIdUnderTest = ReqTypeAIdUnderTest;
            var title = Guid.NewGuid().ToString();

            // Act
            var reqDefId = await RequirementTypesControllerTestsHelper.CreateRequirementDefinitionAsync(
                UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                reqTypeIdUnderTest,
                title);

            // Assert
            var reqDef =
                await RequirementTypesControllerTestsHelper.GetRequirementDefinitionDetailsAsync(
                    UserType.LibraryAdmin, TestFactory.PlantWithAccess,
                    reqTypeIdUnderTest,
                    reqDefId);

            Assert.IsNotNull(reqDef);
            Assert.AreEqual(title, reqDef.Title);
            Assert.IsNotNull(reqDef.Fields);
            Assert.AreEqual(0, reqDef.Fields.Count());
        }
 public async Task CreateRequirementDefinition_AsPreserver_ShouldReturnForbidden_WhenPermissionMissing()
 => await RequirementTypesControllerTestsHelper.CreateRequirementDefinitionAsync(
     UserType.Preserver, TestFactory.PlantWithAccess,
     9999,
     "RequirementDefinition1",
     expectedStatusCode : HttpStatusCode.Forbidden);
 public async Task GetRequirementTypes_AsAdmin_ShouldReturnBadRequest_WhenUnknownPlant()
 => await RequirementTypesControllerTestsHelper.GetRequirementTypesAsync(
     UserType.LibraryAdmin, TestFactory.UnknownPlant,
     HttpStatusCode.BadRequest,
     "is not a valid plant");
 public async Task GetRequirementTypes_AsAdmin_ShouldReturnForbidden_WhenNoAccessToPlant()
 => await RequirementTypesControllerTestsHelper.GetRequirementTypesAsync(
     UserType.LibraryAdmin, TestFactory.PlantWithoutAccess,
     HttpStatusCode.Forbidden);
 public async Task CreateRequirementDefinition_AsAdmin_ShouldReturnForbidden_WhenNoAccessToPlant()
 => await RequirementTypesControllerTestsHelper.CreateRequirementDefinitionAsync(
     UserType.LibraryAdmin, TestFactory.PlantWithoutAccess,
     9999,
     "RequirementDefinition1",
     expectedStatusCode : HttpStatusCode.Forbidden);
 public async Task GetRequirementTypes_AsAnonymous_ShouldReturnUnauthorized()
 => await RequirementTypesControllerTestsHelper.GetRequirementTypesAsync(
     UserType.Anonymous, TestFactory.UnknownPlant,
     HttpStatusCode.Unauthorized);
 public async Task CreateRequirementDefinition_AsAnonymous_ShouldReturnUnauthorized()
 => await RequirementTypesControllerTestsHelper.CreateRequirementDefinitionAsync(
     UserType.Anonymous, TestFactory.UnknownPlant,
     9999,
     "RequirementDefinition1",
     expectedStatusCode : HttpStatusCode.Unauthorized);
 public async Task GetRequirementTypes_AsPreserver_ShouldReturnForbidden_WhenPermissionMissing()
 => await RequirementTypesControllerTestsHelper.GetRequirementTypesAsync(
     UserType.Preserver, TestFactory.PlantWithAccess,
     HttpStatusCode.Forbidden);