public SearchServiceTests()
        {
            this.fixture = new Fixture().Customize(new AutoDbCustomization());

            this.searchMapper           = Substitute.For <ISearchMapper>();
            this.searchResponseProvider = Substitute.For <ISearchResponseProvider>();
            this.productBuilder         = Substitute.For <IProductBuilder <Item> >();
            this.searchResultProvider   = Substitute.For <ISearchResultProvider>();
            this.queryBuilder           = Substitute.For <ISearchQueryBuilder>();

            this.searchService = new SearchService(
                this.searchMapper,
                this.searchResponseProvider,
                this.productBuilder,
                this.searchResultProvider,
                this.queryBuilder);
        }
        public SearchService(
            ISearchMapper searchMapper,
            ISearchResponseProvider searchResponseProvider,
            IProductBuilder <Item> productBuilder,
            ISearchResultProvider searchResultProvider,
            ISearchQueryBuilder queryBuilder)
        {
            Assert.ArgumentNotNull(searchMapper, nameof(searchMapper));
            Assert.ArgumentNotNull(searchResponseProvider, nameof(searchResponseProvider));
            Assert.ArgumentNotNull(searchResponseProvider, nameof(searchResponseProvider));
            Assert.ArgumentNotNull(productBuilder, nameof(productBuilder));
            Assert.ArgumentNotNull(queryBuilder, nameof(queryBuilder));

            this.searchMapper           = searchMapper;
            this.searchResponseProvider = searchResponseProvider;
            this.searchResultProvider   = searchResultProvider;
            this.productBuilder         = productBuilder;
            this.queryBuilder           = queryBuilder;
        }