예제 #1
0
        public async void GetSalesOrder_ReturnsSalesOrder()
        {
            //Arrange
            var mockLogger             = new Mock <ILogger <SalesOrderApi> >();
            var mockHttpRequestFactory = new Mock <IHttpRequestFactory>();

            mockHttpRequestFactory.Setup(x => x.Get(
                                             It.IsAny <string>(), It.IsAny <string>()
                                             )
                                         )
            .ReturnsAsync(new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new JsonContent(new GetSalesOrder.GetSalesOrderResponse
                {
                    SalesOrder = new GetSalesOrder_TB.SalesOrderBuilder().WithTestValues().Build()
                })
            });

            var baseAddress = "BaseAddress";

            var sut = new SalesOrderApi(
                mockLogger.Object,
                mockHttpRequestFactory.Object,
                baseAddress
                );

            //Act
            var response = await sut.GetSalesOrderAsync(new GetSalesOrder.GetSalesOrderRequest());

            //Assert
            mockHttpRequestFactory.Verify(x => x.Get(It.IsAny <string>(), It.IsAny <string>()));

            response.SalesOrder.SalesOrderNumber.Should().Be("SO43659");
        }
예제 #2
0
        private static void EnrichSalesOrder(BasicSalesOrder basicSalesOrder, string id)
        {
            var authApi         = new AuthApi(SiteURL);
            var cookieContainer = new CookieContainer();

            authApi.Configuration.ApiClient.RestClient.CookieContainer = cookieContainer;
            try {
                LogIn(authApi);

                var soApi = new SalesOrderApi();

                List <SalesOrder> soOrders = soApi.SalesOrderGetList(filter: $"OrderNbr eq '{basicSalesOrder.OrderNbr}'");

                Console.WriteLine($"Enriched SOOrder for OrderNbr {basicSalesOrder.OrderNbr}");
                Console.WriteLine($"Id: {soOrders[0].Id.Value}");
                Console.WriteLine($"Status: {soOrders[0].Status.Value}");
                Console.WriteLine($"Order Number: {soOrders[0].OrderNbr.Value}");
                Console.WriteLine($"Order Type: {soOrders[0].OrderType.Value}");
                Console.WriteLine($"Order Quantity: {soOrders[0].OrderedQty.Value}");
                Console.WriteLine($"Order Total: {soOrders[0].OrderTotal.Value}");
                Console.WriteLine($"CustomerId: {soOrders[0].CustomerID.Value}");
                Console.WriteLine($"Last Modified: {soOrders[0].LastModified.Value}");
            }
            catch (Exception e) {
                Console.WriteLine(e.Message);
            }
            finally {
                //we use logout in finally block because we need to always logut, even if the request failed for some reason
                authApi.AuthLogout();
            }
        }
        public static void ExampleMethod(string siteURL, string username, string password, string tenant = null, string branch = null, string locale = null)
        {
            var authApi = new AuthApi(siteURL,
                                      requestInterceptor: RequestLogger.LogRequest, responseInterceptor: RequestLogger.LogResponse);

            try
            {
                var configuration = authApi.LogIn(username, password, tenant, branch, locale);

                Console.WriteLine("Reading Accounts...");
                var accountApi = new AccountApi(configuration);
                var accounts   = accountApi.GetList(top: 5);
                foreach (var account in accounts)
                {
                    Console.WriteLine("Account Nbr: " + account.AccountCD.Value + ";");
                }

                Console.WriteLine("Reading Sales Order by Keys...");
                var salesOrderApi = new SalesOrderApi(configuration);
                var order         = salesOrderApi.GetByKeys(new List <string>()
                {
                    "SO", "SO005207"
                });
                Console.WriteLine("Order Total: " + order.OrderTotal.Value);


                var shipmentApi = new ShipmentApi(configuration);
                var shipment    = shipmentApi.GetByKeys(new List <string>()
                {
                    "002805"
                });
                Console.WriteLine("ConfirmShipment");
                shipmentApi.WaitActionCompletion(shipmentApi.InvokeAction(new ConfirmShipment(shipment)));

                Console.WriteLine("CorrectShipment");
                shipmentApi.WaitActionCompletion(shipmentApi.InvokeAction(new CorrectShipment(shipment)));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                //we use logout in finally block because we need to always logut, even if the request failed for some reason
                if (authApi.TryLogout())
                {
                    Console.WriteLine("Logged out successfully.");
                }
                else
                {
                    Console.WriteLine("An error occured during loguot.");
                }
            }
        }
