public void When_2_Colors_Are_Exact_Match_And_1_Color_Is_Matching_But_In_Wrong_Position_2_Black_And_1_White_Hints_Are_Displayed()
        {
            //Arrange

            var randomNumberGenerator = new Mock <INumberGenerator>();

            var initialColorsProvider = new InitialColorsProvider(randomNumberGenerator.Object);
            var colors = System.Enum.GetValues(typeof(Colors));

            randomNumberGenerator.SetupSequence(s => s.RandomNumber(0, colors.Length)).Returns(1).Returns(2).Returns(3)
            .Returns(4);

            var initialColors = initialColorsProvider.ProvideColors();
            var userColors    = new [] { "Red", "Blue", "Orange", "Purple" };

            var hintsProvider = new HintsProvider();

            //Act

            var hints = hintsProvider.GiveHints(userColors, initialColors);


            //Assert
            Assert.AreEqual("White", hints[0], "The first hint should be white");
            Assert.AreEqual("Black", hints[1], "The second hint should be black");
            Assert.AreEqual("Black", hints[2], "The third hint should be black");
        }
        public void Can_Provide_4_random_Colors_In_Array()
        {
            //arrange
            var randomChooser = new Mock <INumberGenerator>();

            randomChooser.SetupSequence(s => s.RandomNumber(It.IsAny <int>(), It.IsAny <int>())).Returns(1).Returns(2)
            .Returns(2).Returns(0);

            var initialColorProvider = new InitialColorsProvider(randomChooser.Object);

            //act

            var expectedColors = new [] { "Blue", "Green", "Green", "Red" };

            var randomColors = initialColorProvider.ProvideColors();

            //assert
            Assert.AreEqual(expectedColors, randomColors);
        }
Exemple #3
0
        static void Main(string[] args)
        {
            var communication = new ConsoleOperations();

            var validations = new List <IValidation>
            {
                new IsNotNullValidator(),
                new CorrectColorValidator(),
                new CorrectColorCountValidator()
            };

            var userColorProvider     = new UserColorsProvider(validations, communication);
            var initialColorsProvider = new InitialColorsProvider(new RandomNumberGenerator());
            var initialColors         = initialColorsProvider.ProvideColors();


            var game = new Game(communication, userColorProvider);

            game.Play(initialColors);
        }