BinaryStudio.ClientManager.WebUi.Tests.Controllers.InquiryControllerTests.Should_ReturnSingleInquiryInEveryCategory_WhenSeveralTagsAreAssignedAndAllViewIsRequested C# (CSharp) Метод

Should_ReturnSingleInquiryInEveryCategory_WhenSeveralTagsAreAssignedAndAllViewIsRequested() приватный Метод

        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);
        }