Esempio n. 1
0
        public async Task DebugConsoleMaxProcessesTests()
        {
            var listOfControllers = new List <PersistentCommandTest>();

            try
            {
                // Setup
                var env      = new Mock <IEnvironment>();
                var tracer   = new Mock <ITracer>();
                var settings = new Mock <IDeploymentSettingsManager>();

                // Test
                for (int i = 0; i < 10; i++)
                {
                    var controller   = new PersistentCommandTest(env.Object, settings.Object, tracer.Object, Mock.Of <IProcess>());
                    var connectionId = Guid.NewGuid().ToString();
                    await controller.Connect(Mock.Of <IRequest>(), connectionId);

                    listOfControllers.Add(controller);

                    // Assert
                    Assert.Equal(Math.Min(i + 1, PersistentCommandController.MaxProcesses), PersistentCommandTest.ProcessCount);
                }
            }
            finally
            {
                foreach (var controller in listOfControllers)
                {
                    controller.Dispose();
                }
            }
        }
Esempio n. 2
0
        public async Task DebugConsoleOnDisconnectedTests()
        {
            // Setup
            var env          = new Mock <IEnvironment>();
            var tracer       = new Mock <ITracer>();
            var settings     = new Mock <IDeploymentSettingsManager>();
            var process      = new Mock <IProcess>();
            var connectionId = Guid.NewGuid().ToString();

            process.Setup(p => p.Kill(tracer.Object))
            .Verifiable();

            // Test
            using (var controller = new PersistentCommandTest(env.Object, settings.Object, tracer.Object, process.Object))
            {
                await controller.Connect(Mock.Of <IRequest>(), connectionId);

                // Assert
                Assert.Equal(1, PersistentCommandTest.ProcessCount);

                await controller.Disconnect(Mock.Of <IRequest>(), connectionId);
            }

            // Assert
            process.Verify();

            // Assert
            Assert.Equal(0, PersistentCommandTest.ProcessCount);
        }
Esempio n. 3
0
        public async Task DebugConsoleOnReceivedTests(bool connect)
        {
            // Setup
            var env = new Mock<IEnvironment>();
            var tracer = new Mock<ITracer>();
            var settings = new Mock<IDeploymentSettingsManager>();
            var process = new Mock<IProcess>();
            var connectionId = Guid.NewGuid().ToString();
            var data = Guid.NewGuid().ToString() + "\n";
            var mem = new MemoryStream();

            using (var controller = new PersistentCommandTest(env.Object, settings.Object, tracer.Object, process.Object))
            {
                // Setup
                process.SetupGet(p => p.StandardInput)
                       .Returns(new StreamWriter(mem));

                // Test
                if (connect)
                {
                    await controller.Connect(Mock.Of<IRequest>(), connectionId);
                }

                await controller.Receive(Mock.Of<IRequest>(), connectionId, data);

                // Assert
                Assert.Equal(1, PersistentCommandTest.ProcessCount);

                if (connect)
                {
                    Assert.True(mem.Position > 0, "must write data");

                    mem.Position = 0;
                    var result = new StreamReader(mem).ReadToEnd();
                    Assert.True(result.EndsWith("\n"));
                    Assert.Equal(data, result);
                }
                else
                {
                    Assert.True(mem.Position == 0, "must skip data");
                }
            }
        }
Esempio n. 4
0
        public async Task DebugConsoleOnReceivedTests(bool connect)
        {
            // Setup
            var env          = new Mock <IEnvironment>();
            var tracer       = new Mock <ITracer>();
            var settings     = new Mock <IDeploymentSettingsManager>();
            var process      = new Mock <IProcess>();
            var connectionId = Guid.NewGuid().ToString();
            var data         = Guid.NewGuid().ToString() + "\n";
            var mem          = new MemoryStream();

            using (var controller = new PersistentCommandTest(env.Object, settings.Object, tracer.Object, process.Object))
            {
                // Setup
                process.SetupGet(p => p.StandardInput)
                .Returns(new StreamWriter(mem));

                // Test
                if (connect)
                {
                    await controller.Connect(Mock.Of <IRequest>(), connectionId);
                }

                await controller.Receive(Mock.Of <IRequest>(), connectionId, data);

                // Assert
                Assert.Equal(1, PersistentCommandTest.ProcessCount);

                if (connect)
                {
                    Assert.True(mem.Position > 0, "must write data");

                    mem.Position = 0;
                    var result = new StreamReader(mem).ReadToEnd();
                    Assert.True(result.EndsWith("\n"));
                    Assert.Equal(data, result);
                }
                else
                {
                    Assert.True(mem.Position == 0, "must skip data");
                }
            }
        }
Esempio n. 5
0
        public async Task DebugConsoleOnConnectedTests()
        {
            // Setup
            var env = new Mock<IEnvironment>();
            var tracer = new Mock<ITracer>();
            var settings = new Mock<IDeploymentSettingsManager>();
            var connectionId = Guid.NewGuid().ToString();

            using (var controller = new PersistentCommandTest(env.Object, settings.Object, tracer.Object, Mock.Of<IProcess>()))
            {
                // Test
                await controller.Connect(Mock.Of<IRequest>(), connectionId);

                // Assert
                Assert.Equal(1, PersistentCommandTest.ProcessCount);

                // Test
                await controller.Disconnect(Mock.Of<IRequest>(), connectionId);

                // Assert
                Assert.Equal(0, PersistentCommandTest.ProcessCount);
            }
        }
Esempio n. 6
0
        public async Task DebugConsoleMaxProcessesTests()
        {
            var listOfControllers = new List<PersistentCommandTest>();

            try
            {
                // Setup
                var env = new Mock<IEnvironment>();
                var tracer = new Mock<ITracer>();
                var settings = new Mock<IDeploymentSettingsManager>();

                // Test
                for (int i = 0; i < 10; i++)
                {
                    var controller = new PersistentCommandTest(env.Object, settings.Object, tracer.Object, Mock.Of<IProcess>());
                    var connectionId = Guid.NewGuid().ToString();
                    await controller.Connect(Mock.Of<IRequest>(), connectionId);
                    listOfControllers.Add(controller);

                    // Assert
                    Assert.Equal(Math.Min(i + 1, PersistentCommandController.MaxProcesses), PersistentCommandTest.ProcessCount);
                }
            }
            finally
            {
                foreach (var controller in listOfControllers)
                {
                    controller.Dispose();
                }
            }
        }