コード例 #1
0
        private static GameInitializer BuildGameInitializer(IPlayersFactory playersFactory = null, IPatternFactory patternFactory = null, IIntelligenceFactory aiFactory = null)
        {
            var io = new MockInputOutput();

            playersFactory = playersFactory ?? new PlayersFactory(new HumanIntelligence(io));
            patternFactory = patternFactory ?? new PatternFactory();
            aiFactory      = aiFactory ?? new IntelligenceFactory(io);
            return(new GameInitializer(playersFactory, patternFactory, aiFactory));
        }
コード例 #2
0
        public void AsksAgainQuestionIfInvalid(string again)
        {
            var mockInputOutput = new MockInputOutput().StubAskToReturn("2", again, "N");
            var application     = BuildApplication(mockInputOutput);

            application.Run();

            mockInputOutput.VerifyAskCalledWith(Application.AGAIN_QUESTION, 2);
        }
コード例 #3
0
        public void ExitIfFactorQuestionIfInvalid()
        {
            var mockInputOutput = new MockInputOutput().StubAskToReturn("");
            var application     = BuildApplication(mockInputOutput);

            application.Run();

            mockInputOutput.VerifyAskCalledWith(Application.FACTOR_QUESTION);
            mockInputOutput.VerifyWriteCalledWith(Application.FACTOR_VALIDATION, 0);
        }
コード例 #4
0
        public void Run_Program(string programName, string expectedOutput, bool enableWrapping)
        {
            string helloWorld = Tests.Utils.LoadBrainFuckProgram(programName);

            MockInputOutput fakeIo  = new MockInputOutput();
            RunnerOptions   options = new RunnerOptions
            {
                InputOutputSystem = fakeIo,
                Wrap = enableWrapping,
            };
            AbstractRunner runner = new Interpreter(options, helloWorld);

            runner.Run();
            Assert.Equal(expectedOutput, fakeIo.Output);
        }
コード例 #5
0
        public void RunsTheApplicationOnce(int value, string again)
        {
            var mockPrimeFactorService = new MockPrimeFactorService().StubGenerateToReturn(new List <int> {
                value
            });
            var mockInputOutput = new MockInputOutput().StubAskToReturn(value.ToString(), again);
            var application     = BuildApplication(mockInputOutput, mockPrimeFactorService);

            application.Run();

            mockPrimeFactorService.VerifyGenerateCalledWith(value);
            mockInputOutput.VerifyAskCalledWith(Application.FACTOR_QUESTION);
            mockInputOutput.VerifyWriteCalledWith(string.Format(Application.PRIME_FACTORS_FORMAT, value));
            mockInputOutput.VerifyAskCalledWith(Application.AGAIN_QUESTION);
        }
コード例 #6
0
 private static Application BuildApplication(MockInputOutput mockInputOutput = null, MockPrimeFactorService mockPrimeFactorService = null)
 {
     mockPrimeFactorService = mockPrimeFactorService ?? new MockPrimeFactorService();
     mockInputOutput        = mockInputOutput ?? new MockInputOutput();
     return(new Application(mockInputOutput, mockPrimeFactorService));
 }