示例#1
0
        private List <Diamond> GetDiamondCollectionUnSorted()
        {
            var searchParameters = new DiamondSearchParameters();

            searchParameters.Page = 1;

            var diamondRepository = new FakeDiamondRepository(mapper);

            //Act
            return(diamondRepository.DiamondsBySearchParameters(searchParameters));
        }
        public void DiamondsBySearchParameters_ShouldFilterResultsByColorButMoreThenOneColorSelected()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();
            searchParameters.Page = 1;
            searchParameters.ItemsPerPage = 10;
            searchParameters.Color = new List<string>() { "H","G" };

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);
            //Assert
            diamonds.Should().HaveCount(4);
        }
示例#3
0
        public void DiamondsBySearchParameters_ShouldReturn1ItemOnPage2WhenPageSizeIs5()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();

            searchParameters.Page         = 2;
            searchParameters.ItemsPerPage = 5;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);

            //Assert
            diamonds.Should().HaveCount(1);
        }
示例#4
0
        public void DiamondsBySearchParameters_ShouldReturnZeroItemsIfThePageRequestedDoesntExists()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();

            searchParameters.Page         = 3;
            searchParameters.ItemsPerPage = 3;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);

            //Assert
            diamonds.Should().HaveCount(0);
        }
示例#5
0
        public void DiamondsBySearchParameters_ShouldReturnAllTheItemsInTheRepostoryWhenNoFiltersAreAskedForAndWeWantTheFirstPage()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();

            searchParameters.Page         = 1;
            searchParameters.ItemsPerPage = 10;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);

            //Assert
            diamonds.Should().HaveCount(THE_TOTAL_NUMBER_OF_ITEMS);
        }
示例#6
0
        public void DiamondsBySearchParameters_ShouldReturnOnly3ItemsOnPage2AsRequestedBySearchParams()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();

            searchParameters.Page         = 2;
            searchParameters.ItemsPerPage = 3;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);

            //Assert
            diamonds.Should().HaveCount(3);
        }
示例#7
0
        public void TotalPagesNumber_ShouldSortByWeightInDescOrderWhenCalledAsPartOFTheSearchParams()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();

            searchParameters.OrderBy = new DynamicOrderBy("totalprice", "desc");

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);

            //Assert
            var unsortedCollectio = GetDiamondCollectionUnSorted();

            diamonds.Should().ContainInOrder(unsortedCollectio.OrderByDescending(x => x.Price).ToList());
        }
示例#8
0
        public void DiamondsBySearchParameters_ShouldFilterResultsByPriceMarginsWhenBothAreSpecified()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();

            searchParameters.Page         = 1;
            searchParameters.ItemsPerPage = 10;
            searchParameters.PriceFrom    = 26000;
            searchParameters.PriceTo      = 28000;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);

            //Assert
            diamonds.Should().HaveCount(1);
        }
示例#9
0
        public void DiamondsBySearchParameters_ShouldFilterResultsByWeightMarginsWhenOnlyToWeightIsSpecified()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();

            searchParameters.Page         = 1;
            searchParameters.ItemsPerPage = 10;
            searchParameters.WeightFrom   = 0;
            searchParameters.WeightTo     = (decimal)1.35;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);

            //Assert
            diamonds.Should().HaveCount(3);
        }
示例#10
0
        public void DiamondsBySearchParameters_ShouldFilterResultsByWeightMarginsWhenBothAreSpecifiedEvenIfTheFromFieldIBiggerThenTheToField()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();

            searchParameters.Page         = 1;
            searchParameters.ItemsPerPage = 10;
            searchParameters.WeightFrom   = (decimal)1.35;
            searchParameters.WeightTo     = 1;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);

            //Assert
            diamonds.Should().HaveCount(3);
        }
示例#11
0
        public void TotalPagesNumber_ShouldReturnTheTotalNumberOfPagesCorrectly()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();

            searchParameters.Page         = 1;
            searchParameters.ItemsPerPage = 2;

            var diamondRepository = new FakeDiamondRepository(mapper);

            //Act
            diamondRepository.DiamondsBySearchParameters(searchParameters);
            var totalPages = diamondRepository.LastOporationTotalPages;

            //Assert
            totalPages.Should().Be(3);
        }
示例#12
0
        public void DiamondsBySearchParameters_ShouldFilterResultsByShapeWhenOneShapeSelected()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();

            searchParameters.Page         = 1;
            searchParameters.ItemsPerPage = 10;
            searchParameters.Shape        = new List <string>()
            {
                "Round"
            };

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);

            //Assert
            diamonds.Should().HaveCount(2);
        }
