public async Task DeleteRequirementDefinition_AsPreserver_ShouldReturnForbidden_WhenPermissionMissing() => await RequirementTypesControllerTestsHelper.DeleteRequirementDefinitionAsync( UserType.Preserver, TestFactory.PlantWithAccess, 9999, 8888, TestFactory.AValidRowVersion, HttpStatusCode.Forbidden);
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);
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); }
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); }
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");
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); }
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!"); }
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; }
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);