public void SearchCustomerReviews_ShouldThrowArgumentNullException_IfCriteriaIsNull()
        {
            //arrange
            CustomerReviewSearchCriteria criteria = null;

            //act
            Action act = () => _searchService.SearchCustomerReviews(criteria);

            //assert
            act.Should().Throw <ArgumentNullException>();
        }
        public void CanDoCRUDandSearch()
        {
            // Read non-existing item
            var getByIdsResult = CustomerReviewService.GetByIds(new[] { CustomerReviewId });

            Assert.NotNull(getByIdsResult);
            Assert.Empty(getByIdsResult);

            // Create
            var item = new CustomerReview
            {
                Id             = CustomerReviewId,
                ProductId      = ProductId,
                CreatedDate    = DateTime.Now,
                CreatedBy      = "initial data seed",
                AuthorNickname = "John Doe",
                Content        = "Liked that",
                Virtues        = "Liked that!",
                Disadvantages  = "Not",
                Rate           = 3
            };

            CustomerReviewService.SaveCustomerReviews(new[] { item });

            getByIdsResult = CustomerReviewService.GetByIds(new[] { CustomerReviewId });
            Assert.Single(getByIdsResult);

            item = getByIdsResult[0];
            Assert.Equal(CustomerReviewId, item.Id);

            // Update
            var updatedContent = "Updated content";

            Assert.NotEqual(updatedContent, item.Content);

            item.Content = updatedContent;
            CustomerReviewService.SaveCustomerReviews(new[] { item });
            getByIdsResult = CustomerReviewService.GetByIds(new[] { CustomerReviewId });
            Assert.Single(getByIdsResult);

            item = getByIdsResult[0];
            Assert.Equal(updatedContent, item.Content);

            // Search
            Assert.Throws <ArgumentNullException>(() => CustomerReviewSearchService.SearchCustomerReviews(null));

            var criteria = new CustomerReviewSearchCriteria {
                ProductIds = new[] { ProductId }
            };
            var searchResult = CustomerReviewSearchService.SearchCustomerReviews(criteria);

            Assert.NotNull(searchResult);
            Assert.Equal(1, searchResult.TotalCount);
            Assert.Single(searchResult.Results);

            // Delete
            CanDeleteCustomerReviews();
        }
        public void SearchCustomerReviews_ExistingItem_ReturnsItem()
        {
            string testProductId = "testProductId";
            var    criteria      = new CustomerReviewSearchCriteria {
                ProductIds = new[] { testProductId }
            };
            var searchResult = CustomerReviewSearchService.SearchCustomerReviews(criteria);

            Assert.NotNull(searchResult);
            Assert.NotEqual(0, searchResult.TotalCount);
        }
        public void SearchCustomerReviews_Null_ThrowsArgumentNullException()
        {
            Action actual = () => CustomerReviewSearchService.SearchCustomerReviews(null);

            Assert.Throws <ArgumentNullException>(actual);
        }