示例#13
0
        public void DiamondsBySearchParameters_ShouldFilterResultsByCutButMoreThenOneCutSelected()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();

            searchParameters.Page         = 1;
            searchParameters.ItemsPerPage = 10;
            searchParameters.Cut          = new List <string>()
            {
                "G", "VG"
            };

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);

            //Assert
            diamonds.Should().HaveCount(4);
        }
        public void DiamondsBySearchParameters_ShouldReturnOnly3ItemsOnPage2AsRequestedBySearchParams()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();
            searchParameters.Page = 2;
            searchParameters.ItemsPerPage = 3;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);
            //Assert
            diamonds.Should().HaveCount(3);
        }
        public void DiamondsBySearchParameters_ShouldFilterResultsByWeightMarginsWhenBothAreSpecifiedEvenIfTheFromFieldIBiggerThenTheToField()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();
            searchParameters.Page = 1;
            searchParameters.ItemsPerPage = 10;
            searchParameters.WeightFrom = (decimal) 1.35;
            searchParameters.WeightTo = 1;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);
            //Assert
            diamonds.Should().HaveCount(3);
        }
        public void TotalPagesNumber_ShouldReturnTheTotalNumberOfPagesCorrectly()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();
            searchParameters.Page = 1;
            searchParameters.ItemsPerPage = 2;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            diamondRepository.DiamondsBySearchParameters(searchParameters);
            var totalPages = diamondRepository.LastOporationTotalPages;
            //Assert
            totalPages.Should().Be(3);
        }
        public void DiamondsBySearchParameters_ShouldReturnZeroItemsIfThePageRequestedDoesntExists()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();
            searchParameters.Page = 3;
            searchParameters.ItemsPerPage = 3;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);
            //Assert
            diamonds.Should().HaveCount(0);
        }
        public void TotalPagesNumber_ShouldSortByWeightInDescOrderWhenCalledAsPartOFTheSearchParams()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();
            searchParameters.OrderBy = new DynamicOrderBy("totalprice", "desc");

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);

            //Assert
            var unsortedCollectio = GetDiamondCollectionUnSorted();
            diamonds.Should().ContainInOrder(unsortedCollectio.OrderByDescending(x => x.Price).ToList());
        }
        private List<Diamond> GetDiamondCollectionUnSorted()
        {
            var searchParameters = new DiamondSearchParameters();
            searchParameters.Page = 1;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            return diamondRepository.DiamondsBySearchParameters(searchParameters);
        }
        public void DiamondsBySearchParameters_ShouldFilterResultsByWeightMarginsWhenOnlyToWeightIsSpecified()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();
            searchParameters.Page = 1;
            searchParameters.ItemsPerPage = 10;
            searchParameters.WeightFrom = 0;
            searchParameters.WeightTo = (decimal) 1.35;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);
            //Assert
            diamonds.Should().HaveCount(3);
        }
        public void DiamondsBySearchParameters_ShouldReturnAllTheItemsInTheRepostoryWhenNoFiltersAreAskedForAndWeWantTheFirstPage()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();
            searchParameters.Page = 1;
            searchParameters.ItemsPerPage = 10;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);
            //Assert
            diamonds.Should().HaveCount(THE_TOTAL_NUMBER_OF_ITEMS);
        }
        public void DiamondsBySearchParameters_ShouldFilterResultsByShapeWhenOneShapeSelected()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();
            searchParameters.Page = 1;
            searchParameters.ItemsPerPage = 10;
            searchParameters.Shape = new List<string>() { "Round" };

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);
            //Assert
            diamonds.Should().HaveCount(2);
        }
        public void DiamondsBySearchParameters_ShouldFilterResultsByPriceMarginsWhenOnlyToPriceIsSpecified()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();
            searchParameters.Page = 1;
            searchParameters.ItemsPerPage = 10;
            searchParameters.PriceFrom = 0;
            searchParameters.PriceTo = 26000;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);
            //Assert
            diamonds.Should().HaveCount(3);
        }
        public void DiamondsBySearchParameters_ShouldReturn1ItemOnPage2WhenPageSizeIs5()
        {
            //Arrange
            var searchParameters = new DiamondSearchParameters();
            searchParameters.Page = 2;
            searchParameters.ItemsPerPage = 5;

            var diamondRepository = new FakeDiamondRepository(mapper);
            //Act
            var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters);
            //Assert
            diamonds.Should().HaveCount(1);
        }