using System.Runtime.Versioning; using StabilityMatrix.Core.Models.FileInterfaces; namespace StabilityMatrix.Tests.Core; [TestClass] public class FileSystemPathTests { [SupportedOSPlatform("windows")] [DataTestMethod] [DataRow("M:\\Path", "M:\\Path")] [DataRow("root/abc", "root/abc")] [DataRow("root\\abc", "root\\abc")] public void TestFilePathEqualsWin(string left, string right) { // Arrange var leftPath = new FilePath(left); var rightPath = new FilePath(right); // Act var resultEquals = leftPath.Equals(rightPath); var resultOperator = leftPath == rightPath; var resultNotOperator = leftPath != rightPath; // Assert Assert.IsTrue(resultEquals); Assert.IsTrue(resultOperator); Assert.IsFalse(resultNotOperator); } [DataTestMethod] [DataRow("M:/Path", "M:/Path")] [DataRow("root/abc", "root/abc")] [DataRow("root/abc", "root/abc")] public void TestFilePathEquals(string left, string right) { // Arrange var leftPath = new FilePath(left); var rightPath = new FilePath(right); // Act var resultEquals = leftPath.Equals(rightPath); var resultOperator = leftPath == rightPath; var resultNotOperator = leftPath != rightPath; // Assert Assert.IsTrue(resultEquals); Assert.IsTrue(resultOperator); Assert.IsFalse(resultNotOperator); } [DataTestMethod] [DataRow("M:/Path", "M:/Path2")] [DataRow("root/abc", "root/abc2")] public void TestFilePathNotEquals(string left, string right) { // Arrange var leftPath = new FilePath(left); var rightPath = new FilePath(right); // Act var resultEquals = leftPath.Equals(rightPath); var resultOperator = leftPath == rightPath; var resultNotOperator = leftPath != rightPath; // Assert Assert.IsFalse(resultEquals); Assert.IsFalse(resultOperator); Assert.IsTrue(resultNotOperator); } [DataTestMethod] [DataRow("root/abc", "root/abc")] [DataRow("root/abc", "root/abc/")] public void TestDirectoryPathEquals(string left, string right) { // Arrange var leftPath = new DirectoryPath(left); var rightPath = new DirectoryPath(right); // Act var resultEquals = leftPath.Equals(rightPath); var resultOperator = leftPath == rightPath; var resultNotOperator = leftPath != rightPath; // Assert Assert.IsTrue(resultEquals); Assert.IsTrue(resultOperator); Assert.IsFalse(resultNotOperator); } }