private async Task DeleteItemsAsync(IEnumerable <ReceiptModel> models) { foreach (var model in models) { await ReceiptsService.DeleteReceiptAsync(model); } }
private async Task <IList <ReceiptModel> > GetItemsAsync() { if (!ViewModelArgs.IsEmpty) { DataRequest <Data.Receipt> request = BuildDataRequest(); return(await ReceiptsService.GetReceiptsAsync(request)); } return(new List <ReceiptModel>()); }
public async Task CreateReceiptAsync_PassWrongProdcutName_ExpectedInvaldParameter() { //Arrange var service = new ReceiptsService(null, null, null); //Act Func <Task> task = async() => await service.CreateReceiptAsync(new string[] { new string('*', 51) }); //Assert await Assert.ThrowsAsync <InvalidParameterException>(task); }
public async Task GetAllReceiptsAsync_PassWrongCount_ExpectedInvaldParameter() { //Arrange var service = new ReceiptsService(null, null, null); //Act Func <Task> task = async() => await service.GetAllAsync <ReceiptViewModel>(-5); //Assert await Assert.ThrowsAsync <InvalidParameterException>(task); }
public async Task CreateReceiptAsync_PassEmptyArray_ExpectedInvaldParameter() { //Arrange var service = new ReceiptsService(null, null, null); //Act Func <Task> task = async() => await service.CreateReceiptAsync(Array.Empty <string>()); //Assert await Assert.ThrowsAsync <InvalidParameterException>(task); }
public async Task GetAllReceiptsAsync_PassCorrectCount_ExpectedCorrectNumber() { //Arrange var receipts = new List <Receipt> { new Receipt { Id = 1, TotalPrice = 50, Discount = 0, TotalPriceWithDiscount = 50, Products = new List <ProductReceipt> { new ProductReceipt { Product = new Product { Id = 1, Name = "apple", Price = 50, } } } }, new Receipt(), new Receipt(), new Receipt(), new Receipt(), new Receipt() }.AsQueryable(); var receiptMock = receipts.BuildMock(); this.repositoryMock .Setup(s => s.AllAsNoTracking()) .Returns(receiptMock.Object); AutoMapperConfig.RegisterMappings(Assembly.Load(GlobalConstants.AutoMapperAssemblyName)); var service = new ReceiptsService(this.repositoryMock.Object, null, null); //Act var response = await service.GetAllAsync <ReceiptViewModel>(5); var model = response.FirstOrDefault(); //Assert Assert.True(response.Count() == 5); Assert.IsType <ReceiptViewModel>(model); Assert.True(model.Products.Any()); Assert.True(model.Id == 1); Assert.True(model.TotalPrice == "50 clouds"); Assert.True(model.Discount == "0 clouds"); Assert.True(model.TotalPriceWithDiscount == "50 clouds"); Assert.True(model.Products.FirstOrDefault().Name == "apple"); Assert.True(model.Products.FirstOrDefault().Price == "50 clouds"); }
public void TestAddReceipt_WithTestData_ShoudAddNewPackageInToDb() { var factory = new PandaDbContextFactory(); var context = factory.CreatePandaDbContext(); var services = new ReceiptsService(context); services.AddReceipt(new Receipt()); var actualData = context.Receipts.Count(); Assert.True(actualData == 1, "PackagesService AddPackage() method does not work porperly!"); }
public async Task CreateReceiptAsync_PassCorrectValues_ExpectedCorrectModel() { //Arrange Product product = new Product { Id = 1, Name = "apple", Price = 50, }; IEnumerable <Deal> deals = new List <Deal> { new Deal { Name = "2 for 3", }, new Deal { Name = "buy 1 get 1 half price", }, }; this.productsServiceMock .Setup(s => s.GetByNameAsync(It.IsAny <string>())) .Returns(Task.FromResult(product)); this.dealsServiceMock .Setup(s => s.GetAllAsync(It.IsAny <int>())) .Returns(Task.FromResult(deals)); AutoMapperConfig.RegisterMappings(Assembly.Load(GlobalConstants.AutoMapperAssemblyName)); var service = new ReceiptsService(this.repositoryMock.Object, this.productsServiceMock.Object, this.dealsServiceMock.Object); //Act var response = await service.CreateReceiptAsync(new string[] { "apple" }); //Assert Assert.IsType <ReceiptViewModel>(response); Assert.True(response.Products.Any()); Assert.True(response.TotalPrice == "50 clouds"); Assert.True(response.Discount == "0 clouds"); Assert.True(response.TotalPriceWithDiscount == "50 clouds"); Assert.True(response.Products.FirstOrDefault().Name == "apple"); Assert.True(response.Products.FirstOrDefault().Price == "50 clouds"); }
public async Task CreateReceiptAsync_PassNonExistentProductName_ExpectedObjectNotFound() { //Arrange Product product = null; this.productsServiceMock .Setup(s => s.GetByNameAsync(It.IsAny <string>())) .Returns(Task.FromResult(product)); var service = new ReceiptsService(null, this.productsServiceMock.Object, null); //Act Func <Task> task = async() => await service.CreateReceiptAsync(new string[] { "apple" }); //Assert await Assert.ThrowsAsync <ObjectNotFoundException>(task); }
public void GetAllReceiptsWithRecipientAndPackage_WithTestData_ShoudGetAllReceiptsWithRecipientAndPackage() { var factory = new PandaDbContextFactory(); var context = factory.CreatePandaDbContext(); var services = new ReceiptsService(context); var expectedData = context.Receipts .Include(receipt => receipt.Package) .Include(receipt => receipt.Recipient) .ToList(); var actualData = services.GetAllReceiptsWithRecipientAndPackage(); foreach (var receipt in actualData) { Assert.Contains(expectedData, x => x.Package.Id == receipt.Package.Id && x.Recipient.Id == receipt.Recipient.Id); } }
public async Task GetReceiptByIdAsync_PassWrongId_ExpectedObjectNotFound() { //Arrange var receipts = new List <Receipt>().AsQueryable(); var receiptMock = receipts.BuildMock(); repositoryMock .Setup(s => s.AllAsNoTracking()) .Returns(receiptMock.Object); AutoMapperConfig.RegisterMappings(Assembly.Load(GlobalConstants.AutoMapperAssemblyName)); var service = new ReceiptsService(this.repositoryMock.Object, null, null); //Act Func <Task> task = async() => await service.GetByIdAsync <ReceiptViewModel>(1); //Assert await Assert.ThrowsAsync <ObjectNotFoundException>(task); }
public void TestGetAllReceiptsWithRecipient_WithTestData_ShoudGetAllReceiptsWithRecipient() { var factory = new PandaDbContextFactory(); var context = factory.CreatePandaDbContext(); var services = new ReceiptsService(context); SeedDbWithReceipts(context); SeedDbWithRecipients(context); MakeConnectionBetweenTheEntities(context); var actualData = services.GetAllReceiptsWithRecipient().ToList(); var expectedData = context.Receipts .Include(receipt => receipt.Recipient) .ToList(); foreach (var receipt in expectedData) { Assert.Contains(actualData, x => x.Recipient.UserName == receipt.Recipient.UserName && x.Recipient.Email == x.Recipient.Email); } }