示例#1
0
        public void Should_ReturnSingleInquiryInEveryCategory_WhenSeveralTagsAreAssignedAndAllViewIsRequested()
        {
            // arrange
            var tags = Builder <Tag> .CreateListOfSize(2).Build();

            var inquiries = Builder <Inquiry> .CreateListOfSize(10)
                            .All()
                            .With(x => x.Client        = Builder <Person> .CreateNew().Build())
                            .With(x => x.ReferenceDate = July.The14th)
                            .With(x => x.Tags          = tags.Take(1).ToList())
                            .TheLast(3)
                            .With(x => x.Tags = tags)
                            .Build();

            tags.ForEach(x => x.Inquiries = inquiries.Where(z => z.Tags.Any(y => y.Name == x.Name)).ToList());

            var repository = Substitute.For <IRepository>();

            repository.Query <Tag>().ReturnsForAnyArgs(tags.AsQueryable());
            repository.Query <Inquiry>().ReturnsForAnyArgs(inquiries.AsQueryable());

            var inquiriesController = new InquiriesController(repository).MockHttpContext();

            // act
            var viewResult = (AllInquiriesViewModel)inquiriesController.All().Model;
            var categories = viewResult.Categories.ToList();

            // assert
            categories.Count.Should().Be(2);

            categories[0].Tag.Name.Should().Be("Name1");
            categories[0].Inquiries.Count().Should().Be(10);

            categories[1].Tag.Name.Should().Be("Name2");
            categories[1].Inquiries.Count().Should().Be(3);

            categories[0].Inquiries.Should().Contain(x => x.Id == 9);
            categories[1].Inquiries.Should().Contain(x => x.Id == 9);

            categories[0].Inquiries.Should().Contain(x => x.Id == 1);
            categories[1].Inquiries.Should().NotContain(x => x.Id == 1);
        }
示例#2
0
        public void Should_ReturnFullListOfInquiriesSortedByTag_WhenCalledAllFunction()
        {
            // arrange
            var repository = Substitute.For <IRepository>();

            repository.Query <Inquiry>().ReturnsForAnyArgs(inquiries.AsQueryable());
            repository.Query <Tag>().ReturnsForAnyArgs(tags.AsQueryable());

            var inquiriesController = new InquiriesController(repository).MockHttpContext();

            // act
            var viewResult = (AllInquiriesViewModel)inquiriesController.All().Model;
            var categories = viewResult.Categories.ToList();

            // assert
            categories.Count.Should().Be(2);
            categories[1].Tag.Name.Should().Be("");
            categories[1].Inquiries.Count().Should().Be(20);
            categories[0].Tag.Name.Should().Be("tag2");
            categories[0].Inquiries.Count().Should().Be(10);
        }
示例#3
0
        public void ShouldNot_ReturnCategoriesWithEmptyInquiries_WhenAllRequested()
        {
            // arrange
            var mock = new Mock <IRepository>();

            mock.Setup(z => z.Query <Inquiry>(x => x.Client, x => x.Tags)).Returns(new List <Inquiry>().AsQueryable());
            mock.Setup(z => z.Query <Tag>(x => x.Inquiries)).Returns(new List <Tag>
            {
                new Tag
                {
                    Inquiries = new List <Inquiry>(),
                    Name      = "",
                    Id        = 1
                }
            }.AsQueryable());
            var inquiriesController = new InquiriesController(mock.Object).MockHttpContext();

            //act
            var viewResult = (AllInquiriesViewModel)inquiriesController.All().Model;

            //assert
            viewResult.Categories.Count().Should().Be(0);
        }