예제 #1
0
        public void When_IsTrue_is_called_without_satisying_opening_return_false()
        {
            //Given
            var thisFact = new OpeningFact("Indian Game");
            var game     = new ChessGame();

            game.Opening = "King's Gambit, Accepted";

            //When
            Assert.False(thisFact.IsTrue(game)); // <-- Then
        }
예제 #2
0
        public void When_IsTrue_is_called_on_GambitOpeningFact_with_satisying_opening_return_true()
        {
            //Given
            var thisFact = new OpeningFact("Gambit");
            var game     = new ChessGame();

            game.Opening = "King's Gambit, Accepted";

            //When
            Assert.True(thisFact.IsTrue(game)); // <-- Then
        }
예제 #3
0
        public void When_IsTrue_is_called_with_non_satisying_opening_with_words_in_common_return_false()
        {
            //Given
            var thisFact = new OpeningFact("King's Gambit, Accepted, Modern Defense");
            var game     = new ChessGame();

            game.Opening = "Modern Defense";

            //When
            Assert.False(thisFact.IsTrue(game)); // <-- Then

            //Given
            thisFact     = new OpeningFact("Modern Defense");
            game.Opening = "King's Gambit, Accepted, Modern Defense";

            //When
            Assert.False(thisFact.IsTrue(game)); // <-- Then
        }
예제 #4
0
        public void Without_any_excluded_facts_and_with_an_opening_without_any_variants_then_no_variant_openings_are_generated(string opening)
        {
            //Given
            var openingsFactsGenerator = new OpeningsFactsGenerator();
            var chessGame = new ChessGame();

            chessGame.White   = "tailuge";
            chessGame.Black   = "sydeman";
            chessGame.Result  = "1-0";
            chessGame.Opening = opening;

            //When
            var result = openingsFactsGenerator.Generate(new List <IFact <ChessGame> >(), chessGame);

            //Then
            var openingFact = new OpeningFact(opening);

            Assert.Equal(1, result.Count);
            Assert.Contains(openingFact, result);
        }
예제 #5
0
        public void With_excluded_facts_then_opening_facts_are_generated_that_are_not_in_the_exclusion_list()
        {
            //Given
            var openingsFactsGenerator = new OpeningsFactsGenerator();
            var chessGame = new ChessGame();

            chessGame.White   = "tailuge";
            chessGame.Black   = "sydeman";
            chessGame.Result  = "1-0";
            chessGame.Opening = "King's Gambit, Accepted";

            //When
            var kingsGambitAcceptedFact = new OpeningFact("King's Gambit, Accepted");
            var result = openingsFactsGenerator.Generate(new List <IFact <ChessGame> >()
            {
                kingsGambitAcceptedFact
            }, chessGame);

            //Then
            Assert.Equal(0, result.Count);
        }
예제 #6
0
        public void Without_any_excluded_facts_then_all_possible_opening_facts_are_generated()
        {
            //Given
            var openingsFactsGenerator = new OpeningsFactsGenerator();
            var chessGame = new ChessGame();

            chessGame.White   = "tailuge";
            chessGame.Black   = "sydeman";
            chessGame.Result  = "1-0";
            chessGame.Opening = "King's Gambit, Accepted";

            //When
            var result = openingsFactsGenerator.Generate(new List <IFact <ChessGame> >(), chessGame);

            //Then
            var kingsGambitFact         = new OpeningFact("King's Gambit");
            var kingsGambitAcceptedFact = new OpeningFact("King's Gambit, Accepted");
            var gambit = new OpeningFact("Gambit");

            Assert.Equal(3, result.Count);
            Assert.Contains(kingsGambitFact, result);
            Assert.Contains(kingsGambitAcceptedFact, result);
            Assert.Contains(gambit, result);
        }