コード例 #1
0
        public void It_should_ask_the_tag_service_for_all_tags()
        {
            //arrange

            //act
            _controller.Index();

            //assert
            A.CallTo(() => _tagService.GetAll(A <Expression <Func <Tag, bool> >[]> .That.IsSameSequenceAs(TestUtilities.EmptyTagFilters()))).MustHaveHappened();
        }
コード例 #2
0
        public void TagControllerTests_Empty_Repository_Returns_No_Tags()
        {
            //Arrange
            var repo = Substitute.For <IRepository>();

            repo.Find(Arg.Any <SearchTagsByNameQuery>()).Returns(x => Enumerable.Empty <Tag>());
            var controller = new TagController(repo);

            //Act
            var result = controller.Index() as JsonResult;

            //Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Data);
            Assert.IsFalse(((IEnumerable <object>)result.Data).Any());
        }
コード例 #3
0
        public async Task IndexShouldReturnCorrectViewModel()
        {
            var currentUser = new ApplicationUser {
                UserName = "******"
            };
            var tag = new Tag {
                Id = Guid.NewGuid().ToString()
            };
            var mockService = new Mock <ITagService>();

            mockService.Setup(x => x.ExtractPostsByTagId(tag.Id, currentUser))
            .ReturnsAsync(new List <PostViewModel>
            {
                new PostViewModel
                {
                    Id    = Guid.NewGuid().ToString(),
                    Title = "Test Title",
                }
            });
            var mockUserManager = new Mock <UserManager <ApplicationUser> >(
                new Mock <IUserStore <ApplicationUser> >().Object,
                new Mock <IOptions <IdentityOptions> >().Object,
                new Mock <IPasswordHasher <ApplicationUser> >().Object,
                new IUserValidator <ApplicationUser> [0],
                new IPasswordValidator <ApplicationUser> [0],
                new Mock <ILookupNormalizer>().Object,
                new Mock <IdentityErrorDescriber>().Object,
                new Mock <IServiceProvider>().Object,
                new Mock <ILogger <UserManager <ApplicationUser> > >().Object);

            mockUserManager.Setup(x => x.GetUserAsync(It.IsAny <ClaimsPrincipal>()))
            .ReturnsAsync(currentUser);

            var controller = new TagController(mockService.Object, mockUserManager.Object);

            var result = await controller.Index(tag.Id, null);

            Assert.IsType <ViewResult>(result);

            var viewResult = result as ViewResult;

            Assert.IsType <TagViewModel>(viewResult.Model);

            var viewModel = viewResult.Model as TagViewModel;

            Assert.Single(viewModel.Posts);
        }
コード例 #4
0
        public void Index_ReturnsCorrectViewWithAllAuthors()
        {
            //Arrange
            IRepository mockRepo = Substitute.For <IRepository>();

            mockRepo.Tags.Returns(_tags);

            //Act
            TagController target = new TagController(mockRepo);
            ActionResult  result = target.Index();

            //Assert
            Assert.IsInstanceOf <ViewResult>(result);
            IEnumerable <Tag> model = (result as ViewResult).Model as IEnumerable <Tag>;

            Assert.AreEqual(_tags.Count(), model.Count());
            Assert.AreEqual("Tag1", model.First().NameForLabels);
        }
コード例 #5
0
        public void TagControllerTests_GetAll_Returns_Entire_Repository()
        {
            //Arrange
            var repo = Substitute.For <IRepository>();

            repo.Find(Arg.Any <SearchTagsByNameQuery>())
            .Returns(Enumerable
                     .Range(0, 5)
                     .Select(x => new Tag
            {
                Name = x.ToString()
            })
                     .AsQueryable());
            var controller = new TagController(repo);

            //Act
            var result = controller.Index() as JsonResult;

            //Assert
            Assert.IsTrue(((IEnumerable <object>)result.Data).Count() == 5);
        }