Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/RingtoetsGuiPluginTest.cs =================================================================== diff -u -raf42240385db3d3f04bca830513c7464e6f74668 -r7709ae832723e3dd8499b674a7c78c75bae8e5d7 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/RingtoetsGuiPluginTest.cs (.../RingtoetsGuiPluginTest.cs) (revision af42240385db3d3f04bca830513c7464e6f74668) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/RingtoetsGuiPluginTest.cs (.../RingtoetsGuiPluginTest.cs) (revision 7709ae832723e3dd8499b674a7c78c75bae8e5d7) @@ -435,5 +435,49 @@ Assert.AreEqual(1, importers.Count(i => i is ReferenceLineImporter)); Assert.AreEqual(1, importers.Count(i => i is FailureMechanismSectionsImporter)); } + + [Test] + public void GetDataItemInfos_ReturnsExpectedDataItemDefinitions() + { + // Setup + var plugin = new RingtoetsGuiPlugin(); + + // Call + var dataItemDefinitions = plugin.GetDataItemInfos().ToArray(); + + // Assert + Assert.AreEqual(1, dataItemDefinitions.Length); + + DataItemInfo assessmentSectionDataItemDefinition = dataItemDefinitions.Single(did => did.ValueType == typeof(AssessmentSection)); + Assert.AreEqual("Traject", assessmentSectionDataItemDefinition.Name); + Assert.AreEqual("Algemeen", assessmentSectionDataItemDefinition.Category); + TestHelper.AssertImagesAreEqual(RingtoetsFormsResources.AssessmentSectionFolderIcon, assessmentSectionDataItemDefinition.Image); + Assert.IsNull(assessmentSectionDataItemDefinition.AdditionalOwnerCheck); + Assert.IsInstanceOf(assessmentSectionDataItemDefinition.CreateData(new Project())); + } + + [Test] + public void WhenAddingAssessmentSection_GivenProjectHasAssessmentSection_ThenAddedAssessmentSectionHasUniqueName() + { + // Setup + var project = new Project(); + var plugin = new RingtoetsGuiPlugin(); + AddAssessmentSectionToProject(project, plugin); + + // Call + AddAssessmentSectionToProject(project, plugin); + + // Assert + CollectionAssert.AllItemsAreUnique(project.Items.Cast().Select(section => section.Name)); + } + + private void AddAssessmentSectionToProject(Project project, RingtoetsGuiPlugin plugin) + { + var itemToAdd = plugin.GetDataItemInfos() + .First(di => di.ValueType == typeof(AssessmentSection)) + .CreateData(project); + + project.Items.Add(itemToAdd); + } } } \ No newline at end of file