public void CallFactoryCreateBreweryRankMethodWithCorrectParamsOnceAndReturnItsValue() { var expectedName = this.Fixture.Create <string>(); var expectedBreweryRank = new Mock <IBreweryRank>(); var totalRankCount = 5; var beerRanks = new List <IBeerRank>(); var factory = new Mock <IRankFactory>(); for (int i = 0; i < totalRankCount; i++) { var reviews = this.Fixture.Create <List <BeerReview> >(); var mockedBeer = new Mock <IBeer>(); mockedBeer.Setup(b => b.Reviews) .Returns(reviews); var mockedRank = new Mock <IBeerRank>(); mockedRank.Setup(r => r.CompositeScore) .Returns(this.Fixture.Create <decimal>()); mockedRank.Setup(r => r.Beer) .Returns(mockedBeer.Object); beerRanks.Add(mockedRank.Object); } var expectedTotalScore = beerRanks.Sum(s => s.CompositeScore) / totalRankCount; var expectedTotalReviews = beerRanks.Sum(b => b.Beer.Reviews.Count); factory.Setup(f => f.CreateBreweryRank(expectedTotalScore, expectedTotalReviews, expectedName)) .Returns(expectedBreweryRank.Object); var strategy = new DoubleOverallScoreStrategy(factory.Object); var result = strategy.GetBreweryRank(beerRanks, expectedName); factory.Verify(f => f.CreateBreweryRank(expectedTotalScore, expectedTotalReviews, expectedName), Times.Once); Assert.AreSame(expectedBreweryRank.Object, result); }
public void ThrowArgumentNullException_WhenBreweryNameArgumentIsNullOrEmpty(string nullOrEmpty) { var factory = new Mock <IModelFactory>(); var reviews = new Mock <IEnumerable <IBeerRank> >(); var strategy = new DoubleOverallScoreStrategy(factory.Object); Assert.Throws <ArgumentNullException>(() => strategy.GetBreweryRank(reviews.Object, nullOrEmpty)); }
public void ThrowArgumentNullException_WhenBeerRanksArgumentIsNull() { var factory = new Mock <IModelFactory>(); var name = this.Fixture.Create <string>(); var strategy = new DoubleOverallScoreStrategy(factory.Object); Assert.Throws <ArgumentNullException>(() => strategy.GetBreweryRank(null, name)); }