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)); }
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); }
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); }
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); }
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); }
private static Application BuildApplication(MockInputOutput mockInputOutput = null, MockPrimeFactorService mockPrimeFactorService = null) { mockPrimeFactorService = mockPrimeFactorService ?? new MockPrimeFactorService(); mockInputOutput = mockInputOutput ?? new MockInputOutput(); return(new Application(mockInputOutput, mockPrimeFactorService)); }