public void ShouldThrowException_IfArgumentIsInvalid()
            {
                var query = new Logic.Product.FindPagedCollection.Query();

                _validator.Validate(query).Returns(Helper.GetErrorValidationResult());

                Assert.Catch<ValidationException>(() => _sut.Handle(query));
            }
            public void ShouldReturnData_IfQueryIsValid()
            {
                var query = new Logic.Product.FindPagedCollection.Query();

                _validator.Validate(query).Returns(new ValidationResult());

                _collectionRepository.Fetch(query).Returns(new PagedCollectionResult<Logic.Product.FindPagedCollection.ProductItem>(new Paged<Logic.Product.FindPagedCollection.ProductItem>(0, new List<Logic.Product.FindPagedCollection.ProductItem>())));

                var result = _sut.Handle(query);

                Assert.That(result != null);
            }
            public void ShouldReturnError_IfQueryHasPageSizeTooSmall()
            {
                var query = new Logic.Product.FindPagedCollection.Query { PageSize  = 0, Skip = 5 };

                var result = _sut.Validate(query);

                Assert.That(Common.Test.Helper.HasError(result, nameof(Logic.Product.FindPagedCollection.Query.PageSize)));
            }
            public void ShouldReturnNoErrors_IfQueryIsValid()
            {
                var query = new Logic.Product.FindPagedCollection.Query {PageSize = 20, Skip = 5};

                var result = _sut.Validate(query);

                Assert.That(result.Errors.Count == 0);
            }