示例#1
0
        public void PlayShouldReturnTheLongestLastingOptionWhenThereIsNoWinningOption()
        {
            wordsRepositoryMock
            .Setup(repo => repo.GetAllWords())
            .Returns(new List <string>()
            {
                "aba", "abb", "aca", "acb", "acaa"
            });
            player = new OptimalGhostPlayer(wordsRepositoryMock.Object);

            var result = player.Play("a");

            Assert.Equal("ac", result);
        }
示例#2
0
        public void PlayShouldNotTakeAsAWinningOptionIfASubsetOfThatBranchIsAlsoAWord()
        {
            wordsRepositoryMock
            .Setup(repo => repo.GetAllWords())
            .Returns(new List <string>()
            {
                "abababa", "abab", "acaca"
            });
            player = new OptimalGhostPlayer(wordsRepositoryMock.Object);

            var result = player.Play("a");

            Assert.Equal("ac", result);
        }
示例#3
0
        public void PlayShouldReturnOneOfTheWinningOptionsWhenThereAreSome()
        {
            wordsRepositoryMock
            .Setup(repo => repo.GetAllWords())
            .Returns(new List <string>()
            {
                "aba", "aca", "acb", "ada"
            });
            player = new OptimalGhostPlayer(wordsRepositoryMock.Object);

            var result = player.Play("a");

            Assert.True(result.Equals("ab") || result.Equals("ad"));
        }