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();
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        /// <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);
        }