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); }
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); }
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)); }