Example #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            CaptureConsole RunConsole = new CaptureConsole(exeName, parameters, ShowStdOutput, ShowStdError);

            externalProcess = RunConsole.Run(450);
            this.InvokeEx(x => x.listBox1.Items.Add(String.Format("Process Started: {0}", externalProcess.StartTime)));
        }
Example #2
0
 public void CaptureOutput()
 {
     using (var session = new CaptureConsole())
     {
         Console.Write("hello");
         Check.That(session.Output).IsEqualTo("hello");
     }
 }
Example #3
0
 public void SimulateInput()
 {
     using (var session = new CaptureConsole())
     {
         session.InputLine("hello");
         Check.That(Console.ReadLine()).IsEqualTo("hello");
         session.Input("AB");
         Check.That(Console.Read()).IsEqualTo('A');
     }
 }
Example #4
0
 public void PermitStreamedOutputConsumption()
 {
     using (var session = new CaptureConsole())
     {
         Console.WriteLine("hello");
         Console.WriteLine("world");
         Check.That(session.ReadLine()).IsEqualTo("hello");
         Check.That(session.ReadLine()).IsEqualTo("world");
         Console.Write("so ");
         Console.Write("great");
         Check.That(session.ReadLine()).IsEqualTo("so great");
     }
 }
        public void HandlerGoodAnswerToQuestion2()
        {
            var fakeClient = new AoCFakeClient(2015);

            using var console = new CaptureConsole();
            var mockFileSystem = GetFileSystem();

            fakeClient.SetAnswerResponseFilename(1, GoodAnswerFile);
            fakeClient.SetAnswerResponseFilename(2, GoodAnswerFile);
            var engine = new Engine(2015, fakeClient, mockFileSystem);
            var algo   = new FakeSolver(10, 12, 13);

            engine.RunDay(() => algo);

            Check.That(algo.GetAnswer1Calls).IsEqualTo(1);
            Check.That(console.Output).Contains("Question 1 passed!");
            Check.That(console.Output).Contains("Question 2 passed!");
        }
        public void SetUpEverythingProperly()
        {
            var mockFileSystem = GetFileSystem();
            var fakeClient     = new AoCFakeClient(2015);

            var testInputData = "Silly input data";

            fakeClient.SetInputData(testInputData);
            var engine = new Engine(2015, fakeClient, mockFileSystem);
            var algo   = new FakeSolver(10, null, null);

            using var console = new CaptureConsole();
            engine.RunDay(() => algo);
            // verify the day is properly set up
            Check.That(engine.Day).IsEqualTo(10);
            // it should have received the provided input data
            Check.That(algo.InputData).IsEqualTo(testInputData);
            Check.That(fakeClient.NbRequest).IsEqualTo(1);
        }
        public void HandlerGoodAnswer()
        {
            var fakeClient = new AoCFakeClient(2015);

            using var console = new CaptureConsole();
            var mockFileSystem = GetFileSystem();

            fakeClient.SetAnswerResponseFilename(1, GoodAnswerFile);
            var engine = new Engine(2015, fakeClient, mockFileSystem);
            var algo   = new FakeSolver(10, 12, null);

            engine.RunDay(() => algo);

            Check.That(algo.GetAnswer1Calls).IsEqualTo(1);
            Check.That(console.Output).Contains("AoC site response");
            Check.That(console.Output).Contains("Day 10-1:");
            Check.That(algo.GetAnswer2Calls).IsEqualTo(1);
            Check.That(mockFileSystem.AllFiles.Any(p => Regex.IsMatch(p, "Answer1.*\\.html")));
            Check.That(console.Output).Contains("Question 1 passed!");
        }
        public void HandleWhenNoAnswerProvided()
        {
            var mockFileSystem = GetFileSystem();
            var fakeClient     = new AoCFakeClient(2015);

            var testInputData = "Silly input data";

            fakeClient.SetInputData(testInputData);
            var engine = new Engine(2015, fakeClient, mockFileSystem);
            var algo   = new FakeSolver(10, null, null);

            using var console = new CaptureConsole();
            engine.RunDay(() => algo);
            // it should request the first answer
            Check.That(algo.GetAnswer1Calls).IsEqualTo(1);
            // and not the second
            Check.That(algo.GetAnswer2Calls).IsEqualTo(0);
            // it should say that no answer was provided
            Check.That(console.Output).Contains("No answer provided");
            // it should have received the provided input data
            Check.That(algo.InputData).IsEqualTo(testInputData);
        }