public void EnryPointUtilities_GenerateArguments_ExpandsEnvironmentVariablesInResponseFilePathName() { const string DirectoryVariableName = "InstallationDirectory"; const string DirectoryName = @"c:\MyDirectory"; var environmentVariableDictionary = new Dictionary <string, string> { { DirectoryVariableName, DirectoryName } }; var mockEnvironmentVariables = MockFactory.MakeMockEnvironmentVariables(environmentVariableDictionary); const string ResponseFileName = "test.rsp"; string responseFileNameArgument = String.Format(CultureInfo.InvariantCulture, @"%{0}%\{1}", DirectoryVariableName, ResponseFileName); string expandedResponseFileName = String.Format(CultureInfo.InvariantCulture, @"{0}\{1}", DirectoryName, ResponseFileName); var responseFileContents = new[] { "a", "b c" }; var mockFileSystem = MockFactory.MakeMockFileSystem(expandedResponseFileName, responseFileContents); var args = new[] { "@" + responseFileNameArgument }; string[] result = EntryPointUtilities.GenerateArguments(args, mockFileSystem, mockEnvironmentVariables); result.Length.Should().Be(3); result.Should().ContainInOrder("a", "b", "c"); }
public void EnryPointUtilities_GenerateArguments_StripsQuotesFromAroundArgsWithSpacesInResponseFiles() { const string ResponseFileName = "test.rsp"; var responseFileContents = new[] { "a \"one two\" b" }; var mockFileSystem = MockFactory.MakeMockFileSystem(ResponseFileName, responseFileContents); var args = new[] { "@" + ResponseFileName }; string[] result = EntryPointUtilities.GenerateArguments(args, mockFileSystem, MockFactory.MakeMockEnvironmentVariables()); result.Length.Should().Be(3); result.Should().ContainInOrder("a", "one two", "b"); }
public void EnryPointUtilities_GenerateArguments_ExpandsResponseFileContents() { const string ResponseFileName = "test.rsp"; var responseFileContents = new[] { "/b", "/c:val /d", " /e " }; var mockFileSystem = MockFactory.MakeMockFileSystem(ResponseFileName, responseFileContents); var args = new[] { "/a", "@" + ResponseFileName, "/f" }; string[] result = EntryPointUtilities.GenerateArguments(args, mockFileSystem, MockFactory.MakeMockEnvironmentVariables()); result.Length.Should().Be(6); result.Should().ContainInOrder("/a", "/b", "/c:val", "/d", "/e", "/f"); }