using System.Runtime.InteropServices; using StabilityMatrix.Core.Models; namespace StabilityMatrix.Tests.Models; [TestClass] public class InstalledPackageTests { [DataTestMethod] [DataRow("C:\\User\\AppData\\StabilityMatrix", "C:\\User\\Other", null)] [DataRow("C:\\Data", "D:\\Data\\abc", null)] [DataRow("C:\\Data", "C:\\Data\\abc", "abc")] [DataRow("C:\\User\\AppData\\StabilityMatrix", "C:\\User\\AppData\\StabilityMatrix\\Packages\\abc", "Packages\\abc")] public void TestGetSubPath(string relativeTo, string path, string? expected) { if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { relativeTo = relativeTo.Replace("C:\\", $"{Path.DirectorySeparatorChar}") .Replace('\\', Path.DirectorySeparatorChar); path = path.Replace("C:\\", $"{Path.DirectorySeparatorChar}") .Replace('\\', Path.DirectorySeparatorChar); expected = expected?.Replace("C:\\", $"{Path.DirectorySeparatorChar}") .Replace('\\', Path.DirectorySeparatorChar); } var result = InstalledPackage.GetSubPath(relativeTo, path); Assert.AreEqual(expected, result); } }