Index: Core/Common/src/Core.Common.Gui/Commands/GuiExportHandler.cs =================================================================== diff -u -r885ccb873f98643edb6cde218c5716e2093cb79d -r39295854150a78a5be03436eec21e1a2347fe54a --- Core/Common/src/Core.Common.Gui/Commands/GuiExportHandler.cs (.../GuiExportHandler.cs) (revision 885ccb873f98643edb6cde218c5716e2093cb79d) +++ Core/Common/src/Core.Common.Gui/Commands/GuiExportHandler.cs (.../GuiExportHandler.cs) (revision 39295854150a78a5be03436eec21e1a2347fe54a) @@ -106,7 +106,7 @@ { foreach (ExportInfo exportInfo in supportedExportInfos) { - selectExportInfoDialog.AddItemType(exportInfo.Name, + selectExportInfoDialog.AddItemType(GetItemName(exportInfo), exportInfo.Category, exportInfo.Image, null); @@ -121,6 +121,13 @@ return null; } + private static string GetItemName(ExportInfo exportInfo) + { + return exportInfo.FileFilterGenerator != null + ? $"{exportInfo.Name} (*.{exportInfo.FileFilterGenerator.Extension})" + : exportInfo.Name; + } + private void ExportItemUsingDialog(ExportInfo exportInfo, object source) { using (var saveFileDialog = new SaveFileDialog Index: Core/Common/src/Core.Common.Gui/Commands/GuiImportHandler.cs =================================================================== diff -u -rfae525350cc755ecc783bd4ac3fc13aed2e4ccaa -r39295854150a78a5be03436eec21e1a2347fe54a --- Core/Common/src/Core.Common.Gui/Commands/GuiImportHandler.cs (.../GuiImportHandler.cs) (revision fae525350cc755ecc783bd4ac3fc13aed2e4ccaa) +++ Core/Common/src/Core.Common.Gui/Commands/GuiImportHandler.cs (.../GuiImportHandler.cs) (revision 39295854150a78a5be03436eec21e1a2347fe54a) @@ -120,7 +120,10 @@ { foreach (ImportInfo importInfo in supportedImportInfos) { - selectImporterDialog.AddItemType(importInfo.Name, importInfo.Category, importInfo.Image, null); + selectImporterDialog.AddItemType(GetItemName(importInfo), + importInfo.Category, + importInfo.Image, + null); } if (selectImporterDialog.ShowDialog() == DialogResult.OK) @@ -132,6 +135,13 @@ return null; } + private static string GetItemName(ImportInfo importInfo) + { + return importInfo.FileFilterGenerator != null + ? $"{importInfo.Name} (*.{importInfo.FileFilterGenerator.Extension})" + : importInfo.Name; + } + private void ImportItemsUsingDialog(ImportInfo importInfo, object target) { string fileDialogResult = inquiryHelper.GetSourceFileLocation(importInfo.FileFilterGenerator.Filter); Index: Core/Common/test/Core.Common.Gui.Test/Commands/GuiExportHandlerTest.cs =================================================================== diff -u -r885ccb873f98643edb6cde218c5716e2093cb79d -r39295854150a78a5be03436eec21e1a2347fe54a --- Core/Common/test/Core.Common.Gui.Test/Commands/GuiExportHandlerTest.cs (.../GuiExportHandlerTest.cs) (revision 885ccb873f98643edb6cde218c5716e2093cb79d) +++ Core/Common/test/Core.Common.Gui.Test/Commands/GuiExportHandlerTest.cs (.../GuiExportHandlerTest.cs) (revision 39295854150a78a5be03436eec21e1a2347fe54a) @@ -291,9 +291,10 @@ mockRepository.VerifyAll(); } - [Test] + [TestCase(true)] + [TestCase(false)] [Apartment(ApartmentState.STA)] - public void ExportFrom_MultipleSupportedExportersAvailableWithCustomSelectionDialogStyling_GivesExpectedSelectionDialog() + public void ExportFrom_MultipleSupportedExportersAvailableWithCustomSelectionDialogStyling_GivesExpectedSelectionDialog(bool hasFileFilterGenerator) { // Setup var mockRepository = new MockRepository(); @@ -318,20 +319,26 @@ dialog.Close(); }; + var exportInfo1 = new ExportInfo + { + Name = "Name 1", + Category = "Category 1", + Image = Resources.Busy_indicator, + FileFilterGenerator = hasFileFilterGenerator ? new FileFilterGenerator("extension 1") : null + }; + + var exportInfo2 = new ExportInfo + { + Name = "Name 2", + Category = "Category 2", + Image = Resources.DeleteIcon, + FileFilterGenerator = hasFileFilterGenerator ? new FileFilterGenerator("extension 2") : null + }; + var exportHandler = new GuiExportHandler(mainWindow, new List { - new ExportInfo - { - Name = "Name 1", - Category = "Category 1", - Image = Resources.Busy_indicator - }, - new ExportInfo - { - Name = "Name 2", - Category = "Category 2", - Image = Resources.DeleteIcon - } + exportInfo1, + exportInfo2 }); // Call @@ -341,10 +348,16 @@ Assert.AreEqual("Kies wat u wilt exporteren", dialogText); Assert.AreEqual(2, listViewItems.Count); - Assert.AreEqual("Name 1", listViewItems[0].Name); - Assert.AreEqual("Category 1", listViewItems[0].Group); - Assert.AreEqual("Name 2", listViewItems[1].Name); - Assert.AreEqual("Category 2", listViewItems[1].Group); + string expectedItemName1 = hasFileFilterGenerator + ? $"{exportInfo1.Name} (*.{exportInfo1.FileFilterGenerator.Extension})" + : exportInfo1.Name; + Assert.AreEqual(expectedItemName1, listViewItems[0].Name); + Assert.AreEqual(exportInfo1.Category, listViewItems[0].Group); + string expectedItemName2 = hasFileFilterGenerator + ? $"{exportInfo2.Name} (*.{exportInfo2.FileFilterGenerator.Extension})" + : exportInfo2.Name; + Assert.AreEqual(expectedItemName2, listViewItems[1].Name); + Assert.AreEqual(exportInfo2.Category, listViewItems[1].Group); mockRepository.VerifyAll(); } Index: Core/Common/test/Core.Common.Gui.Test/Commands/GuiImportHandlerTest.cs =================================================================== diff -u -rfae525350cc755ecc783bd4ac3fc13aed2e4ccaa -r39295854150a78a5be03436eec21e1a2347fe54a --- Core/Common/test/Core.Common.Gui.Test/Commands/GuiImportHandlerTest.cs (.../GuiImportHandlerTest.cs) (revision fae525350cc755ecc783bd4ac3fc13aed2e4ccaa) +++ Core/Common/test/Core.Common.Gui.Test/Commands/GuiImportHandlerTest.cs (.../GuiImportHandlerTest.cs) (revision 39295854150a78a5be03436eec21e1a2347fe54a) @@ -430,19 +430,22 @@ mockRepository.VerifyAll(); } - [Test] - public void ImportOn_MultipleSupportedImportInfoAvailable_ShowsDialogWithOptions() + [TestCase(true)] + [TestCase(false)] + public void ImportOn_MultipleSupportedImportInfoAvailable_ShowsDialogWithOptions(bool hasFileFilterGenerator) { // Setup const string importInfoAName = "nameA"; var importInfoA = new ImportInfo { - Name = importInfoAName + Name = importInfoAName, + FileFilterGenerator = hasFileFilterGenerator ? new FileFilterGenerator("extensionA") : null }; const string importInfoBName = "nameB"; var importInfoB = new ImportInfo { - Name = importInfoBName + Name = importInfoBName, + FileFilterGenerator = hasFileFilterGenerator ? new FileFilterGenerator("extensionB") : null }; var mockRepository = new MockRepository(); @@ -474,8 +477,15 @@ // Assert Assert.AreEqual(2, listViewItems.Length); - Assert.AreEqual(importInfoAName, listViewItems[0].Name); - Assert.AreEqual(importInfoBName, listViewItems[1].Name); + string expectedItemNameA = hasFileFilterGenerator + ? $"{importInfoA.Name} (*.{importInfoA.FileFilterGenerator.Extension})" + : importInfoA.Name; + Assert.AreEqual(expectedItemNameA, listViewItems[0].Name); + string expectedItemNameB = hasFileFilterGenerator + ? $"{importInfoB.Name} (*.{importInfoB.FileFilterGenerator.Extension})" + : importInfoB.Name; + Assert.AreEqual(expectedItemNameB, listViewItems[1].Name); + mockRepository.VerifyAll(); } }