Example #1
0
                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);
                }
Example #2
0
            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);
            }
Example #3
0
                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);
                }
Example #4
0
                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);
                }
Example #5
0
                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);
                }