diff options
Diffstat (limited to 'print_test.go')
| -rw-r--r-- | print_test.go | 85 |
1 files changed, 53 insertions, 32 deletions
diff --git a/print_test.go b/print_test.go index d14c529..ec4e455 100644 --- a/print_test.go +++ b/print_test.go @@ -75,49 +75,70 @@ func TestUnmarshalGetPrintJobsResp(t *testing.T) { Messages: LineItemStatusMessages{ Info: "Line-item is currently being validated", }, - Status: OrderCreated, + Status: ItemCreated, }, 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", - }}, + ProductionDelay: 120 * time.Minute, + ProductionDue: time.Time{}, + AddressValidation: shipAddrValidationSample, + ShipOpt: Mail, + Status: PrintJobStatus{ + Changed: mustParseTime(time.RFC3339, "2017-08-07T08:47:26.480493Z"), + Msg: "Print-job is currently being validated", + Status: OrderCreated, }, - ShipOpt: Mail, }}, } requireUnmarshalJsonEq(t, want, getPrintJobsRespJson) } -func TestPrintJobs(t *testing.T) { +func TestGetPrintJobs(t *testing.T) { t.Fail() // TODO: create a few print jobs and retrieve them c := newClient(t) - _, err := c.PrintJobs() + _, err := c.GetPrintJobs() + require.NoError(t, err) +} + +func TestPrint(t *testing.T) { + contact := MustParseEmailAddress("test@test.com") + jobEid := "demo-time" + productionDelay := 120 * time.Minute + addr := shipAddrSample + shipOpt := Mail + item := Printable{ + ExternalId: "item-reference-1", + CoverUrl: "https://www.dropbox.com/s/7bv6mg2tj0h3l0r/lulu_trade_perfect_template.pdf?dl=1&raw=1", + InteriorUrl: "https://www.dropbox.com/s/r20orb8umqjzav9/lulu_trade_interior_template-32.pdf?dl=1&raw=1", + Mfg: PkgId{UsTrade, Mono, Standard, Perfect, P60UncoatedWhite, Matte, NoLinen, NoFoil}, + Quantity: 30, + Title: "My Book", + } + + c := newClient(t) + startTime := time.Now() + job, err := c.Print(contact, jobEid, productionDelay, addr, shipOpt, []Printable{item}) require.NoError(t, err) + require.Equal(t, contact, job.Contact) + requireAfter(t, job.Created, startTime) + requireAfter(t, job.Modified, startTime) + require.Equal(t, jobEid, job.ExternalId) + require.NotZero(t, job.Id) + require.Len(t, job.LineItems, 1) + jobItem := job.LineItems[0] + require.Equal(t, item.ExternalId, jobItem.ExternalId) + require.NotZero(t, jobItem.Id) + require.Equal(t, item.CoverUrl, jobItem.PrintableNormalization.Cover.SrcUrl) + require.Equal(t, item.InteriorUrl, jobItem.PrintableNormalization.Interior.SrcUrl) + require.Equal(t, item.Mfg, jobItem.Mfg) + require.Equal(t, item.Quantity, jobItem.Quantity) + require.NotEmpty(t, jobItem.Status.Messages.Info) + require.NotEmpty(t, jobItem.Status.Status) + require.Equal(t, productionDelay, job.ProductionDelay) + requireMatchShipAddrValidationSample(t, job.AddressValidation) + require.Equal(t, shipOpt, job.ShipOpt) + requireAfter(t, job.Status.Changed, startTime) + require.NotEmpty(t, job.Status.Msg) + require.NotEmpty(t, job.Status.Status) } |