Index: Core/Common/src/Core.Common.Gui/Helpers/ExportHelper.cs
===================================================================
diff -u -rdbe36eff2b631d29bac3c1d2a360d58a236cbfc3 -r3318b4ee38520ce9232d5514736d071b32e1f9b2
--- Core/Common/src/Core.Common.Gui/Helpers/ExportHelper.cs (.../ExportHelper.cs) (revision dbe36eff2b631d29bac3c1d2a360d58a236cbfc3)
+++ Core/Common/src/Core.Common.Gui/Helpers/ExportHelper.cs (.../ExportHelper.cs) (revision 3318b4ee38520ce9232d5514736d071b32e1f9b2)
@@ -30,5 +30,22 @@
return inquiryHelper.GetTargetFileLocation(fileFilterGenerator.Filter, null);
}
+
+ ///
+ /// Gets the folder path to export to.
+ ///
+ /// Helper responsible for performing information inquiries.
+ /// A path to a folder, or null if no location was chosen.
+ /// Thrown when
+ /// is null.
+ public static string GetFolderPath(IInquiryHelper inquiryHelper)
+ {
+ if (inquiryHelper == null)
+ {
+ throw new ArgumentNullException(nameof(inquiryHelper));
+ }
+
+ return inquiryHelper.GetTargetFolderLocation();
+ }
}
}
\ No newline at end of file
Index: Core/Common/test/Core.Common.Gui.Test/Helpers/ExportHelperTest.cs
===================================================================
diff -u -rdbe36eff2b631d29bac3c1d2a360d58a236cbfc3 -r3318b4ee38520ce9232d5514736d071b32e1f9b2
--- Core/Common/test/Core.Common.Gui.Test/Helpers/ExportHelperTest.cs (.../ExportHelperTest.cs) (revision dbe36eff2b631d29bac3c1d2a360d58a236cbfc3)
+++ Core/Common/test/Core.Common.Gui.Test/Helpers/ExportHelperTest.cs (.../ExportHelperTest.cs) (revision 3318b4ee38520ce9232d5514736d071b32e1f9b2)
@@ -58,5 +58,36 @@
Assert.AreEqual(expectedFilePath, filePath);
mocks.VerifyAll();
}
+
+ [Test]
+ public void GetFolderPath_InquiryHelperNull_ThrowsArgumentNullException()
+ {
+ // Call
+ void Call() => ExportHelper.GetFolderPath(null);
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("inquiryHelper", exception.ParamName);
+ }
+
+ [Test]
+ [TestCase(null)]
+ [TestCase("C:/test")]
+ public void GetFolderPath_Always_ReturnsSelectedFolderPath(string expectedFilePath)
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var inquiryHelper = mocks.StrictMock();
+ inquiryHelper.Expect(ih => ih.GetTargetFolderLocation())
+ .Return(expectedFilePath);
+ mocks.ReplayAll();
+
+ // Call
+ string filePath = ExportHelper.GetFolderPath(inquiryHelper);
+
+ // Assert
+ Assert.AreEqual(expectedFilePath, filePath);
+ mocks.VerifyAll();
+ }
}
}
\ No newline at end of file