PathUtilsTest.cs 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. namespace MeloongCore.Tests;
  2. public class PathUtilsTests {
  3. [Theory]
  4. [InlineData(@"\\?\C:\foo\bar.txt", @"\\?\C:\foo")]
  5. [InlineData(@"C:\foo\bar.txt", @"C:\foo")]
  6. [InlineData(@"\\?\C:\foo\bar", @"\\?\C:\foo")]
  7. [InlineData(@"C:\foo\bar", @"C:\foo")]
  8. [InlineData(@"C:\foo\bar\", @"C:\foo")]
  9. [InlineData(@"\\?\C:\foo\", @"\\?\C:")]
  10. [InlineData(@"C:\foo", @"C:")]
  11. [InlineData(@"C:\foo\", @"C:")]
  12. [InlineData("https://foo.bar/file/long/pack.zip?arg=1", "https://foo.bar/file/long")]
  13. [InlineData("https://foo.bar/file/", "https://foo.bar")]
  14. [InlineData("https://foo.bar/file/?arg=1", "https://foo.bar")]
  15. [InlineData("https://foo.bar/file?arg=1", "https://foo.bar")]
  16. public void 路径处理_RemoveLastPart(string input, string expected)
  17. => Assert.Equal(expected, PathUtils.RemoveLastPart(input));
  18. [Theory]
  19. [InlineData(@"\\?\C:\foo\bar.txt", "bar.txt")]
  20. [InlineData(@"C:\foo\bar.txt", "bar.txt")]
  21. [InlineData(@"\\?\C:\foo\bar", "bar")]
  22. [InlineData(@"C:\foo\bar", "bar")]
  23. [InlineData(@"C:\foo\bar\", "bar")]
  24. [InlineData(@"\\?\C:\foo\", "foo")]
  25. [InlineData(@"C:\foo", "foo")]
  26. [InlineData(@"C:\foo\", "foo")]
  27. [InlineData("https://foo.bar/file/long/pack.zip?arg=1", "pack.zip")]
  28. [InlineData("https://foo.bar/file/", "file")]
  29. [InlineData("https://foo.bar/file/?arg=1", "file")]
  30. [InlineData("https://foo.bar/file?arg=1", "file")]
  31. public void 路径处理_GetLastPart(string input, string expected)
  32. => Assert.Equal(expected, PathUtils.GetLastPart(input));
  33. [Theory]
  34. [InlineData(@"\\?\C:\foo\bar.txt", "bar")]
  35. [InlineData(@"C:\foo\bar.2.txt", "bar.2")]
  36. [InlineData(@"\\?\C:\foo\bar", "bar")]
  37. [InlineData(@"C:\foo\bar", "bar")]
  38. [InlineData(@"C:\foo.bar\how\", "how")]
  39. [InlineData(@"\\?\C:\foo\", "foo")]
  40. [InlineData(@"C:\foo", "foo")]
  41. [InlineData(@"C:\foo\", "foo")]
  42. [InlineData("create.jar.disabled", "create.jar")]
  43. [InlineData("create.jar", "create")]
  44. [InlineData("create", "create")]
  45. [InlineData("https://foo.bar/file/page.xaml.vb?arg=1", "page.xaml")]
  46. [InlineData("https://foo.bar/file/long/pack.zip?arg=1", "pack")]
  47. [InlineData("https://foo.bar/some.how/file/", "file")]
  48. [InlineData("https://foo.bar/file/?arg=1", "file")]
  49. [InlineData("https://foo.bar/file?arg=1", "file")]
  50. public void 路径处理_GetFileNameWithoutExtension(string input, string expected)
  51. => Assert.Equal(expected, PathUtils.GetFileNameWithoutExtension(input));
  52. [Theory]
  53. [InlineData(@"\\?\C:\FOO\BAR.TXT", "txt")]
  54. [InlineData(@"C:\foo\bar.txt", "txt")]
  55. [InlineData(@"\\?\C:\foo\bar", "")]
  56. [InlineData(@"C:\foo\bar", "")]
  57. [InlineData(@"C:\foo\bar\", "")]
  58. [InlineData(@"\\?\C:\foo\", "")]
  59. [InlineData(@"C:\foo", "")]
  60. [InlineData(@"C:\foo\", "")]
  61. [InlineData("create.jar.diSAbled", "disabled")]
  62. [InlineData("https://foo.bar/file/page.xaml.vb?arg=1", "vb")]
  63. [InlineData("https://foo.bar/file/long/pack.ZIP?arg=1", "zip")]
  64. [InlineData("https://foo.bar/file/", "")]
  65. [InlineData("https://foo.bar/file/?arg=1", "")]
  66. [InlineData("https://foo.bar/file?arg=1", "")]
  67. public void 路径处理_GetExtension(string input, string expected)
  68. => Assert.Equal(expected, PathUtils.GetExtension(input));
  69. }