diff options
Diffstat (limited to 'lulu_test.go')
| -rw-r--r-- | lulu_test.go | 83 |
1 files changed, 64 insertions, 19 deletions
diff --git a/lulu_test.go b/lulu_test.go index 5f11e99..513d590 100644 --- a/lulu_test.go +++ b/lulu_test.go @@ -46,12 +46,10 @@ func TestMain(m *testing.M) { func TestMarshalValidateInteriorReq(t *testing.T) { t.Parallel() - want := `{ "source_url": "https://example.com/interior.pdf", "pod_package_id": "0850X1100.BW.STD.LW.060UW444.MNG" }` - req := validateInteriorReq{ "https://example.com/interior.pdf", PkgId{ @@ -64,7 +62,6 @@ func TestMarshalValidateInteriorReq(t *testing.T) { NavyLinen, GoldFoil}, } - requireMarshalJsonEq(t, want, req) } @@ -77,26 +74,23 @@ func TestMarshalValidateInteriorBasicReq(t *testing.T) { func TestUnmarshalInteriorValidationRecord(t *testing.T) { t.Parallel() - data := []byte(`{ + data := `{ "id": 1, "source_url": "https://www.dropbox.com/sh/p3zh22vzsaegiri/AACOUn3LFKsITDzylh13bQpsa/161025/thesis2.pdf?dl=1", "page_count": 210, "errors": null, "status": "VALIDATING", "valid_pod_package_ids": null -}`) - var rec InteriorValidationRecord - err := json.Unmarshal(data, &rec) - require.NoError(t, err) - require.Equal(t, - InteriorValidationRecord{ - 1, - "https://www.dropbox.com/sh/p3zh22vzsaegiri/AACOUn3LFKsITDzylh13bQpsa/161025/thesis2.pdf?dl=1", - 210, - "", - StatusValidating, - nil}, - rec) +}` + want := InteriorValidationRecord{ + 1, + "https://www.dropbox.com/sh/p3zh22vzsaegiri/AACOUn3LFKsITDzylh13bQpsa/161025/thesis2.pdf?dl=1", + 210, + "", + StatusValidating, + nil, + } + requireUnmarshalJsonEq(t, want, data) } func TestValidateInterior(t *testing.T) { @@ -134,7 +128,7 @@ func TestGetInteriorValidation(t *testing.T) { id, err := c.ValidateInteriorBasic(interiorUrl) require.NoError(t, err) - // Poll until status is non-null + // Poll until done timeout := 15 * time.Second period := time.Second ctx, cancel := context.WithTimeout(context.Background(), timeout) @@ -146,11 +140,12 @@ func TestGetInteriorValidation(t *testing.T) { rec, err := c.GetInteriorValidation(id) require.NoError(t, err) if rec.Status.IsFinal() { + require.Equal(t, StatusValidated, rec.Status) + require.Equal(t, id, rec.Id) require.Equal(t, interiorUrl, rec.SrcUrl) require.Equal(t, uint(210), rec.NPages) require.Empty(t, rec.Errors) - require.Equal(t, StatusValidated, rec.Status) require.NotEmpty(t, rec.ValidPkgIds) return } @@ -162,6 +157,56 @@ func TestGetInteriorValidation(t *testing.T) { } } +func TestUnmarshalCoverDimensions(t *testing.T) { + t.Parallel() + requireUnmarshalJsonEq(t, + CoverDimensions{123.4, 567.8, Points}, + `{"width": "123.400", "height": "567.800", "unit": "pt"}`) + requireUnmarshalJsonEq(t, + CoverDimensions{123.4, 567.8, Millimeters}, + `{"width": "123.400", "height": "567.800", "unit": "mm"}`) + requireUnmarshalJsonEq(t, + CoverDimensions{123.4, 567.8, Inches}, + `{"width": "123.400", "height": "567.800", "unit": "inch"}`) +} + +func TestMarshalCoverDimensionsReq(t *testing.T) { + t.Parallel() + requireMarshalJsonEq(t, `{ + "pod_package_id": "0600X0900.BW.STD.PB.060UW444.MXX", + "interior_page_count": 210, + "unit": "pt"}`, + coverDimensionsReq{ + PkgId{ + UsTrade, + Mono, + Standard, + Perfect, + P60UncoatedWhite, + Matte, + NoLinen, + NoFoil}, + 210, + Points}) +} + +func TestCoverDimensions(t *testing.T) { + c := newClient(t) + mfg := PkgId{ + UsTrade, + Mono, + Standard, + Perfect, + P60UncoatedWhite, + Matte, + NoLinen, + NoFoil, + } + dims, err := c.CoverDimensions(mfg, 210, Points) + require.NoError(t, err) + require.Equal(t, CoverDimensions{920, 666, Points}, dims) +} + func newClient(t *testing.T) *Client { t.Helper() c, err := NewClient(t.Context(), clientKey, clientSecret) |