public void GivenNonEmptyValidRepositoryWithMoreThanTheMaxItems_ShouldReturnDefaultLimitItems()
        {
            var repo = new List <ProductCategory>();

            var randomNumber = new Random();

            var currentRepoSize = Configurations.MaxLimit * 2;

            for (int i = 0; i < currentRepoSize; i++)
            {
                repo.Add(new ProductCategory()
                {
                    CategoryId = randomNumber.Next(10, 20),
                    ProductId  = randomNumber.Next(1, 2),
                });
            }

            // Arange
            var mappingRepo = MockRepository.GenerateStub <IRepository <ProductCategory> >();

            mappingRepo.Stub(x => x.TableNoTracking).Return(repo.AsQueryable());

            // Act
            var cut = new ProductCategoryMappingsApiService(mappingRepo);

            var result = cut.GetMappings();

            // Assert
            Assert.IsNotEmpty(result);
            Assert.AreEqual(Configurations.DefaultLimit, result.Count);
        }
        public void GivenNegativeOrZeroCategoryId_ShouldReturnEmptyCollection(int categoryId)
        {
            var repo = new List <ProductCategory>();

            var randomNumber = new Random();

            var currentRepoSize = randomNumber.Next(10, 100);

            for (int i = 0; i < currentRepoSize; i++)
            {
                repo.Add(new ProductCategory()
                {
                    CategoryId = randomNumber.Next(10, 20),
                    ProductId  = randomNumber.Next(1, 2),
                });
            }

            // Arange
            var mappingRepo = MockRepository.GenerateStub <IRepository <ProductCategory> >();

            mappingRepo.Stub(x => x.TableNoTracking).Return(repo.AsQueryable());

            // Act
            var cut = new ProductCategoryMappingsApiService(mappingRepo);

            var result = cut.GetMappings(categoryId: categoryId);

            // Assert
            Assert.IsEmpty(result);
        }
        public void GivenPositiveProductId_ShouldReturnCollectionContainingAllMappingsWithThisProductId()
        {
            var repo = new List <ProductCategory>();

            var randomNumber = new Random();

            var productId = 1;

            repo.Add(new ProductCategory()
            {
                CategoryId = randomNumber.Next(10, 20),
                ProductId  = productId,
            });

            // Arange
            var mappingRepo = MockRepository.GenerateStub <IRepository <ProductCategory> >();

            mappingRepo.Stub(x => x.TableNoTracking).Return(repo.AsQueryable());

            // Act
            var cut = new ProductCategoryMappingsApiService(mappingRepo);

            var result = cut.GetMappings(productId: productId);

            // Assert
            Assert.IsTrue(result.Select(x => new { x.CategoryId, x.ProductId })
                          .SequenceEqual(repo.Where(x => x.ProductId == productId).Select(x => new { x.CategoryId, x.ProductId })));
        }
Example #4
0
        public void WhenNegativeOrZeroMappingIdPassed_ShouldReturnNull(int negativeOrZeroOrderId)
        {
            // Aranges
            var mappingRepoMock = MockRepository.GenerateStub <IRepository <ProductCategory> >();

            // Act
            var cut    = new ProductCategoryMappingsApiService(mappingRepoMock);
            var result = cut.GetById(negativeOrZeroOrderId);

            // Assert
            Assert.IsNull(result);
        }
        public void GivenNonEmptyValidRepository_WhenCalledWithDefaultParameters_ShouldReturnRepositorySize()
        {
            // Arange
            var mappingRepo = MockRepository.GenerateStub <IRepository <ProductCategory> >();

            mappingRepo.Stub(x => x.TableNoTracking).Return(_repo.AsQueryable());

            // Act
            var cut = new ProductCategoryMappingsApiService(mappingRepo);

            int result = cut.GetMappingsCount();

            // Assert
            Assert.AreEqual(_repo.Count, result);
        }
Example #6
0
        public void WhenNullIsReturnedByTheRepository_ShouldReturnNull()
        {
            int mappingId = 3;

            // Arange
            var productCategoryRepo = MockRepository.GenerateStub <IRepository <ProductCategory> >();

            productCategoryRepo.Stub(x => x.GetById(mappingId)).Return(null);

            // Act
            var cut    = new ProductCategoryMappingsApiService(productCategoryRepo);
            var result = cut.GetById(mappingId);

            // Assert
            Assert.IsNull(result);
        }
        public void GivenNonEmptyValidRepository_WhenCalledWithSomeParameters_ShouldReturnCountOfAllItemsAccordingToParameters(int categoryId, int productId)
        {
            var expectedCount = _repo.Count(x => x.CategoryId == categoryId && x.ProductId == productId);

            // Arange
            var mappingRepo = MockRepository.GenerateStub <IRepository <ProductCategory> >();

            mappingRepo.Stub(x => x.TableNoTracking).Return(_repo.AsQueryable());

            // Act
            var cut = new ProductCategoryMappingsApiService(mappingRepo);

            int result = cut.GetMappingsCount(productId, categoryId);

            // Assert
            Assert.AreEqual(expectedCount, result);
        }
        public void GivenEmptyRepository_ShouldReturnEmptyCollection()
        {
            var repo = new List <ProductCategory>();

            // Arange
            var mappingRepo = MockRepository.GenerateStub <IRepository <ProductCategory> >();

            mappingRepo.Stub(x => x.TableNoTracking).Return(repo.AsQueryable());

            // Act
            var cut = new ProductCategoryMappingsApiService(mappingRepo);

            var result = cut.GetMappings();

            // Assert
            Assert.IsEmpty(result);
        }
Example #9
0
        public void WhenMappingIsReturnedByTheRepository_ShouldReturnTheSameMapping()
        {
            int mappingId = 3;
            var mapping   = new ProductCategory()
            {
                Id = 3
            };

            // Arange
            var mappingRepo = MockRepository.GenerateStub <IRepository <ProductCategory> >();

            mappingRepo.Stub(x => x.GetById(mappingId)).Return(mapping);

            // Act
            var cut    = new ProductCategoryMappingsApiService(mappingRepo);
            var result = cut.GetById(mappingId);

            // Assert
            Assert.AreSame(mapping, result);
        }
        public void GivenPositiveCategoryId_ShouldReturnCollectionContainingAllMappingsWithThisCategoryId()
        {
            var repo = new List <ProductCategory>();

            var randomNumber = new Random();

            var currentRepoSize = randomNumber.Next(51, 100);

            for (int i = 0; i < currentRepoSize; i++)
            {
                repo.Add(new ProductCategory()
                {
                    CategoryId = randomNumber.Next(1, 2),
                    ProductId  = randomNumber.Next(10, 20),
                });
            }

            var categoryId = 1;

            repo.Add(new ProductCategory()
            {
                CategoryId = categoryId,
                ProductId  = randomNumber.Next(10, 20),
            });

            // Arange
            var mappingRepo = MockRepository.GenerateStub <IRepository <ProductCategory> >();

            mappingRepo.Stub(x => x.TableNoTracking).Return(repo.AsQueryable());

            // Act
            var cut = new ProductCategoryMappingsApiService(mappingRepo);

            var result = cut.GetMappings(categoryId: categoryId);

            // Assert
            Assert.IsTrue(result.Select(x => new { x.CategoryId, x.ProductId })
                          .SequenceEqual(repo.Where(x => x.CategoryId == categoryId).Take(Configurations.DefaultLimit).Select(x => new { x.CategoryId, x.ProductId })));
        }