Beispiel #1
0
        private static Connection ResponseFromFile(string filename)
        {
            var contents = Fixture.Json(filename);

            return(FakeConnection(returns => new HttpResponse {
                Body = contents
            }));
        }
        public void DeserializeTheCreatedOrder()
        {
            var body     = Fixture.Json("create_order_response");
            var response = new HttpResponse {
                Body = body
            };
            var createOrderResponse = new ResponseHandler().Build <CreateOrderResponse>(response);
            var order = createOrderResponse.Order;

            Assert.AreEqual("ABC-6355", order.ExternalOrderIdentifier);
            var date = new DateTimeOffset(2015, 1, 23, 20, 13, 32, new TimeSpan());

            Assert.AreEqual(date, order.OrderedAt);
            Assert.AreEqual("ready_for_shipment", order.OrderStatus);
            Assert.AreEqual(0.01m, order.TotalIncludingTax);
            Assert.AreEqual(0.02m, order.TotalExcludingTax);
            Assert.AreEqual(0.03m, order.DiscountAmount);
            Assert.AreEqual(0.04m, order.CouponDiscount);
            Assert.AreEqual(0.05m, order.SubtotalIncludingTax);
            Assert.AreEqual(0.06m, order.SubtotalExcludingTax);
            Assert.AreEqual(0.07m, order.SubtotalTax);
            Assert.AreEqual(0.08m, order.TotalTax);
            Assert.AreEqual(0.09m, order.BaseShippingCost);
            Assert.AreEqual(0.10m, order.ShippingCostIncludingTax);
            Assert.AreEqual(0.11m, order.ShippingCostExcludingTax);
            Assert.AreEqual(0.12m, order.ShippingCostTax);
            Assert.AreEqual(0.13m, order.BaseHandlingCost);
            Assert.AreEqual(0.14m, order.HandlingCostExcludingTax);
            Assert.AreEqual(0.15m, order.HandlingCostIncludingTax);
            Assert.AreEqual(0.16m, order.HandlingCostTax);
            Assert.AreEqual(0.17m, order.BaseWrappingCost);
            Assert.AreEqual(0.18m, order.WrappingCostExcludingTax);
            Assert.AreEqual(0.19m, order.WrappingCostIncludingTax);
            Assert.AreEqual(0.20m, order.WrappingCostTax);
            Assert.AreEqual("The Bills", order.BillingCompany);
            Assert.AreEqual("Jim", order.BillingFirstName);
            Assert.AreEqual("Kelly", order.BillingLastName);
            Assert.AreEqual("100 Cold Lake Way", order.BillingAddress);
            Assert.AreEqual("Suite #0", order.BillingAddress2);
            Assert.AreEqual("Buffalo", order.BillingCity);
            Assert.AreEqual("NY", order.BillingState);
            Assert.AreEqual("USA", order.BillingCountry);
            Assert.AreEqual("19901", order.BillingPostalCode);
            Assert.AreEqual("2124443333", order.BillingPhoneNumber);
            Assert.AreEqual("*****@*****.**", order.BillingEmail);
            Assert.AreEqual("c71dc6da574eea04e2c926906bcb4eab", order.StoreApiKey);
            var updated = new DateTimeOffset(2015, 1, 23, 20, 13, 33, new TimeSpan());

            Assert.AreEqual(updated, order.UpdatedAt);


            Assert.AreEqual(1, order.Recipients.Count);
            var recipient = order.Recipients[0];

            Assert.AreEqual("Colin", recipient.FirstName);
            Assert.AreEqual("Smith", recipient.LastName);
            Assert.AreEqual("1600 Pennsylvania Ave", recipient.Address);
            Assert.AreEqual("Suite # 2", recipient.Address2);
            Assert.AreEqual("c/o White House", recipient.Address3);
            Assert.AreEqual("Washington", recipient.City);
            Assert.AreEqual("DC", recipient.State);
            Assert.AreEqual(true, recipient.Residential);
            Assert.AreEqual("Province", recipient.Province);
            Assert.AreEqual("United States", recipient.Country);
            Assert.AreEqual("12345", recipient.PostalCode);
            Assert.AreEqual("5250", recipient.PostalCodePlus4);
            Assert.AreEqual("5553339999", recipient.PhoneNumber);
            Assert.AreEqual("*****@*****.**", recipient.Email);
            Assert.AreEqual(0.00m, recipient.BaseCost);
            Assert.AreEqual(1.00m, recipient.CostExcludingTax);
            Assert.AreEqual(2.00m, recipient.CostIncludingTax);
            Assert.AreEqual(3.00m, recipient.CostTax);
            Assert.AreEqual(4.00m, recipient.BaseHandlingCost);
            Assert.AreEqual(5.00m, recipient.HandlingCostExcludingTax);
            Assert.AreEqual(6.00m, recipient.HandlingCostIncludingTax);
            Assert.AreEqual(7.00m, recipient.HandlingCostTax);
            Assert.AreEqual(4, recipient.ShippingZoneId);
            Assert.AreEqual("North", recipient.ShippingZoneName);
            Assert.AreEqual(88, recipient.ItemsTotal);
            Assert.AreEqual("Fast", recipient.ShippingMethod);
            Assert.AreEqual(66, recipient.ItemsShipped);
            Assert.AreEqual(33, recipient.ExtShippingDetailId);


            Assert.AreEqual(2, recipient.LineItems.Count);

            var line1 = recipient.LineItems[0];

            Assert.AreEqual("Sprocket", line1.ItemName);
            Assert.AreEqual(null, line1.Sku);
            Assert.AreEqual("W4", line1.BinPickingNumber);
            Assert.AreEqual(16.5m, line1.WeightInOunces);
            Assert.AreEqual(7, line1.Quantity);
            Assert.AreEqual(1.01m, line1.TotalExcludingTax);
            Assert.AreEqual(1.02m, line1.PriceExcludingTax);
            Assert.AreEqual(1.03m, line1.UnitPrice);
            Assert.AreEqual("998", line1.ExtLineItemId);
            Assert.AreEqual("887", line1.ExtProductId);
            Assert.AreEqual(0, line1.ProductOptions.Count);
            var line2 = recipient.LineItems[1];

            Assert.AreEqual("Widget", line2.ItemName);
            Assert.AreEqual("AB-321", line2.Sku);
            Assert.AreEqual(null, line2.BinPickingNumber);
            Assert.AreEqual(4.01m, line2.TotalExcludingTax);
            Assert.AreEqual(3, line2.ProductOptions.Count);
            Assert.AreEqual("blue", line2.ProductOptions["color"]);
            Assert.AreEqual("2", line2.ProductOptions["size"]);
            Assert.AreEqual("True", line2.ProductOptions["wide"]);
        }