public void GetOrderByIdAsync_GetFromCache_Test() { // Arrange var createTime = DateTime.Now; Order order = _dataFixture.GetOrder(createTime); long orderId = 0; List <Order> cachedOrderList = new List <Order> { order }; _dataFixture.GetMocks <Order>(out var mockRepository, out var mockCacheManager, out var mockOptions); mockCacheManager .Setup(cache => cache.GetFromCacheAsync <List <Order> >(It.IsAny <string>(), It.IsAny <CancellationToken>())) .ReturnsAsync(cachedOrderList); mockRepository .Setup(repo => repo.GetAsync <Order>(order => order.Sid == orderId, CancellationToken.None)) .ReturnsAsync((Order)null); var customerFacade = new OrderFacade(mockRepository.Object, mockCacheManager.Object, mockOptions.Object); // Act var result = customerFacade.GetOrderByIdAsync(orderId, CancellationToken.None).Result; // Assert Assert.NotNull(result); Assert.Null(result.Products); Assert.Null(result.FeedbackSid); Assert.Equal(createTime, result.CreateTime); Assert.Equal(0, result.CustomerSid); Assert.Equal(0, result.Sid); }
public void GetOrderByIdAsync_OrderDoesNotExistInCacheNorInDb_Test() { // Arrange Order order = null; long orderId = 0; List <Order> cachedOrderList = null; _dataFixture.GetMocks <Order>(out var mockRepository, out var mockCacheManager, out var mockOptions); mockCacheManager .Setup(cache => cache.GetFromCacheAsync <List <Order> >(It.IsAny <string>(), It.IsAny <CancellationToken>())) .ReturnsAsync(cachedOrderList); mockRepository .Setup(repo => repo.GetAsync <Order>(order => order.Sid == orderId, CancellationToken.None)) .ReturnsAsync(order); var orderFacade = new OrderFacade(mockRepository.Object, mockCacheManager.Object, mockOptions.Object); // Act & Assert var ex = Assert.Throws <AggregateException>(() => orderFacade.GetOrderByIdAsync(orderId, CancellationToken.None).Result); Assert.Equal("One or more errors occurred. (Unnable to retieve order with orderId 0)", ex.Message); }