public void GetDirectoryListWithRecursivePropertyShouldReadRunSettingCorrectly()
        {
            string baseDirectory = @"C:\unitTesting";

            List <RecursiveDirectoryPath> expectedResult = new List <RecursiveDirectoryPath>();

            expectedResult.Add(new RecursiveDirectoryPath(@"C:\MsTest\Adapter", true));
            expectedResult.Add(new RecursiveDirectoryPath(@"C:\foo\unitTesting\MsTest\Adapter", false));

            var adapterSettings = new TestableMSTestAdapterSettings(expectedResult);

            adapterSettings.ExpandEnvironmentVariablesSetter = (str) => { return(str.Replace("%temp%", "C:\\foo")); };
            adapterSettings.DoesDirectoryExistSetter         = (str) => { return(true); };

            IList <RecursiveDirectoryPath> result = adapterSettings.GetDirectoryListWithRecursiveProperty(baseDirectory);

            Assert.IsNotNull(result);
            Assert.AreEqual(result.Count, 2);

            for (int i = 0; i < 2; i++)
            {
                Assert.AreEqual(string.Compare(result[i].DirectoryPath, expectedResult[i].DirectoryPath, StringComparison.OrdinalIgnoreCase), 0);
                Assert.AreEqual(result[i].IncludeSubDirectories, expectedResult[i].IncludeSubDirectories);
            }
        }
        public void ResolveEnvironmentVariableShouldReturnFalseForInvalidPath()
        {
            string path          = @"Z:\Program Files (x86)\MsTest\Adapter";
            string baseDirectory = @"C:\unitTesting";

            string result = new TestableMSTestAdapterSettings().ResolveEnvironmentVariableAndReturnFullPathIfExist(path, baseDirectory);

            Assert.IsNull(result);
        }
        public void ResolveEnvironmentVariableShouldResolvePathWhenPassedRelativePathWithDot()
        {
            string path           = @".\MsTest\Adapter";
            string baseDirectory  = @"C:\unitTesting";
            string expectedResult = @"C:\unitTesting\MsTest\Adapter";

            var adapterSettings = new TestableMSTestAdapterSettings();

            adapterSettings.DoesDirectoryExistSetter = (str) => { return(true); };

            string result = adapterSettings.ResolveEnvironmentVariableAndReturnFullPathIfExist(path, baseDirectory);

            Assert.IsNotNull(result);
            Assert.AreEqual(string.Compare(result, expectedResult, true), 0);
        }
        public void ResolveEnvironmentVariableShouldResolvePathWithAnEnvironmentVariable()
        {
            string path           = @"%temp%\unitTesting\MsTest\Adapter";
            string baseDirectory  = null;
            string expectedResult = @"C:\foo\unitTesting\MsTest\Adapter";

            var adapterSettings = new TestableMSTestAdapterSettings();

            adapterSettings.ExpandEnvironmentVariablesSetter = (str) => { return(str.Replace("%temp%", "C:\\foo")); };
            adapterSettings.DoesDirectoryExistSetter         = (str) => { return(true); };

            string result = adapterSettings.ResolveEnvironmentVariableAndReturnFullPathIfExist(path, baseDirectory);

            Assert.IsNotNull(result);
            Assert.AreEqual(string.Compare(result, expectedResult, true), 0);
        }
        public void ResolveEnvironmentVariableShouldResolvePathWhenPassedRelativePath()
        {
            string path          = @"\MsTest\Adapter";
            string baseDirectory = @"C:\unitTesting";

            // instead of returning "C:\unitTesting\MsTest\Adapter", it will return "(Drive from where test is running):\MsTest\Adapter",
            // because path is starting with "\"
            // this is how Path.GetFullPath works
            string currentDirectory = Environment.CurrentDirectory;
            string currentDrive     = currentDirectory.Split('\\').First() + "\\";
            string expectedResult   = Path.Combine(currentDrive, @"MsTest\Adapter");

            var adapterSettings = new TestableMSTestAdapterSettings();

            adapterSettings.DoesDirectoryExistSetter = (str) => { return(true); };

            string result = adapterSettings.ResolveEnvironmentVariableAndReturnFullPathIfExist(path, baseDirectory);

            Assert.IsNotNull(result);
            Assert.AreEqual(string.Compare(result, expectedResult, true), 0);
        }