summaryrefslogtreecommitdiff
path: root/src/SMAPI.Tests/Toolkit
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <github@jplamondonw.com>2018-08-01 11:07:29 -0400
committerJesse Plamondon-Willard <github@jplamondonw.com>2018-08-01 11:07:29 -0400
commit60b41195778af33fd609eab66d9ae3f1d1165e8f (patch)
tree7128b906d40e94c56c34ed6058f27bc31c31a08b /src/SMAPI.Tests/Toolkit
parentb9bc1a6d17cafa0a97b46ffecda432cfc2f23b51 (diff)
parent52cf953f685c65b2b6814e375ec9a5ffa03c440a (diff)
downloadSMAPI-60b41195778af33fd609eab66d9ae3f1d1165e8f.tar.gz
SMAPI-60b41195778af33fd609eab66d9ae3f1d1165e8f.tar.bz2
SMAPI-60b41195778af33fd609eab66d9ae3f1d1165e8f.zip
Merge branch 'develop' into stable
Diffstat (limited to 'src/SMAPI.Tests/Toolkit')
-rw-r--r--src/SMAPI.Tests/Toolkit/PathUtilitiesTests.cs70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/SMAPI.Tests/Toolkit/PathUtilitiesTests.cs b/src/SMAPI.Tests/Toolkit/PathUtilitiesTests.cs
new file mode 100644
index 00000000..229b9a14
--- /dev/null
+++ b/src/SMAPI.Tests/Toolkit/PathUtilitiesTests.cs
@@ -0,0 +1,70 @@
+using NUnit.Framework;
+using StardewModdingAPI.Toolkit.Utilities;
+
+namespace StardewModdingAPI.Tests.Toolkit
+{
+ /// <summary>Unit tests for <see cref="PathUtilities"/>.</summary>
+ [TestFixture]
+ public class PathUtilitiesTests
+ {
+ /*********
+ ** Unit tests
+ *********/
+ [Test(Description = "Assert that GetSegments returns the expected values.")]
+ [TestCase("", ExpectedResult = "")]
+ [TestCase("/", ExpectedResult = "")]
+ [TestCase("///", ExpectedResult = "")]
+ [TestCase("/usr/bin", ExpectedResult = "usr|bin")]
+ [TestCase("/usr//bin//", ExpectedResult = "usr|bin")]
+ [TestCase("/usr//bin//.././boop.exe", ExpectedResult = "usr|bin|..|.|boop.exe")]
+ [TestCase(@"C:", ExpectedResult = "C:")]
+ [TestCase(@"C:/boop", ExpectedResult = "C:|boop")]
+ [TestCase(@"C:\boop\/usr//bin//.././boop.exe", ExpectedResult = "C:|boop|usr|bin|..|.|boop.exe")]
+ public string GetSegments(string path)
+ {
+ return string.Join("|", PathUtilities.GetSegments(path));
+ }
+
+ [Test(Description = "Assert that NormalisePathSeparators returns the expected values.")]
+#if SMAPI_FOR_WINDOWS
+ [TestCase("", ExpectedResult = "")]
+ [TestCase("/", ExpectedResult = "")]
+ [TestCase("///", ExpectedResult = "")]
+ [TestCase("/usr/bin", ExpectedResult = @"usr\bin")]
+ [TestCase("/usr//bin//", ExpectedResult = @"usr\bin")]
+ [TestCase("/usr//bin//.././boop.exe", ExpectedResult = @"usr\bin\..\.\boop.exe")]
+ [TestCase("C:", ExpectedResult = "C:")]
+ [TestCase("C:/boop", ExpectedResult = @"C:\boop")]
+ [TestCase(@"C:\usr\bin//.././boop.exe", ExpectedResult = @"C:\usr\bin\..\.\boop.exe")]
+#else
+ [TestCase("", ExpectedResult = "")]
+ [TestCase("/", ExpectedResult = "/")]
+ [TestCase("///", ExpectedResult = "/")]
+ [TestCase("/usr/bin", ExpectedResult = "/usr/bin")]
+ [TestCase("/usr//bin//", ExpectedResult = "/usr/bin")]
+ [TestCase("/usr//bin//.././boop.exe", ExpectedResult = "/usr/bin/.././boop.exe")]
+ [TestCase("C:", ExpectedResult = "C:")]
+ [TestCase("C:/boop", ExpectedResult = "C:/boop")]
+ [TestCase(@"C:\usr\bin//.././boop.exe", ExpectedResult = "C:/usr/bin/.././boop.exe")]
+#endif
+ public string NormalisePathSeparators(string path)
+ {
+ return PathUtilities.NormalisePathSeparators(path);
+ }
+
+ [Test(Description = "Assert that GetRelativePath returns the expected values.")]
+#if SMAPI_FOR_WINDOWS
+ [TestCase(@"C:\", @"C:\", ExpectedResult = "./")]
+ [TestCase(@"C:\grandparent\parent\child", @"C:\grandparent\parent\sibling", ExpectedResult = @"..\sibling")]
+ [TestCase(@"C:\grandparent\parent\child", @"C:\cousin\file.exe", ExpectedResult = @"..\..\..\cousin\file.exe")]
+#else
+ [TestCase("/", "/", ExpectedResult = "./")]
+ [TestCase("/grandparent/parent/child", "/grandparent/parent/sibling", ExpectedResult = "../sibling")]
+ [TestCase("/grandparent/parent/child", "/cousin/file.exe", ExpectedResult = "../../../cousin/file.exe")]
+#endif
+ public string GetRelativePath(string sourceDir, string targetPath)
+ {
+ return PathUtilities.GetRelativePath(sourceDir, targetPath);
+ }
+ }
+}