Index: Core/Common/test/Core.Common.Gui.Test/Commands/GuiExportHandlerTest.cs =================================================================== diff -u -r3e0ac8e7988d37424638e2b768e15a783897e126 -rf566e21cccf5b760e3f3856065a49917fde1b877 --- Core/Common/test/Core.Common.Gui.Test/Commands/GuiExportHandlerTest.cs (.../GuiExportHandlerTest.cs) (revision 3e0ac8e7988d37424638e2b768e15a783897e126) +++ Core/Common/test/Core.Common.Gui.Test/Commands/GuiExportHandlerTest.cs (.../GuiExportHandlerTest.cs) (revision f566e21cccf5b760e3f3856065a49917fde1b877) @@ -74,11 +74,9 @@ public void ExportFrom_NoSupportedExporterAvailable_GivesMessageBoxAndLogsMessage() { // Setup - var fileImporters = new List - { - new UnsupportedFileExporter() - }; var mockRepository = new MockRepository(); + var unsupportedFileExporter = mockRepository.Stub(); + unsupportedFileExporter.Stub(i => i.SupportedItemType).Return(typeof(String)); // Wrong type var mainWindow = mockRepository.Stub(); mockRepository.ReplayAll(); @@ -93,6 +91,10 @@ messageBox.ClickOk(); }; + var fileImporters = new List + { + unsupportedFileExporter + }; var exportHandler = new GuiExportHandler(mainWindow, fileImporters); // Call @@ -110,42 +112,100 @@ public void ExportFrom_SupportedExporterAvailableCancelClicked_AbortsExportAndLogsMessage() { // Setup + var mockRepository = new MockRepository(); + var mainWindow = mockRepository.Stub(); + mockRepository.ReplayAll(); + + ModalFormHandler = (name, wnd, form) => + { + var messageBox = new SaveFileDialogTester(wnd); + messageBox.ClickCancel(); + }; + var fileImporters = new List { new IntegerFileExporter() }; + var exportHandler = new GuiExportHandler(mainWindow, fileImporters); + + // Call + Action call = () => exportHandler.ExportFrom(1234); + + // Assert + TestHelper.AssertLogMessageIsGenerated(call, "Exporteren gestart."); + mockRepository.VerifyAll(); + } + + [Test] + [RequiresSTA] + public void ExportFrom_SupportedExporterAvailableSaveClicked_ExportsAndLogsMessages() + { + // Setup var mockRepository = new MockRepository(); var mainWindow = mockRepository.Stub(); mockRepository.ReplayAll(); + var exportFile = TestHelper.GetTestDataPath(TestDataPath.Core.Common.Gui, "exportFile.txt"); ModalFormHandler = (name, wnd, form) => { var messageBox = new SaveFileDialogTester(wnd); - messageBox.ClickCancel(); + messageBox.SaveFile(exportFile); }; + var fileImporters = new List + { + new IntegerFileExporter() + }; + var exportHandler = new GuiExportHandler(mainWindow, fileImporters); // Call Action call = () => exportHandler.ExportFrom(1234); // Assert - TestHelper.AssertLogMessageIsGenerated(call, "Exporteren gestart."); + TestHelper.AssertLogMessagesAreGenerated(call, new[] + { + "Exporteren gestart.", + "Exporteren afgerond." + }); mockRepository.VerifyAll(); } - private class UnsupportedFileExporter : IFileExporter + [Test] + [RequiresSTA] + public void ExportFrom_SupportedAndUnsupportedExporterAvailableSaveClicked_ExportsAndLogsMessages() { - public string Name { get; private set; } - public string Category { get; private set; } - public Bitmap Image { get; private set; } - public Type SupportedItemType { get; private set; } - public string FileFilter { get; private set; } + // Setup + var mockRepository = new MockRepository(); + var mainWindow = mockRepository.Stub(); + var unsupportedFileExporter = mockRepository.Stub(); + unsupportedFileExporter.Stub(i => i.SupportedItemType).Return(typeof(String)); // Wrong type + mockRepository.ReplayAll(); - public bool Export(object sourceItem, string filePath) + var exportFile = TestHelper.GetTestDataPath(TestDataPath.Core.Common.Gui, "exportFile.txt"); + ModalFormHandler = (name, wnd, form) => { - return false; - } + var messageBox = new SaveFileDialogTester(wnd); + messageBox.SaveFile(exportFile); + }; + + var fileImporters = new List + { + unsupportedFileExporter, + new IntegerFileExporter() + }; + var exportHandler = new GuiExportHandler(mainWindow, fileImporters); + + // Call + Action call = () => exportHandler.ExportFrom(1234); + + // Assert + TestHelper.AssertLogMessagesAreGenerated(call, new[] + { + "Exporteren gestart.", + "Exporteren afgerond." + }); + mockRepository.VerifyAll(); } private class IntegerFileExporter : IFileExporter @@ -169,7 +229,13 @@ } } - public string FileFilter { get; private set; } + public string FileFilter + { + get + { + return "Text files (*.txt)|*.txt"; + } + } public bool Export(object sourceItem, string filePath) { Index: Core/Common/test/Core.Common.Gui.Test/Commands/GuiImportHandlerTest.cs =================================================================== diff -u -r3e0ac8e7988d37424638e2b768e15a783897e126 -rf566e21cccf5b760e3f3856065a49917fde1b877 --- Core/Common/test/Core.Common.Gui.Test/Commands/GuiImportHandlerTest.cs (.../GuiImportHandlerTest.cs) (revision 3e0ac8e7988d37424638e2b768e15a783897e126) +++ Core/Common/test/Core.Common.Gui.Test/Commands/GuiImportHandlerTest.cs (.../GuiImportHandlerTest.cs) (revision f566e21cccf5b760e3f3856065a49917fde1b877) @@ -99,12 +99,14 @@ mockRepository.VerifyAll(); } - private class UnsupportedFileImporter : IFileImporter { + private class UnsupportedFileImporter : IFileImporter + { public string Name { get; private set; } public string Category { get; private set; } public Bitmap Image { get; private set; } public string FileFilter { get; private set; } public ProgressChangedDelegate ProgressChanged { get; set; } + public bool CanImportOn(object targetItem) { return false; @@ -115,13 +117,8 @@ return false; } - public void Cancel() - { - } - - public void DoPostImportUpdates(object targetItem) - { - } + public void Cancel() {} + public void DoPostImportUpdates(object targetItem) {} } } } \ No newline at end of file Index: Core/Common/test/Core.Common.TestUtil/TestDataPath.cs =================================================================== diff -u -r773a5af872870723a798116250805f47f165d966 -rf566e21cccf5b760e3f3856065a49917fde1b877 --- Core/Common/test/Core.Common.TestUtil/TestDataPath.cs (.../TestDataPath.cs) (revision 773a5af872870723a798116250805f47f165d966) +++ Core/Common/test/Core.Common.TestUtil/TestDataPath.cs (.../TestDataPath.cs) (revision f566e21cccf5b760e3f3856065a49917fde1b877) @@ -49,6 +49,7 @@ public static class Common { public static readonly TestDataPath Base = System.IO.Path.Combine("Core", "Common", "test", "Core.Common.Base.Test"); + public static readonly TestDataPath Gui = System.IO.Path.Combine("Core", "Common", "test", "Core.Common.Gui.Test"); public static readonly TestDataPath Utils = System.IO.Path.Combine("Core", "Common", "test", "Core.Common.Utils.Test"); public static readonly TestDataPath IO = System.IO.Path.Combine("Core", "Common", "test", "Core.Common.IO.Test"); }