diff options
Diffstat (limited to 'print_test.go')
| -rw-r--r-- | print_test.go | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/print_test.go b/print_test.go new file mode 100644 index 0000000..9e51095 --- /dev/null +++ b/print_test.go @@ -0,0 +1,115 @@ +package lulu + +import ( + _ "embed" + "testing" + "time" + + "github.com/shopspring/decimal" +) + +//go:embed testdata/getprintjobsresp.json +var getPrintJobsRespJson string + +func TestUnmarshalGetPrintJobsResp(t *testing.T) { + want := getPrintJobsResp{ + Count: 1, + Next: "https://api.lulu.com/resources/?page=1&page_size=1", + Prev: "https://api.lulu.com/resources/?page=1&page_size=1", + Results: []PrintJob{{ + Contact: MustParseEmailAddress("test@test.com"), + Cost: PrintJobCost{ + LineItemCosts: nil, + ShipCost: FulfillmentCost{ + TotalCostExclTax: decimal.RequireFromString("132.74"), + TotalCostInclTax: decimal.RequireFromString("132.74"), + TotalTax: decimal.RequireFromString("0.00"), + TaxRate: decimal.RequireFromString("0.000000"), + }, + FulfillmentCost: FulfillmentCost{ + TotalCostExclTax: decimal.RequireFromString("0.75"), + TotalCostInclTax: decimal.RequireFromString("0.81"), + TotalTax: decimal.RequireFromString("0.06"), + TaxRate: decimal.RequireFromString("0.080000"), + }, + Fees: []Fee{{ + Currency: "USD", + Type: "HANDLING_FEE", + Sku: "HANDLING_FEE_6", + TaxRate: decimal.RequireFromString("0.088750"), + TotalCostExclTax: decimal.RequireFromString("4.00"), + TotalCostInclTax: decimal.RequireFromString("4.36"), + TotalTax: decimal.RequireFromString("0.36"), + }}, + TotalCostExclTax: decimal.RequireFromString("123.45"), + TotalCostInclTax: decimal.RequireFromString("678.00"), + TotalTax: decimal.RequireFromString("0.123400"), + }, + Created: mustParseTime(time.RFC3339, "2017-08-07T08:47:26.485456Z"), + Modified: mustParseTime(time.RFC3339, "2017-08-07T08:47:26.485490Z"), + EstimatedShippingDates: EstimatedShippingDates{ + ArrivalMax: MustParseDate("2017-08-12"), + ArrivalMin: MustParseDate("2017-08-10"), + DispatchMax: MustParseDate("2017-08-09"), + DispatchMin: MustParseDate("2017-08-07"), + }, + ExternalId: "demo-time", + Id: 1, + LineItems: []LineItem{{ + ExternalId: "item-reference-1", + Id: 1, + PrintableId: "", + PrintableNormalization: PrintableNormalization{ + Cover: NormalizationJob{ + SrcMd5Sum: "e78512c777e7f5841fe8f1992cefb898", + SrcUrl: "https://www.dropbox.com/sh/p3zh22vzsaegiri/AADP367j0bTWlt8fCu-_tm2ia/161025/139056_cover.pdf?dl=1", + }, + Interior: NormalizationJob{ + SrcMd5Sum: "7f8af20c296747689756f8e310135d79", + SrcUrl: "https://www.dropbox.com/sh/p3zh22vzsaegiri/AACOUn3LFKsITDzylh13bQpsa/161025/thesis2.pdf?dl=1", + }, + }, + Quantity: 20, + Status: LineItemStatus{ + Messages: LineItemStatusMessages{ + Info: "Line-item is currently being validated", + }, + Status: OrderCreated, + }, + Title: "My Book", + }}, + ProductionDelay: 120 * time.Minute, + ProductionDue: time.Time{}, + AddressValidation: ShippingAddressValidation{ + Address: ShippingAddress{ + City: "Lübeck", + Country: "DE", + IsBusiness: false, + Name: "Hans Dampf", + Phone: "844-212-0689", + PostCode: "23552", + State: "", + Street1: "Holstenstr. 40", + Street2: "", + }, + Suggested: ShippingAddress{ + Country: "DE", + State: "", + PostCode: "23552", + City: "Lübeck", + Street1: "Holstenstraße 40", + Street2: "", + }, + Warnings: []ShippingAddressWarning{{ + Type: "validation_warning", + Path: "external", + Code: "REPLACED", + Msg: "street1: Holstenstr. 40 -> Holstenstraße 40", + }}, + }, + ShipOpt: Mail, + }}, + } + + requireUnmarshalJsonEq(t, want, getPrintJobsRespJson) +} |