public void ShouldListNoForumsOnIndexAction()
        {
            // Arrange
            var repository = MockRepository.GenerateStub<IRepository<Db.Forum>>();
            var forums = ForumDbFixtures.ListWithNoForums();
            Assert.That(forums.Count == 0);
            repository.Stub(f => f.GetAll()).Return(forums);

            // Act
            var controller = new ForumController(repository);
            var result = controller.Index();

            // Assert
            Assert.AreEqual(string.Empty, result.ViewName);
            Assert.IsNotNull(result.ViewData.Model);
            Assert.IsInstanceOf<ICollection<Db.Forum>>(result.ViewData.Model);
            var viewForums = result.ViewData.Model as ICollection<Db.Forum>;
            Assert.AreEqual(forums, viewForums);
            Assert.AreEqual(forums.Count, viewForums.Count);
            repository.AssertWasCalled(f => f.GetAll());
        }
        public void ShouldShowForumWithNoTopicsOnDetailsAction()
        {
            // Arrange
            var repository = MockRepository.GenerateStub<IRepository<Db.Forum>>();
            var id = 1234;
            var forum = ForumDbFixtures.ForumWithNoTopics(id);
            Assert.That(forum.Id == id);
            repository.Stub(f => f.Single(w => w.Id == id)).Return(forum);

            // Act
            var controller = new ForumController(repository);
            var result = controller.Details(id);

            // Assert
            Assert.AreEqual(string.Empty, result.ViewName);
            Assert.IsNotNull(result.ViewData.Model);
            Assert.IsInstanceOf<Db.Forum>(result.ViewData.Model);
            var viewForum = result.ViewData.Model as Db.Forum;
            Assert.AreEqual(forum, viewForum);
            Assert.That(viewForum.Topics.Count == 0);
            repository.AssertWasCalled(f => f.Single(w => w.Id == id));
        }