Esempio n. 1
0
        public void Process_WillNotMissOutputViaEvents()
        {
            var environment = FakeEnvironment.CreateWindowsEnvironment();
            var log         = new FakeLog();
            var runner      = new AdvProcessRunner(environment, log);

            var settings =
                new AdvProcessSettings()
                .WithArguments(args => args.Append("--out line1 line2 --echoArgs --delay 100"))
                .UseWorkingDirectory(Environment.CurrentDirectory)
                .SetRedirectStandardOutput(true);

            var outputDataReceived = new List <string>();

            using (var process = runner.Start(_appExe, settings))
            {
                process.OutputDataReceived +=
                    (sender, args) => { outputDataReceived.Add(args.Output); };

                process.WaitForExit();

                outputDataReceived.Should()
                .BeEquivalentTo("Args received: --out line1 line2 --echoArgs --delay 100",
                                "line1", "line2");
            }
        }
Esempio n. 2
0
        public void Dispose_Does_Not_Kill_Underlying_Process_If_Still_Running()
        {
            var environment = FakeEnvironment.CreateWindowsEnvironment();
            var log         = new FakeLog();
            var runner      = new AdvProcessRunner(environment, log);

            var settings =
                new AdvProcessSettings()
                .UseWorkingDirectory(Environment.CurrentDirectory)
                .WithArguments(args => args.Append("--sleep 5000"));

            int processId;

            using (var process = runner.Start(_appExe, settings))
            {
                processId = process.ProcessId;
                process.HasExited.Should().BeFalse();
            }

            using (var p2 = System.Diagnostics.Process.GetProcessById(processId))
            {
                p2.HasExited.Should().BeFalse();
                p2.Kill();
            }
        }
Esempio n. 3
0
        public FakeCakeContext()
        {
            var fileSystem = new FileSystem();

            Log = new FakeLog();
            var runtime     = new CakeRuntime();
            var platform    = new FakePlatform(PlatformFamily.Windows);
            var environment = new CakeEnvironment(platform, runtime, Log);
            var globber     = new Globber(fileSystem, environment);

            var args     = Substitute.For <ICakeArguments>();
            var registry = new WindowsRegistry();

            var dataService            = Substitute.For <ICakeDataService>();
            var toolRepository         = new ToolRepository(environment);
            var toolResolutionStrategy = new ToolResolutionStrategy(fileSystem, environment, globber, new FakeConfiguration());
            var tools         = new ToolLocator(environment, toolRepository, toolResolutionStrategy);
            var processRunner = new ProcessRunner(fileSystem, environment, Log, tools, new FakeConfiguration());

            Context = new CakeContext(fileSystem, environment, globber, Log, args, processRunner, registry, tools, dataService);

            WorkingDirectory = new DirectoryPath(
                System.IO.Path.GetFullPath(AppContext.BaseDirectory));
            Context.Environment.WorkingDirectory = WorkingDirectory;
        }
Esempio n. 4
0
        public FakeCakeContext()
        {
            var testsDir = new DirectoryPath(System.IO.Path.GetFullPath(AppContext.BaseDirectory));

            var fileSystem  = new FileSystem();
            var environment = new FakeEnvironment(PlatformFamily.Windows);
            var globber     = new Globber(fileSystem, environment);
            var log         = new FakeLog();
            var args        = new FakeCakeArguments();
            var toolRepo    = new ToolRepository(environment);
            var config      =
                new CakeConfigurationProvider(fileSystem, environment)
                .CreateConfiguration(testsDir,
                                     new Dictionary <string, string>());
            var toolResolutionStrategy = new ToolResolutionStrategy(fileSystem, environment, globber, config);
            var toolLocator            = new ToolLocator(environment, toolRepo, toolResolutionStrategy);
            var processRunner          = new ProcessRunner(fileSystem, environment, log, toolLocator, config);
            var registry    = new WindowsRegistry();
            var dataService = new FakeDataService();

            _context = new CakeContext(
                fileSystem,
                environment,
                globber,
                log,
                args,
                processRunner,
                registry,
                toolLocator,
                dataService,
                config);

            _context.Environment.WorkingDirectory = testsDir;
        }
Esempio n. 5
0
 public AzurePipelinesFixture()
 {
     Environment = Substitute.For <ICakeEnvironment>();
     Environment.WorkingDirectory.Returns("C:\\build\\CAKE-CAKE-JOB1");
     Environment.GetEnvironmentVariable("TF_BUILD").Returns((string)null);
     Environment.Platform.Family.Returns(PlatformFamily.Windows);
     Log = new FakeLog();
 }
Esempio n. 6
0
        public FakeCakeContext ()
        {
            testsDir = new DirectoryPath (
                System.IO.Path.GetFullPath(
                    System.IO.Path.Combine (AppDomain.CurrentDomain.BaseDirectory, "../../")));

            var environment = Cake.Testing.FakeEnvironment.CreateUnixEnvironment (false);

            var fileSystem = new Cake.Testing.FakeFileSystem (environment);
            var globber = new Globber (fileSystem, environment);
            log = new Cake.Testing.FakeLog ();
            var args = new FakeCakeArguments ();
            var processRunner = new ProcessRunner (environment, log);
            var registry = new WindowsRegistry ();

            context = new CakeContext (fileSystem, environment, globber, log, args, processRunner, registry);
            context.Environment.WorkingDirectory = testsDir;
        }