예제 #4
0
        public async void ListSalesOrders_ReturnsSalesOrders()
        {
            //Arrange
            var salesOrders = new List <ListSalesOrders.SalesOrder>
            {
                new ListSalesOrders_TB.SalesOrderBuilder()
                .WithTestValues()
                .Build(),

                new ListSalesOrders_TB.SalesOrderBuilder()
                .RevisionNumber(8)
                .OrderDate(new DateTime(2011, 05, 31))
                .DueDate(new DateTime(2011, 06, 12))
                .ShipDate(new DateTime(2011, 06, 07))
                .Status(ListSalesOrders.SalesOrderStatus.Shipped)
                .OnlineOrderFlag(false)
                .SalesOrderNumber("SO43660")
                .PurchaseOrderNumber("PO18850127500")
                .AccountNumber("10-4020-000117")
                .CustomerName("Pedals Warehouse")
                .CustomerType(ListSalesOrders.CustomerType.Store)
                .SalesPerson("Tsvi Michael Reiter")
                .Territory("Southeast")
                .SubTotal(1294.2529M)
                .TaxAmt(124.2483M)
                .Freight(38.8276M)
                .TotalDue(1457.3288M)
                .BillToAddress(new ListSalesOrders_TB.AddressBuilder()
                               .AddressLine1("6055 Shawnee Industrial Way")
                               .City("Suwanee")
                               .StateProvinceName("Georgia")
                               .PostalCode("30024")
                               .Build()
                               )
                .ShipToAddress(new ListSalesOrders_TB.AddressBuilder()
                               .AddressLine1("6055 Shawnee Industrial Way")
                               .City("Suwanee")
                               .StateProvinceName("Georgia")
                               .PostalCode("30024")
                               .Build()
                               )
                .ShipMethod(new ListSalesOrders_TB.ShipMethodBuilder().WithTestValues().Build())
                .OrderLines(new List <ListSalesOrders.SalesOrderLine>
                {
                    new ListSalesOrders_TB.SalesOrderLineBuilder()
                    .CarrierTrackingNumber("6431-4D57-83")
                    .OrderQty(1)
                    .ProductName("Road-650 Red, 44")
                    .SpecialOfferDescription("No Discount")
                    .UnitPrice(419.4589M)
                    .UnitPriceDiscount(0.00M)
                    .LineTotal(419.4589M)
                    .Build(),

                    new ListSalesOrders_TB.SalesOrderLineBuilder()
                    .CarrierTrackingNumber("6431-4D57-83")
                    .OrderQty(1)
                    .ProductName("Road-450 Red, 52")
                    .SpecialOfferDescription("No Discount")
                    .UnitPrice(874.794M)
                    .UnitPriceDiscount(0.00M)
                    .LineTotal(874.794M)
                    .Build()
                }
                            )
                .Build()
            };

            var mockLogger             = new Mock <ILogger <SalesOrderApi> >();
            var mockHttpRequestFactory = new Mock <IHttpRequestFactory>();

            mockHttpRequestFactory.Setup(x => x.Get(
                                             It.IsAny <string>(), It.IsAny <Dictionary <string, string> >(), It.IsAny <string>()
                                             )
                                         )
            .ReturnsAsync(new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new JsonContent(new ListSalesOrders.ListSalesOrdersResponse
                {
                    SalesOrders = salesOrders
                })
            });

            var baseAddress = "BaseAddress";

            var sut = new SalesOrderApi(
                mockLogger.Object,
                mockHttpRequestFactory.Object,
                baseAddress
                );

            //Act
            var response = await sut.ListSalesOrdersAsync(new ListSalesOrders.ListSalesOrdersRequest());

            //Assert
            mockHttpRequestFactory.Verify(x => x.Get(It.IsAny <string>(), It.IsAny <Dictionary <string, string> >(), It.IsAny <string>()));
            response.SalesOrders[0].SalesOrderNumber.Should().Be("SO43659");
            response.SalesOrders[1].SalesOrderNumber.Should().Be("SO43660");
        }