public void ScoreNoPointsForInvalidWord(string inputWord, int expectedTotalScore, [Frozen] Mock <IWordChecker> wordCheckerStub, DefaultWordScorer defaultScorer) { wordCheckerStub.Setup(x => x.IsValid(inputWord)).Returns(false); var actualScore = defaultScorer.Score(new Word(inputWord, Enumerable.Empty <int>())); actualScore.TotalScore.Should().Be(expectedTotalScore); }
public void ScoreOnePointPerLetter(string inputWord, int expectedTotalScore, [Frozen] Mock <IWordChecker> wordCheckerStub, DefaultWordScorer defaultScorer) { wordCheckerStub.Setup(x => x.IsValid(inputWord)).Returns(true); var actualScore = defaultScorer.Score(new Word(inputWord, Enumerable.Empty <int>())); actualScore.Word.Should().Be(inputWord); actualScore.IsValid.Should().BeTrue(); actualScore.TotalScore.Should().Be(expectedTotalScore); }
public void NotScoreBonusPointIfNoLetter([Frozen] Mock <IWordChecker> wordChecker, DefaultWordScorer defaultScorer) { var inputWord = "AXE"; wordChecker.Setup(x => x.IsValid(inputWord)).Returns(true); var actualScore = defaultScorer.Score(new Word(inputWord, new int[] { 3 })); actualScore.LetterBonusIndexes.Should().BeEmpty(); actualScore.BaseScore.Should().Be(3); actualScore.TotalScore.Should().Be(3); }
public void ScoreBonusPoint([Frozen] Mock <IWordChecker> wordChecker, DefaultWordScorer defaultScorer) { var inputWord = "AXE"; wordChecker.Setup(x => x.IsValid(inputWord)).Returns(true); var actualScore = defaultScorer.Score(new Word(inputWord, new int[] { 2 })); actualScore.LetterBonusIndexes.Should().ContainSingle(x => x == 2); actualScore.BaseScore.Should().Be(3); actualScore.TotalScore.Should().Be(4); }