public void Throws_When_Invalid_OrderAddressZipCode_Is_Passed(string addressZipCode) { var orderTotal = 123; var userId = "o1"; var orderId = "o1"; var orderAddressCity = "City"; var orderAddressNumber = "Addr"; var orderAddressStreet = "Strt"; var orderAddressZipCode = addressZipCode; var singlePie = PieListMock .MockPieCatalog() .ToList() .FirstOrDefault(); var pies = new List <Pie>() { singlePie }; var orderAddress = new Address() { City = orderAddressCity, Number = orderAddressNumber, Street = orderAddressStreet, ZipCode = orderAddressZipCode }; var order = new Order() { Address = orderAddress, OrderTotal = orderTotal, Pies = pies, UserId = userId, OrderId = orderId }; var requestProviderMock = new Mock <IRequestProvider>(); requestProviderMock .Setup(e => e.PostAsync <Order>(It.IsAny <string>(), It.IsAny <Order>(), It.IsAny <string>())) .Returns(Task.FromResult <Order>(order)); var orderDataService = new OrderDataService(requestProviderMock.Object); Assert.ThrowsAsync <OrderDataServiceException>( async() => await orderDataService.AddOrderAsync(order)); }
public void Throws_Exception_When_RequestProvider_Thhrows_Exception() { var requestProviderMock = new Mock <IRequestProvider>(); var piesOfTheWeek = PieListMock.MockPieCatalog().Where(p => p.IsPieOfTheWeek == true).ToList(); requestProviderMock .Setup(e => e.GetAsync <IList <Pie> >(It.IsAny <string>(), It.IsAny <string>())) .Throws(new ArgumentException()); var casheMock = new Mock <IBaseCacheStrategy>(); ICatalogDataService dataService = new CatalogDataService(requestProviderMock.Object, casheMock.Object); Assert.ThrowsAsync <CatalogDataServiceException>(async() => await dataService.GetPiesOfTheWeekAsync()); }
public async Task GetAllPiesAsync() { var requestProviderMock = new Mock <IRequestProvider>(); requestProviderMock .Setup(e => e.GetAsync <IList <Pie> >(It.IsAny <string>(), It.IsAny <string>())) .Returns(Task.FromResult <IList <Pie> >(PieListMock.MockPieCatalog())); var casheMock = new Mock <IBaseCacheStrategy>(); ICatalogDataService dataService = new CatalogDataService(requestProviderMock.Object, casheMock.Object); var serviceCallResult = await dataService.GetAllPiesAsync(); Assert.IsNotNull(serviceCallResult); Assert.AreEqual(PieListMock.MockPieCatalogCount(), serviceCallResult.Count); }
public async Task GetAllPiesOfTheWeekAsync() { var requestProviderMock = new Mock <IRequestProvider>(); var piesOfTheWeek = PieListMock.MockPieCatalog().Where(p => p.IsPieOfTheWeek == true).ToList(); requestProviderMock .Setup(e => e.GetAsync <List <Pie> >(It.IsAny <string>(), It.IsAny <string>())) .Returns(Task.FromResult <List <Pie> >(piesOfTheWeek)); var casheMock = new Mock <IBaseCacheStrategy>(); ICatalogDataService dataService = new CatalogDataService(requestProviderMock.Object, casheMock.Object); var serviceCallResult = await dataService.GetPiesOfTheWeekAsync(); Assert.IsNotNull(serviceCallResult); Assert.AreEqual(piesOfTheWeek.Count, serviceCallResult.ToList().Count); }
public void Throws_When_Invalid_Order_Address_Is_Passed() { var orderTotal = 123; var userId = "U1"; var orderId = "O1"; var singlePie = PieListMock .MockPieCatalog() .ToList() .FirstOrDefault(); var pies = new List <Pie>() { singlePie }; Address orderAddress = null; var order = new Order() { Address = orderAddress, OrderTotal = orderTotal, Pies = pies, UserId = userId, OrderId = orderId }; var requestProviderMock = new Mock <IRequestProvider>(); requestProviderMock .Setup(e => e.PostAsync <Order>(It.IsAny <string>(), It.IsAny <Order>(), It.IsAny <string>())) .Returns(Task.FromResult <Order>(order)); var orderDataService = new OrderDataService(requestProviderMock.Object); Assert.ThrowsAsync <OrderDataServiceException>( async() => await orderDataService.AddOrderAsync(order)); }
public async Task Returns_AddedOrder_When_Correct_Parrameters_Are_Passed() { var orderTotal = 123; var userId = "U1"; var orderId = "O1"; var singlePie = PieListMock .MockPieCatalog() .ToList() .FirstOrDefault(); var orderAddressCity = "AI"; var orderAddressNumber = "+123"; var orderAddressStreet = "Samp"; var orderAddressZipCode = "5100"; var pies = new List <Pie>() { singlePie }; var orderAddress = new Address() { City = orderAddressCity, Number = orderAddressNumber, Street = orderAddressStreet, ZipCode = orderAddressZipCode }; var order = new Order() { Address = orderAddress, OrderTotal = orderTotal, Pies = pies, UserId = userId, OrderId = orderId }; var requestProviderMock = new Mock <IRequestProvider>(); requestProviderMock .Setup(e => e.PostAsync <Order>(It.IsAny <string>(), It.IsAny <Order>(), It.IsAny <string>())) .Returns(Task.FromResult <Order>(order)); var orderDataService = new OrderDataService(requestProviderMock.Object); var addedOrderResult = await orderDataService.AddOrderAsync(order); Assert.NotNull(addedOrderResult); Assert.NotNull(addedOrderResult.Address); Assert.NotNull(addedOrderResult.Pies); Assert.AreEqual(addedOrderResult.OrderTotal, orderTotal); Assert.AreEqual(addedOrderResult.UserId, userId); Assert.AreEqual(addedOrderResult.OrderId, orderId); var orderAddedAddress = addedOrderResult.Address; Assert.AreEqual(orderAddedAddress.City, orderAddressCity); Assert.AreEqual(orderAddedAddress.Number, orderAddressNumber); Assert.AreEqual(orderAddedAddress.Street, orderAddressStreet); Assert.AreEqual(orderAddedAddress.ZipCode, orderAddressZipCode); var orderAddedPies = addedOrderResult.Pies; Assert.AreEqual(orderAddedPies.Count, 1); var orderAddedPie = orderAddedPies.FirstOrDefault(); Assert.AreEqual(orderAddedPie.ImageThumbnailUrl, singlePie.ImageThumbnailUrl); Assert.AreEqual(orderAddedPie.ImageUrl, singlePie.ImageUrl); Assert.AreEqual(orderAddedPie.InStock, singlePie.InStock); Assert.AreEqual(orderAddedPie.IsPieOfTheWeek, singlePie.IsPieOfTheWeek); Assert.AreEqual(orderAddedPie.LongDescription, singlePie.LongDescription); Assert.AreEqual(orderAddedPie.Name, singlePie.Name); Assert.AreEqual(orderAddedPie.PieId, singlePie.PieId); Assert.AreEqual(orderAddedPie.Price, singlePie.Price); Assert.AreEqual(orderAddedPie.ShortDescription, singlePie.ShortDescription); Assert.AreEqual(orderAddedPie.AllergyInformation, singlePie.AllergyInformation); }