private static void CheckVariables(string variables, IVariablePath path) { var allVariables1 = variables.Split(';'); var allVariables2 = path.AllVariables; Assert.IsTrue(allVariables1.Length == allVariables2.Count); for (var i = 0; i < allVariables1.Length; i++) { var var1 = allVariables1[i]; var var2 = allVariables2[i]; Assert.IsTrue(var1 == var2); } Assert.IsTrue(path.PrefixVariable == allVariables1[0]); }
public void Test_Resolving_Dir_File_OK(string pathIn, string pathResolved) { var dico = new Dictionary <string, string> { { "SolutionDir", @"C:\DirB\" }, { "VAR1", @"var1" }, { "VAR2", @"var2\Var3" }, { "var3", null }, // Null and empty value supported! { "var4", "" } }; // Dir { var variablePath = pathIn.ToVariableDirectoryPath(); IAbsoluteDirectoryPath path1, path2, path3; Assert.IsTrue(variablePath.TryResolve(dico, out path1) == VariablePathResolvingStatus.Success); Assert.IsTrue(path1.ToString() == pathResolved); IReadOnlyList <string> unresolvedVariables; Assert.IsTrue(variablePath.TryResolve(dico, out path2, out unresolvedVariables) == VariablePathResolvingStatus.Success); Assert.IsNull(unresolvedVariables); Assert.IsTrue(path2.Equals(path1)); string failureReason; Assert.IsTrue(variablePath.TryResolve(dico, out path3, out failureReason)); Assert.IsNull(unresolvedVariables); Assert.IsTrue(path3.Equals(path1)); } // File { var variablePath = (pathIn + @"\File.txt").ToVariableFilePath(); IAbsoluteFilePath path1, path2, path3; Assert.IsTrue(variablePath.TryResolve(dico, out path1) == VariablePathResolvingStatus.Success); Assert.IsTrue(path1.ToString() == pathResolved + @"\File.txt"); IReadOnlyList <string> unresolvedVariables; Assert.IsTrue(variablePath.TryResolve(dico, out path2, out unresolvedVariables) == VariablePathResolvingStatus.Success); Assert.IsNull(unresolvedVariables); Assert.IsTrue(path2.Equals(path1)); string failureReason; Assert.IsTrue(variablePath.TryResolve(dico, out path3, out failureReason)); Assert.IsNull(failureReason); Assert.IsTrue(path3.Equals(path1)); } // Dir Untyped { IVariablePath variablePath = pathIn.ToVariableDirectoryPath(); IAbsolutePath path1, path2, path3; Assert.IsTrue(variablePath.TryResolve(dico, out path1) == VariablePathResolvingStatus.Success); Assert.IsTrue(path1.ToString() == pathResolved); IReadOnlyList <string> unresolvedVariables; Assert.IsTrue(variablePath.TryResolve(dico, out path2, out unresolvedVariables) == VariablePathResolvingStatus.Success); Assert.IsNull(unresolvedVariables); Assert.IsTrue(path2.Equals(path1)); string failureReason; Assert.IsTrue(variablePath.TryResolve(dico, out path3, out failureReason)); Assert.IsNull(unresolvedVariables); Assert.IsTrue(path3.Equals(path1)); } // File Untyped { IVariablePath variablePath = (pathIn + @"\File.txt").ToVariableFilePath(); IAbsolutePath path1, path2, path3; Assert.IsTrue(variablePath.TryResolve(dico, out path1) == VariablePathResolvingStatus.Success); Assert.IsTrue(path1.ToString() == pathResolved + @"\File.txt"); IReadOnlyList <string> unresolvedVariables; Assert.IsTrue(variablePath.TryResolve(dico, out path2, out unresolvedVariables) == VariablePathResolvingStatus.Success); Assert.IsNull(unresolvedVariables); Assert.IsTrue(path2.Equals(path1)); string failureReason; Assert.IsTrue(variablePath.TryResolve(dico, out path3, out failureReason)); Assert.IsNull(failureReason); Assert.IsTrue(path3.Equals(path1)); } }