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(); } } }
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); }
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"); } } }
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"); } } }
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); } }
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(); } } }