Ejemplo n.º 1
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 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_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_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.º 6
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!");
        }