public async Task WHEN_valid_request_SHOULD_succeed() { //Arrange var customerId = Guid.NewGuid(); var orderHistoryViewModelService = _container.CreateInstance <OrderHistoryViewService>(); _container.GetMock <IOrderRepository>() .Setup(r => r.GetOrderAsync(It.IsAny <GetCustomerOrderParam>())) .ReturnsAsync(new Overture.ServiceModel.Orders.Order { CustomerId = customerId.ToString() }); //Act var param = new GetCustomerOrderParam { BaseUrl = GetRandom.String(32), CountryCode = GetRandom.String(32), CultureInfo = new CultureInfo("en-US"), Scope = GetRandom.String(32), CustomerId = customerId, OrderNumber = GetRandom.String(32), }; var result = await orderHistoryViewModelService.GetOrderDetailViewModelAsync(param).ConfigureAwait(false); //Assert result.Should().NotBeNull(); }
public async Task WHEN_valid_request_SHOULD_succeed() { //Arrange var order = new Overture.ServiceModel.Orders.Order { OrderNumber = GetRandom.String(10) }; _container.GetMock <IOvertureClient>() .Setup(r => r.SendAsync(It.IsAny <GetOrderByNumberRequest>())) .ReturnsAsync(order); var orderRepository = _container.CreateInstance <OrderRepository>(); //Act var param = new GetCustomerOrderParam { CustomerId = Guid.NewGuid(), OrderNumber = GetRandom.String(10), Scope = GetRandom.String(32), }; var result = await orderRepository.GetOrderAsync(param).ConfigureAwait(false); //Assert result.Should().NotBeNull(); result.OrderNumber.Should().BeEquivalentTo(order.OrderNumber); }
/// <summary> /// Gets an OrderDetailViewModel, containing all information about an order and his shipments. /// </summary> /// <param name="param"></param> /// <returns></returns> public virtual async Task <OrderDetailViewModel> GetOrderDetailViewModelAsync(GetCustomerOrderParam param) { if (param == null) { throw new ArgumentNullException("param"); } if (param.CustomerId == null) { throw new ArgumentException("param.CustomerId"); } if (param.CultureInfo == null) { throw new ArgumentException("param.CultureInfo"); } if (string.IsNullOrWhiteSpace(param.Scope)) { throw new ArgumentException("param.Scope"); } if (string.IsNullOrWhiteSpace(param.OrderNumber)) { throw new ArgumentException("param.OrderNumber"); } if (string.IsNullOrWhiteSpace(param.CountryCode)) { throw new ArgumentException("param.CountryCode"); } if (string.IsNullOrWhiteSpace(param.BaseUrl)) { throw new ArgumentException("param.BaseUrl"); } var order = await OrderRepository.GetOrderAsync(param).ConfigureAwait(false); //Check if order is one of the current customer. if (order == null || Guid.Parse(order.CustomerId) != param.CustomerId) { return(null); } var viewModel = await BuildOrderDetailViewModelAsync(order, param).ConfigureAwait(false); return(viewModel); }