Пример #1
0
        public void CompareOutputAgainstGoldenSource([Range(0, 99)] int seed)
        {
            // Arrange
            var gameOutputStringBuilder = new StringBuilder();

            using (var gameOutput = new StringWriter(gameOutputStringBuilder))
            {
                Console.SetOut(gameOutput);
                var dice = new Dice();
                var consoleGameLogger = new ConsoleGameLogger();
                var categorySelector  = new CategorySelector();
                var questionFactory   = new QuestionFactory();
                var game   = new Game(consoleGameLogger, categorySelector, questionFactory);
                var random = new Random(seed);
                var randomAnsweringStrategy = new RandomAnsweringStrategy(random);

                var gameRunner = new GameRunner(dice, randomAnsweringStrategy, random, game);

                // Act
                gameRunner.Start();

                // Assert
                var actualGameOutput   = gameOutputStringBuilder.ToString();
                var expectedGameOutput = File.ReadAllText($@"c:\TestData\GoldenData_{seed}.txt");
                actualGameOutput.Should().BeEquivalentTo(expectedGameOutput);
            }
        }
Пример #2
0
        public void GenerateTestData([Range(0, 99)] int testRunId)
        {
            if (!Directory.Exists(TestDataPath))
            {
                Directory.CreateDirectory(TestDataPath);
            }

            var filePath = Path.Combine(TestDataPath, $@"GoldenData_{testRunId}.txt");

            if (!File.Exists(filePath))
            {
                using (var gameOutput = File.CreateText(filePath))
                {
                    Console.SetOut(gameOutput);

                    var dice = new Dice();
                    var consoleGameLogger = new ConsoleGameLogger();
                    var game   = new Game(consoleGameLogger, new DefaultGameRegion());
                    var random = new Random(testRunId);
                    var randomAnsweringStrategy = new RandomAnsweringStrategy(random);

                    var gameRunner = new GameRunner(dice, randomAnsweringStrategy, random, game);
                    gameRunner.Start();

                    gameOutput.Flush();
                }

                Assert.Pass("Master data file created successfully.");
            }
            else
            {
                Assert.Pass("Master data already exists.");
            }
        }