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); }
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); }
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")); }