public async Task GetShipmentsWithError()
        {
            string accountNumber = AppConfiguration.AusPostAccountNumber;
            string username      = AppConfiguration.AusPostUsername;
            string password      = AppConfiguration.AusPostPassword;

            var client = new ShippingClient(accountNumber, username, password);

            client.Testing = true;

            var createOrderRequest = CreateCreateOrderRequest();

            var createOrderResponse = await client.CreateOrderIncludingShipmentsAsync(createOrderRequest);

            Assert.AreEqual(true, createOrderResponse.Succeeded, string.Join(", ", createOrderResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(true, !string.IsNullOrEmpty(createOrderResponse.Order.OrderID));
            Assert.AreEqual(0, createOrderResponse.Errors.Count);
            Assert.AreEqual(0, createOrderResponse.Warnings.Count);

            var getShipmentsRequest = CreateGetShipmentsRequest(createOrderResponse);

            // Make a shipment ID incorrect
            getShipmentsRequest.ShipmentIDs[1] = "Invalid";

            var getShipmentsResponse = await client.GetShipmentsAsync(getShipmentsRequest);

            Assert.AreEqual(true, getShipmentsResponse.Succeeded, string.Join(", ", getShipmentsResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(1, getShipmentsResponse.Shipments.Count);
            Assert.AreEqual(1, getShipmentsResponse.Errors.Count);
            Assert.AreEqual("44013", getShipmentsResponse.Errors[0].Code);
            Assert.AreEqual(0, getShipmentsResponse.Warnings.Count);
        }
示例#2
0
        public async Task GetOrders()
        {
            string accountNumber = AppConfiguration.AusPostAccountNumber;
            string username      = AppConfiguration.AusPostUsername;
            string password      = AppConfiguration.AusPostPassword;

            var client = new ShippingClient(accountNumber, username, password);

            client.Testing = true;

            var createOrderRequest = CreateCreateOrderRequest();

            var createOrderResponse = await client.CreateOrderIncludingShipmentsAsync(createOrderRequest);

            Assert.AreEqual(true, createOrderResponse.Succeeded, string.Join(", ", createOrderResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(true, !string.IsNullOrEmpty(createOrderResponse.Order.OrderID));
            Assert.AreEqual(0, createOrderResponse.Errors.Count);
            Assert.AreEqual(0, createOrderResponse.Warnings.Count);

            var getOrdersRequest = CreateGetOrdersRequest(createOrderResponse);

            var getOrdersResponse = await client.GetOrdersAsync(getOrdersRequest);

            // HACK: We are creating a lot of test orders, and there's no way to filter the orders as
            // far as I can see, so we just have to make sure there is at least one matching order
            Assert.AreEqual(true, getOrdersResponse.Succeeded, string.Join(", ", getOrdersResponse.Errors.Select(e => e.Message)));
            Assert.IsTrue(getOrdersResponse.Orders.Any(o => o.OrderReference == "XYZ789"));
            Assert.AreEqual(0, getOrdersResponse.Errors.Count);
            Assert.AreEqual(0, getOrdersResponse.Warnings.Count);
        }
        public async Task GetOrderSummary()
        {
            string accountNumber = AppConfiguration.AusPostAccountNumber;
            string username      = AppConfiguration.AusPostUsername;
            string password      = AppConfiguration.AusPostPassword;

            var client = new ShippingClient(accountNumber, username, password);

            client.Testing = true;

            // Delete files from previous runs
            string folder = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\Summary";

            if (!System.IO.Directory.Exists(folder))
            {
                System.IO.Directory.CreateDirectory(folder);
            }
            foreach (string file in System.IO.Directory.GetFiles(folder))
            {
                System.IO.File.Delete(file);
            }

            var createOrderRequest = CreateCreateOrderRequest();

            var createOrderResponse = await client.CreateOrderIncludingShipmentsAsync(createOrderRequest);

            Assert.AreEqual(true, createOrderResponse.Succeeded, string.Join(", ", createOrderResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(true, !string.IsNullOrEmpty(createOrderResponse.Order.OrderID));
            Assert.AreEqual(0, createOrderResponse.Errors.Count);
            Assert.AreEqual(0, createOrderResponse.Warnings.Count);

            var getOrderSummaryRequest = new GetOrderSummaryRequest(createOrderResponse.Order.OrderID);

            var getOrderSummaryResponse = await client.GetOrderSummaryAsync(getOrderSummaryRequest);

            Assert.AreEqual(true, getOrderSummaryResponse.Succeeded, string.Join(", ", getOrderSummaryResponse.Errors.Select(e => e.Message)));
            Assert.IsNotNull(getOrderSummaryResponse.Stream);
            Assert.AreEqual(0, getOrderSummaryResponse.Errors.Count);
            Assert.AreEqual(0, getOrderSummaryResponse.Warnings.Count);

            // Download the PDF
            string pdfFile = folder + "\\summary.pdf";

            Assert.IsFalse(System.IO.File.Exists(pdfFile));
            using (var fileStream = System.IO.File.Create(pdfFile))
            {
                getOrderSummaryResponse.Stream.Seek(0, System.IO.SeekOrigin.Begin);
                getOrderSummaryResponse.Stream.CopyTo(fileStream);
            }
            Assert.IsTrue(System.IO.File.Exists(pdfFile));
        }
示例#4
0
        public async Task CreateOrderIncludingShipments()
        {
            string accountNumber = AppConfiguration.AusPostAccountNumber;
            string username      = AppConfiguration.AusPostUsername;
            string password      = AppConfiguration.AusPostPassword;

            var client = new ShippingClient(accountNumber, username, password);

            client.Testing = true;

            var createOrderRequest = CreateCreateOrderRequest();

            var createOrderResponse = await client.CreateOrderIncludingShipmentsAsync(createOrderRequest);

            Assert.AreEqual(true, createOrderResponse.Succeeded, string.Join(", ", createOrderResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(true, !string.IsNullOrEmpty(createOrderResponse.Order.OrderID));
            Assert.AreEqual(0, createOrderResponse.Errors.Count);
            Assert.AreEqual(0, createOrderResponse.Warnings.Count);
        }
示例#5
0
        public async Task CreateOrderIncludingShipmentsWithError()
        {
            string accountNumber = AppConfiguration.AusPostAccountNumber;
            string username      = AppConfiguration.AusPostUsername;
            string password      = AppConfiguration.AusPostPassword;

            var client = new ShippingClient(accountNumber, username, password);

            client.Testing = true;

            var createOrderRequest = CreateCreateOrderRequest();

            // Make an item way too big
            createOrderRequest.Shipments[1].Items[1].Width = 20000;

            var createOrderResponse = await client.CreateOrderIncludingShipmentsAsync(createOrderRequest);

            Assert.AreEqual(false, createOrderResponse.Succeeded);
            Assert.AreEqual(true, string.IsNullOrEmpty(createOrderResponse.Order.OrderID));
            Assert.AreEqual(1, createOrderResponse.Errors.Count);
            Assert.AreEqual(0, createOrderResponse.Warnings.Count);
        }