public void WhenSomeCategoriesThenThoseCategoriesShouldBeReturned() { //! given: unit of work with 3 categories. var cat1 = new Category("Foo"); var cat2 = new Category("Bar"); var cat3 = new Category("Spinazie"); IDbSet<Category> categories = new DbSetMockBuilder<Category>() .ContainingEntity(cat1) .ContainingEntity(cat2) .ContainingEntity(cat3) .Build(); IUnitOfWork unitOfWork = new UnitOfWorkMockBuilder() .WithCategoryRepository( categories ) .Build(); //! when: controller is asked for the list. CategoryController subject = new CategoryControllerBuilder() .WithUnitOfWork(unitOfWork) .Build(); var viewResult = (ViewResult)subject.List(); var model = (IEnumerable<CategoryModel>)viewResult.ViewData.Model; //! then: a model with empty categories should be returned. model.Should().NotBeNull(); model.Count().Should().Be(3); model.Should().OnlyContain(c => new[] { cat1, cat2, cat3 }.Any(cat => cat.Id == c.Id)); }
public void WhenNoCategoriesThenEmptyModelShouldBeReturned() { //! given: unit of work with no categories. IUnitOfWork unitOfWork = new UnitOfWorkMockBuilder() .Build(); //! when: controller is asked for the list. CategoryController subject = new CategoryControllerBuilder() .WithUnitOfWork(unitOfWork) .Build(); var viewResult = (ViewResult)subject.List(); var model = (IEnumerable<CategoryModel>)viewResult.ViewData.Model; //! then: a model with empty categories should be returned. model.Should().NotBeNull(); model.Should().BeEmpty(); }
public void WhenTheCategoryContains3NotesThenNoteCountShouldBe3() { Category cat = new CategoryBuilder().Build(); IDbSet<Category> categories = new DbSetMockBuilder<Category>() .ContainingEntity(cat) .Build(); IDbSet<Note> notes = new DbSetMockBuilder<Note>() .ContainingEntity(new NoteBuilder().InCategory(cat).Build()) .ContainingEntity(new NoteBuilder().InCategory(cat).Build()) .ContainingEntity(new NoteBuilder().InCategory(cat).Build()) .Build(); IUnitOfWork unitOfWork = new UnitOfWorkMockBuilder() .WithCategoryRepository(categories) .WithNoteRepository(notes) .Build(); //! when: controller is asked for the list. CategoryController subject = new CategoryControllerBuilder() .WithUnitOfWork(unitOfWork) .Build(); var viewResult = (ViewResult)subject.List(); var model = (IEnumerable<CategoryModel>)viewResult.ViewData.Model; //! then: the single category should have a note count of 3 CategoryModel category = model.Single(); category.NoteCount.Should().Be(3); }