Index: Core/Common/test/Core.Common.Gui.Test/Commands/GuiImportHandlerTest.cs =================================================================== diff -u -r29fbb2961f861bf66f1e5da3f413180e4208bfe4 -r64a0676b0e2fbfea7a17f8074ee35550b9cf9b99 --- Core/Common/test/Core.Common.Gui.Test/Commands/GuiImportHandlerTest.cs (.../GuiImportHandlerTest.cs) (revision 29fbb2961f861bf66f1e5da3f413180e4208bfe4) +++ Core/Common/test/Core.Common.Gui.Test/Commands/GuiImportHandlerTest.cs (.../GuiImportHandlerTest.cs) (revision 64a0676b0e2fbfea7a17f8074ee35550b9cf9b99) @@ -20,6 +20,8 @@ // All rights reserved. using System; +using System.Collections; +using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using Core.Common.Base.IO; @@ -39,7 +41,7 @@ public class GuiImportHandlerTest : NUnitFormTest { [Test] - public void Constructor_WithoutDialogParent_ThrowsArgumentNullException() + public void Constructor_DialogParentNull_ThrowsArgumentNullException() { // Setup var mockRepository = new MockRepository(); @@ -56,7 +58,7 @@ } [Test] - public void Constructor_WithoutImportInfos_ThrowsArgumentNullException() + public void Constructor_ImportInfosNull_ThrowsArgumentNullException() { // Setup var mockRepository = new MockRepository(); @@ -74,7 +76,7 @@ } [Test] - public void Constructor_WithoutInquiryHelper_ThrowsArgumentNullException() + public void Constructor_InquiryHelperNull_ThrowsArgumentNullException() { // Setup var mockRepository = new MockRepository(); @@ -91,7 +93,7 @@ } [Test] - public void GetSupportedImportInfos_NoImportInfosForTarget_ReturnFalse() + public void GetSupportedImportInfos_NoImportInfosForTarget_ReturnsEmptyEnumeration() { // Setup var mocks = new MockRepository(); @@ -102,120 +104,63 @@ var commandHandler = new GuiImportHandler(dialogParent, Enumerable.Empty(), inquiryHelper); // Call - bool isImportPossible = commandHandler.CanImportOn(new object()); + IEnumerable supportedImportInfos = commandHandler.GetSupportedImportInfos(new object()); // Assert - Assert.IsFalse(isImportPossible); + CollectionAssert.IsEmpty(supportedImportInfos); mocks.VerifyAll(); } [Test] - public void GetSupportedImportInfos_OneImportInfoForTarget_ReturnTrue() + [TestCase(true, true)] + [TestCase(true, false)] + [TestCase(false, true)] + [TestCase(false, false)] + public void GetSupportedImportInfos_MultipleImportInfosForTarget_ReturnsEnumerationBasedOnEnabledState( + bool firstImportInfoEnabled, + bool secondImportInfoEnabled) { // Setup - var target = new object(); - var mocks = new MockRepository(); var dialogParent = mocks.Stub(); var inquiryHelper = mocks.Stub(); mocks.ReplayAll(); - var commandHandler = new GuiImportHandler(dialogParent, new ImportInfo[] + var firstImportInfo = new ImportInfo { - new ImportInfo() - }, inquiryHelper); + Name = "1", + IsEnabled = o => firstImportInfoEnabled + }; - // Call - bool isImportPossible = commandHandler.CanImportOn(target); + var secondImportInfo = new ImportInfo + { + Name = "2", + IsEnabled = o => secondImportInfoEnabled + }; - // Assert - Assert.IsTrue(isImportPossible); - mocks.VerifyAll(); - } - - [Test] - public void GetSupportedImportInfos_OneImportInfoForTargetThatIsNotEnabled_ReturnFalse() - { - // Setup - var target = new object(); - var mocks = new MockRepository(); - var dialogParent = mocks.Stub(); - var inquiryHelper = mocks.Stub(); - mocks.ReplayAll(); - var commandHandler = new GuiImportHandler(dialogParent, new ImportInfo[] { - new ImportInfo - { - IsEnabled = data => false - } + firstImportInfo, + secondImportInfo }, inquiryHelper); // Call - bool isImportPossible = commandHandler.CanImportOn(target); + IEnumerable supportedImportInfos = commandHandler.GetSupportedImportInfos(new object()); // Assert - Assert.IsFalse(isImportPossible); - mocks.VerifyAll(); - } + var expectedImportInfos = new List(); - [Test] - public void GetSupportedImportInfos_MultipleImportInfosForTargetWhereOneEnabled_ReturnTrue() - { - // Setup - var target = new object(); - var mocks = new MockRepository(); - var dialogParent = mocks.Stub(); - var inquiryHelper = mocks.Stub(); - mocks.ReplayAll(); - - var commandHandler = new GuiImportHandler(dialogParent, new ImportInfo[] + if (firstImportInfoEnabled) { - new ImportInfo - { - IsEnabled = data => false - }, - new ImportInfo - { - IsEnabled = data => true - } - }, inquiryHelper); + expectedImportInfos.Add(firstImportInfo); + } - // Call - bool isImportPossible = commandHandler.CanImportOn(target); - - // Assert - Assert.IsTrue(isImportPossible); - mocks.VerifyAll(); - } - - [Test] - public void GetSupportedImportInfos_MultipleImportInfosForTargetThatCannotBeUsedForImporting_ReturnFalse() - { - // Setup - var target = new object(); - var mocks = new MockRepository(); - var dialogParent = mocks.Stub(); - var inquiryHelper = mocks.Stub(); - mocks.ReplayAll(); - - var commandHandler = new GuiImportHandler(dialogParent, new ImportInfo[] + if (secondImportInfoEnabled) { - new ImportInfo - { - IsEnabled = data => false - }, - new ImportInfo - { - IsEnabled = data => false - } - }, inquiryHelper); + expectedImportInfos.Add(secondImportInfo); + } - // Call - bool isImportPossible = commandHandler.CanImportOn(target); - - // Assert - Assert.IsFalse(isImportPossible); + CollectionAssert.AreEqual(expectedImportInfos, supportedImportInfos, new ImportInfoNameComparer()); mocks.VerifyAll(); } @@ -349,7 +294,7 @@ } [Test] - public void UpdateOn_InquiryHelperReturnsNoPath_UpdateCancelledWithLogMessage() + public void ImportOn_InquiryHelperReturnsNoPath_ImportCancelledWithLogMessage() { // Setup var generator = new FileFilterGenerator(); @@ -490,5 +435,13 @@ mockRepository.VerifyAll(); } + + private class ImportInfoNameComparer : IComparer + { + public int Compare(object x, object y) + { + return string.CompareOrdinal(((ImportInfo) x)?.Name, ((ImportInfo) y)?.Name); + } + } } } \ No newline at end of file