Exemple #1
0
        public void GetTickets_gets_query_provider_from_factory(IGetsTicketSpecification specProvider,
                                                                ISpecificationExpression <Ticket> spec,
                                                                IGetsQueryForTickets queryProvider,
                                                                TicketListRequest request)
        {
            // Arrange
            var queryProviderFactoryUsed = false;
            var specFactory          = GetSpecFactory(s => specProvider);
            var queryProviderFactory = GetQueryProviderFactory(s => {
                if (s != spec)
                {
                    return(null);
                }
                queryProviderFactoryUsed = true;
                return(queryProvider);
            });

            Mock.Get(specProvider).Setup(x => x.GetSpecification()).Returns(spec);
            Mock.Get(queryProvider).Setup(x => x.GetQuery()).Returns(() => null);
            var sut = new TicketLister(queryProviderFactory, specFactory);

            // Act
            sut.GetTickets(request);

            // Assert
            Assert.That(queryProviderFactoryUsed, Is.True);
        }
Exemple #2
0
        IReadOnlyList <Ticket> GetTickets(IGetsTicketSpecification specificationProvider)
        {
            if (specificationProvider == null)
            {
                return(new Ticket[0]);
            }

            var spec          = specificationProvider.GetSpecification();
            var queryProvider = queryProviderFactory(spec);

            var query = queryProvider.GetQuery();

            if (query == null)
            {
                return(new Ticket[0]);
            }

            query = query.OrderByDescending(x => x.CreationTimestamp);
            return(query
                   .FetchChild(x => x.User)
                   .FetchChild(x => x.Type)
                   .FetchChildren(x => x.PrimaryRelationships)
                   .FetchChildren(x => x.SecondaryRelationships)
                   .ToList());
        }
Exemple #3
0
        public void GetTickets_gets_specification_from_factory(IGetsTicketSpecification specProvider,
                                                               IGetsQueryForTickets queryProvider,
                                                               TicketListRequest request,
                                                               Search search)
        {
            // Arrange
            var specFactoryUsed = false;
            var specFactory     = GetSpecFactory(s => {
                if (s != search)
                {
                    return(null);
                }
                specFactoryUsed = true;
                return(specProvider);
            });

            Mock.Get(queryProvider).Setup(x => x.GetQuery()).Returns(() => null);
            var sut = new TicketLister(GetQueryProviderFactory(x => queryProvider), specFactory);

            request.SearchModel = search;

            // Act
            sut.GetTickets(request);

            // Assert
            Assert.That(specFactoryUsed, Is.True);
        }
 public CurrentProjectCriterionAddingSpecProviderDecorator(Search search,
                                                           IGetsTicketSpecification wrapped,
                                                           IGetsWhetherSearchContainsProjectCriteria projectCriteriaDetector,
                                                           IGetsCurrentProject projectProvider,
                                                           Func <IIdentity <Project>, ISpecForTicketInProject> projectSpecFactory)
 {
     this.search  = search ?? throw new ArgumentNullException(nameof(search));
     this.wrapped = wrapped ?? throw new ArgumentNullException(nameof(wrapped));
     this.projectCriteriaDetector = projectCriteriaDetector ?? throw new ArgumentNullException(nameof(projectCriteriaDetector));
     this.projectProvider         = projectProvider ?? throw new ArgumentNullException(nameof(projectProvider));
     this.projectSpecFactory      = projectSpecFactory ?? throw new ArgumentNullException(nameof(projectSpecFactory));
 }
Exemple #5
0
        public void GetTickets_returns_result_using_query(IGetsTicketSpecification specProvider,
                                                          IGetsQueryForTickets queryProvider,
                                                          TicketListRequest request,
                                                          Ticket ticket)
        {
            // Arrange
            var specFactory          = GetSpecFactory(s => specProvider);
            var queryProviderFactory = GetQueryProviderFactory(s => queryProvider);
            var sut = new TicketLister(queryProviderFactory, specFactory);

            var query = new [] { ticket }.AsQueryable();

            Mock.Get(queryProvider).Setup(x => x.GetQuery()).Returns(query);

            // Act
            var result = sut.GetTickets(request);

            // Assert
            Assert.That(result.FirstOrDefault(), Is.EqualTo(ticket));
        }