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 }))); }
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); }
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); }
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 }))); }