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");
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!"); }