public void GradeArticle_ShouldCreateANewGrade_WhenTheUserHasNotGradedTheArticleBefore() { var article = new Article {Id = 20}; var currentUser = new User {UserName = "******"}; var mockRepo = new Mock<IRepository>(); mockRepo.Setup(r => r.Get<Article>(20)).Returns(article); mockRepo.Setup(r => r.GetWhere<User>(It.IsAny<Expression<Func<User, bool>>>())).Returns(new[]{currentUser}.AsQueryable()); var logic = new GradeLogic(mockRepo.Object); logic.GradeArticle(20, "asmunde", 4); Assert.That(article.Grades.Count, Is.EqualTo(1)); Assert.That(currentUser.Grades.Count, Is.EqualTo(1)); var grade = article.Grades.Single(); Assert.That(grade, Is.SameAs(currentUser.Grades.Single())); Assert.That(grade.GradeValue, Is.EqualTo(4)); mockRepo.Verify(r => r.SaveChanges()); }
public GradeController(GradeLogic logic) { _logic = logic; }