Esempio n. 1
0
        public async Task CreateLabelsWithError()
        {
            string accountNumber = AppConfiguration.AusPostAccountNumber;
            string username      = AppConfiguration.AusPostUsername;
            string password      = AppConfiguration.AusPostPassword;

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

            client.Testing = true;

            var createShipmentsRequest = CreateCreateShipmentsRequest();

            var createShipmentsResponse = await client.CreateShipmentsAsync(createShipmentsRequest);

            Assert.AreEqual(true, createShipmentsResponse.Succeeded, string.Join(", ", createShipmentsResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(1, createShipmentsResponse.Shipments.Count);
            Assert.AreEqual(1, createShipmentsResponse.Shipments[0].Items.Count);

            var createLabelsRequest = CreateCreateLabelsRequest(createShipmentsResponse.Shipments[0].ShipmentID);

            // Make a shipment ID incorrect
            createLabelsRequest.Shipments[0].ShipmentID = "Incorrect";

            var createLabelsResponse = await client.CreateLabelsAsync(createLabelsRequest);

            Assert.AreEqual(false, createLabelsResponse.Succeeded);
            Assert.AreEqual(0, createLabelsResponse.Labels.Count);
            Assert.AreEqual(1, createLabelsResponse.Errors.Count);
            Assert.AreEqual(0, createLabelsResponse.Warnings.Count);
        }
Esempio n. 2
0
        public async Task UpdateItemsWithError()
        {
            string accountNumber = AppConfiguration.AusPostAccountNumber;
            string username      = AppConfiguration.AusPostUsername;
            string password      = AppConfiguration.AusPostPassword;

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

            client.Testing = true;

            var createRequest = CreateCreateShipmentsRequest();

            var createResponse = await client.CreateShipmentsAsync(createRequest);

            Assert.AreEqual(true, createResponse.Succeeded, string.Join(", ", createResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(1, createResponse.Shipments.Count);
            Assert.AreEqual(1, createResponse.Shipments[0].Items.Count);

            var updateRequest = CreateUpdateItemsRequest();

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

            var updateResponse = await client.UpdateItemsAsync(createResponse.Shipments[0].ShipmentID, updateRequest);

            // NOTE: This doesn't return anything other than a general success or fail
            Assert.AreEqual(false, updateResponse.Succeeded);
            Assert.AreEqual(0, createResponse.Errors.Count);
            Assert.AreEqual(0, createResponse.Warnings.Count);
        }
Esempio n. 3
0
        public async Task CreateShipments()
        {
            string accountNumber = AppConfiguration.AusPostAccountNumber;
            string username      = AppConfiguration.AusPostUsername;
            string password      = AppConfiguration.AusPostPassword;

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

            client.Testing = true;

            var createRequest = CreateCreateShipmentsRequest();

            var createResponse = await client.CreateShipmentsAsync(createRequest);

            Assert.AreEqual(true, createResponse.Succeeded, string.Join(", ", createResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(1, createResponse.Shipments.Count);
            Assert.AreEqual(0, createResponse.Errors.Count);
            Assert.AreEqual(0, createResponse.Warnings.Count);
        }
        public async Task CreateOrderFromShipments()
        {
            string accountNumber = AppConfiguration.AusPostAccountNumber;
            string username      = AppConfiguration.AusPostUsername;
            string password      = AppConfiguration.AusPostPassword;

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

            client.Testing = true;

            var createShipmentsRequest = CreateCreateShipmentsRequest();

            var createShipmentsResponse = await client.CreateShipmentsAsync(createShipmentsRequest);

            Assert.AreEqual(true, createShipmentsResponse.Succeeded, string.Join(", ", createShipmentsResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(1, createShipmentsResponse.Shipments.Count);
            Assert.AreEqual(1, createShipmentsResponse.Shipments[0].Items.Count);

            // You have to create labels before orders, although the API reference has it the other way around
            var updateRequest = CreateCreateLabelsRequest(createShipmentsResponse.Shipments[0].ShipmentID);

            var updateResponse = await client.CreateLabelsAsync(updateRequest);

            Assert.AreEqual(true, updateResponse.Succeeded, string.Join(", ", updateResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(1, updateResponse.Labels.Count);
            Assert.AreEqual(LabelStatus.Pending, updateResponse.Labels[0].Status);
            Assert.AreEqual(0, updateResponse.Errors.Count);
            Assert.AreEqual(0, updateResponse.Warnings.Count);

            // HACK: Wait for the labels to be generated...
            System.Threading.Thread.Sleep(5000);

            var createOrderRequest = CreateCreateOrderFromShipmentsRequest(createShipmentsResponse.Shipments[0].ShipmentID);

            var createOrderResponse = await client.CreateOrderFromShipmentsAsync(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);
        }
Esempio n. 5
0
        public async Task CreateShipmentsWithError()
        {
            string accountNumber = AppConfiguration.AusPostAccountNumber;
            string username      = AppConfiguration.AusPostUsername;
            string password      = AppConfiguration.AusPostPassword;

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

            client.Testing = true;

            var createRequest = CreateCreateShipmentsRequest();

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

            var createResponse = await client.CreateShipmentsAsync(createRequest);

            Assert.AreEqual(false, createResponse.Succeeded);
            Assert.AreEqual(0, createResponse.Shipments.Count);
            Assert.AreEqual(1, createResponse.Errors.Count);
            Assert.AreEqual(0, createResponse.Warnings.Count);
        }
Esempio n. 6
0
        public async Task DeleteItems()
        {
            string accountNumber = AppConfiguration.AusPostAccountNumber;
            string username      = AppConfiguration.AusPostUsername;
            string password      = AppConfiguration.AusPostPassword;

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

            client.Testing = true;

            var createRequest = CreateCreateShipmentsRequest();

            var createResponse = await client.CreateShipmentsAsync(createRequest);

            Assert.AreEqual(true, createResponse.Succeeded, string.Join(", ", createResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(1, createResponse.Shipments.Count);
            Assert.AreEqual(2, createResponse.Shipments[0].Items.Count);

            var updateResponse = await client.DeleteItemAsync(createResponse.Shipments[0].ShipmentID, createResponse.Shipments[0].Items.First(i => i.ItemReference == "SKU-1").ItemID);

            // NOTE: This doesn't return anything other than a general success or fail
            Assert.AreEqual(true, updateResponse.Succeeded, string.Join(", ", updateResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(0, createResponse.Errors.Count);
            Assert.AreEqual(0, createResponse.Warnings.Count);

            var getShipmentsRequest = CreateGetShipmentsRequest(createResponse);

            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(0, getShipmentsResponse.Errors.Count);
            Assert.AreEqual(0, getShipmentsResponse.Warnings.Count);
            Assert.AreEqual(1, getShipmentsResponse.Shipments[0].Items.Count);
            Assert.AreEqual("SKU-2", getShipmentsResponse.Shipments[0].Items[0].ItemReference);
        }
        public async Task DownloadLabels()
        {
            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) + "\\Labels";

            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 createShipmentsRequest = CreateCreateShipmentsRequest();

            var createShipmentsResponse = await client.CreateShipmentsAsync(createShipmentsRequest);

            Assert.AreEqual(true, createShipmentsResponse.Succeeded, string.Join(", ", createShipmentsResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(1, createShipmentsResponse.Shipments.Count);
            Assert.AreEqual(1, createShipmentsResponse.Shipments[0].Items.Count);

            var updateRequest = CreateCreateLabelsRequest(createShipmentsResponse.Shipments[0].ShipmentID);

            var updateResponse = await client.CreateLabelsAsync(updateRequest);

            Assert.AreEqual(true, updateResponse.Succeeded, string.Join(", ", updateResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(1, updateResponse.Labels.Count);
            Assert.AreEqual(LabelStatus.Pending, updateResponse.Labels[0].Status);
            Assert.AreEqual(0, createShipmentsResponse.Errors.Count);
            Assert.AreEqual(0, createShipmentsResponse.Warnings.Count);

            // HACK: Wait for the labels to be generated...
            System.Threading.Thread.Sleep(5000);

            var getShipmentsRequest = CreateGetShipmentsRequest(createShipmentsResponse);

            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.IsTrue(!string.IsNullOrEmpty(getShipmentsResponse.Shipments[0].Items[0].Label.LabelUrl));
            Assert.AreEqual(0, getShipmentsResponse.Errors.Count);
            Assert.AreEqual(0, getShipmentsResponse.Warnings.Count);

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

            Assert.IsFalse(System.IO.File.Exists(pdfFile));
            var downloadResponse = await client.DownloadLabelsAsync(getShipmentsResponse.Shipments[0].Items[0].Label.LabelUrl);

            Assert.AreEqual(true, downloadResponse.Succeeded, string.Join(", ", downloadResponse.Errors.Select(e => e.Message)));

            downloadResponse.SaveToFile(pdfFile);
            Assert.IsTrue(System.IO.File.Exists(pdfFile));
        }