public async Task HandleGetRequirementTypeByIdQuery_KnownId_ShouldReturnRequirementTypeWithAllPropertiesSet() { using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider)) { var dut = new GetRequirementTypeByIdQueryHandler(context); var result = await dut.Handle(new GetRequirementTypeByIdQuery(_requirementType.Id), default); var requirementType = result.Data; Assert.AreEqual(_requirementType.Code, requirementType.Code); Assert.AreEqual(_requirementType.Title, requirementType.Title); Assert.AreEqual(_requirementType.SortKey, requirementType.SortKey); Assert.IsFalse(requirementType.IsVoided); var requirementDefinitions = requirementType.RequirementDefinitions.ToList(); Assert.AreEqual(5, requirementDefinitions.Count); var requirementDefWithoutFieldDto = requirementDefinitions.Single(rd => rd.Id == _requirementDefWithoutField.Id); AssertRequirementDefinition(requirementDefWithoutFieldDto, _requirementDefWithoutField, null, false, false); var requirementDefWithInfoDto = requirementDefinitions.Single(rd => rd.Id == _requirementDefWithInfo.Id); AssertRequirementDefinition(requirementDefWithInfoDto, _requirementDefWithInfo, _infoField, false, true); var requirementDefWithNumberDto = requirementDefinitions.Single(rd => rd.Id == _requirementDefWithNumber.Id); AssertRequirementDefinition(requirementDefWithNumberDto, _requirementDefWithNumber, _numberField, true, true); var requirementDefWithCheckboxDto = requirementDefinitions.Single(rd => rd.Id == _requirementDefWithCheckbox.Id); AssertRequirementDefinition(requirementDefWithCheckboxDto, _requirementDefWithCheckbox, _checkboxField, true, true); var requirementDefWithAttachment = requirementDefinitions.Single(rd => rd.Id == _requirementDefWithAttachment.Id); AssertRequirementDefinition(requirementDefWithAttachment, _requirementDefWithAttachment, _attachmentField, true, true); } }
public async Task HandleGetRequirementTypeByIdQuery_WithTagUsage_ShouldSetDefinitionInUse() { using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider)) { var dut = new GetRequirementTypeByIdQueryHandler(context); var result = await dut.Handle(new GetRequirementTypeByIdQuery(_requirementType.Id), default); var reqDef = result.Data.RequirementDefinitions.Single(rd => rd.Id == _requirementDefWithoutField.Id); Assert.IsFalse(reqDef.IsInUse); var project = AddProject(context, "P", "Project description"); var journey = AddJourneyWithStep(context, "J", "S1", AddMode(context, "M1", false), AddResponsible(context, "R1")); AddTag(context, project, TagType.Standard, "TagNo", "Tag description", journey.Steps.First(), new List <TagRequirement> { new TagRequirement(TestPlant, 2, _requirementDefWithoutField) }); } using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider)) { var dut = new GetRequirementTypeByIdQueryHandler(context); var result = await dut.Handle(new GetRequirementTypeByIdQuery(_requirementType.Id), default); var reqDef = result.Data.RequirementDefinitions.Single(rd => rd.Id == _requirementDefWithoutField.Id); Assert.IsTrue(reqDef.IsInUse); } }
public async Task HandleGetRequirementTypeByIdQuery_UnknownId_ShouldReturnNull() { using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider)) { var dut = new GetRequirementTypeByIdQueryHandler(context); var result = await dut.Handle(new GetRequirementTypeByIdQuery(246), default); Assert.IsNull(result.Data); } }
public async Task HandleGetRequirementTypeByIdQuery_WithoutDefinition_ShouldNotSetRequirementTypeInUse() { using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider)) { var dut = new GetRequirementTypeByIdQueryHandler(context); var result = await dut.Handle(new GetRequirementTypeByIdQuery(_requirementTypeWithoutDefinition.Id), default); Assert.IsFalse(result.Data.IsInUse); } }
public async Task HandleGetRequirementTypeByIdQuery_AfterPreservationRecorded_ShouldSetFieldInUse() { using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider)) { var dut = new GetRequirementTypeByIdQueryHandler(context); var result = await dut.Handle(new GetRequirementTypeByIdQuery(_requirementType.Id), default); var reqDef = result.Data.RequirementDefinitions.Single(rd => rd.Id == _requirementDefWithCheckbox.Id); Assert.IsFalse(reqDef.Fields.Single().IsInUse); var journey = AddJourneyWithStep(context, "J1", "S", AddMode(context, "M1", false), AddResponsible(context, "R1")); var tagRequirement = new TagRequirement(TestPlant, 2, _requirementDefWithCheckbox); var tag = new Tag(TestPlant, TagType.Standard, "TagNo", "Description", journey.Steps.ElementAt(0), new List <TagRequirement> { tagRequirement }); tag.StartPreservation(); context.Tags.Add(tag); context.SaveChangesAsync().Wait(); tagRequirement.RecordCheckBoxValues( new Dictionary <int, bool> { { _checkboxField.Id, true } }, _requirementDefWithCheckbox); context.SaveChangesAsync().Wait(); } using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider)) { var dut = new GetRequirementTypeByIdQueryHandler(context); var result = await dut.Handle(new GetRequirementTypeByIdQuery(_requirementType.Id), default); var reqDef = result.Data.RequirementDefinitions.Single(rd => rd.Id == _requirementDefWithCheckbox.Id); Assert.IsTrue(reqDef.Fields.Single().IsInUse); } }
public async Task HandleGetRequirementTypeByIdQuery_WithTagFunctionUsage_ShouldSetDefinitionInUse() { using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider)) { var dut = new GetRequirementTypeByIdQueryHandler(context); var result = await dut.Handle(new GetRequirementTypeByIdQuery(_requirementType.Id), default); var reqDef = result.Data.RequirementDefinitions.Single(rd => rd.Id == _requirementDefWithoutField.Id); Assert.IsFalse(reqDef.IsInUse); var tfWithRequirement = AddTagFunction(context, "TFC2", "RC1"); tfWithRequirement.AddRequirement(new TagFunctionRequirement(TestPlant, 4, _requirementDefWithoutField)); context.SaveChangesAsync().Wait(); } using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider)) { var dut = new GetRequirementTypeByIdQueryHandler(context); var result = await dut.Handle(new GetRequirementTypeByIdQuery(_requirementType.Id), default); var reqDef = result.Data.RequirementDefinitions.Single(rd => rd.Id == _requirementDefWithoutField.Id); Assert.IsTrue(reqDef.IsInUse); } }