public void WhenProcessSpecHasNoEnvironment() { var io = Substitute.For <IProcessIO>(); var process = Container.Run(Spec, io); var actualSpec = ProcessRunner.Captured(x => x.Run(null)).Arg <ProcessRunSpec>(); Assert.Equal(ContainerEnvironment, actualSpec.Environment); }
public void StartsExeWithCorrectOptions() { JobObject.GetJobMemoryLimit().Returns(6789UL); Container.StartGuard(); var actual = ProcessRunner.Captured(x => x.Run(null)).Arg <ProcessRunSpec>(); Assert.Equal(@"C:\Containers\handle\bin\Guard.exe", actual.ExecutablePath); Assert.Equal(2, actual.Arguments.Length); Assert.Equal(_containerUsername, actual.Arguments[0]); Assert.Equal(Container.Id, actual.Arguments[1]); Assert.Equal(@"C:\Containers\handle\user\", actual.WorkingDirectory); Assert.Null(actual.Credentials); }
public void WhenPathMappingIsDisabled_DoesNotMapExecutablePath() { var io = Substitute.For <IProcessIO>(); Spec.DisablePathMapping = true; Spec.ExecutablePath = "cmd.exe"; var process = Container.Run(Spec, io); Assert.NotNull(process); var actual = ProcessRunner.Captured(x => x.Run(null)).Arg <ProcessRunSpec>(); Assert.Equal("cmd.exe", actual.ExecutablePath); }
public void WhenProcessEnvironmentConflictsWithContainerEnvironment() { Spec.Environment = new Dictionary <string, string> { { "Handle", "procHandle" }, { "ProcEnv", "ProcEnv" } }; var io = Substitute.For <IProcessIO>(); var process = Container.Run(Spec, io); var actualSpec = ProcessRunner.Captured(x => x.Run(null)).Arg <ProcessRunSpec>(); Assert.Equal(Spec.Environment, actualSpec.Environment); }
public void RunsTheProcessLocally() { var io = Substitute.For <IProcessIO>(); var process = Container.Run(Spec, io); Assert.NotNull(process); var actual = ProcessRunner.Captured(x => x.Run(null)).Arg <ProcessRunSpec>(); Assert.Equal(ExpectedRunSpec.ExecutablePath, actual.ExecutablePath); Assert.Equal(ExpectedRunSpec.Arguments, actual.Arguments); Assert.Superset( new HashSet <string>(ExpectedRunSpec.Environment.Keys), new HashSet <string>(actual.Environment.Keys)); Assert.Equal(ExpectedRunSpec.WorkingDirectory, actual.WorkingDirectory); }