aboutsummaryrefslogtreecommitdiffstats
path: root/ship_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'ship_test.go')
-rw-r--r--ship_test.go94
1 files changed, 67 insertions, 27 deletions
diff --git a/ship_test.go b/ship_test.go
index 7643cb3..bd5432d 100644
--- a/ship_test.go
+++ b/ship_test.go
@@ -3,37 +3,77 @@ package lulu
import (
_ "embed"
"testing"
+
+ "github.com/stretchr/testify/require"
)
//go:embed testdata/shipaddrresp.json
var shipAddrRespJson string
+var shipAddrSample = ShippingAddress{
+ City: "Lübeck",
+ Country: "DE",
+ IsBusiness: false,
+ Name: "Hans Dampf",
+ Phone: MustParsePhoneNumber("844-212-0689"),
+ PostCode: "23552",
+ State: "",
+ Street1: "Holstenstr. 40",
+ Street2: "",
+}
+var shipWarningsSample = []ShippingAddressWarning{{
+ Type: "validation_warning",
+ Path: "external",
+ Code: "REPLACED",
+ Msg: "street1: Holstenstr. 40 -> Holstenstraße 40",
+}}
+var suggestedShipAddrSample = ShippingAddress{
+ Country: "DE",
+ State: "",
+ PostCode: "23552",
+ City: "Lübeck",
+ Street1: "Holstenstraße 40",
+}
+var shipAddrValidationSample = ShippingAddressValidation{
+ Address: shipAddrSample,
+ Warnings: shipWarningsSample,
+ Suggested: suggestedShipAddrSample,
+}
+
func TestUnmarshalShippingAddressValidation(t *testing.T) {
- want := ShippingAddressValidation{
- Address: ShippingAddress{
- City: "Lübeck",
- Country: "DE",
- IsBusiness: false,
- Name: "Hans Dampf",
- Phone: MustParsePhoneNumber("844-212-0689"),
- PostCode: "23552",
- State: "",
- Street1: "Holstenstr. 40",
- Street2: "",
- },
- Warnings: []ShippingAddressWarning{{
- Type: "validation_warning",
- Path: "external",
- Code: "REPLACED",
- Msg: "street1: Holstenstr. 40 -> Holstenstraße 40",
- }},
- Suggested: ShippingAddress{
- Country: "DE",
- State: "",
- PostCode: "23552",
- City: "Lübeck",
- Street1: "Holstenstraße 40",
- },
- }
- requireUnmarshalJsonEq(t, want, shipAddrRespJson)
+ requireUnmarshalJsonEq(t, shipAddrValidationSample, shipAddrRespJson)
+}
+
+func requireMatchShipAddrValidationSample(t *testing.T, av ShippingAddressValidation) {
+ t.Helper()
+ requireMatchShipAddrSample(t, av.Address)
+ requireMatchShipWarningsSample(t, av.Warnings)
+ requireMatchSuggestedShipAddrSample(t, av.Suggested)
+}
+
+func requireMatchShipAddrSample(t *testing.T, addr ShippingAddress) {
+ t.Helper()
+ require.Equal(t, shipAddrSample.City, addr.City)
+ require.Equal(t, shipAddrSample.Country, addr.Country)
+ require.Equal(t, shipAddrSample.IsBusiness, addr.IsBusiness)
+ require.Equal(t, shipAddrSample.Name, addr.Name)
+ require.Equal(t, shipAddrSample.Phone, addr.Phone)
+ require.Equal(t, shipAddrSample.PostCode, addr.PostCode)
+ require.Equal(t, shipAddrSample.State, addr.State)
+ require.Equal(t, shipAddrSample.Street1, addr.Street1)
+ require.Equal(t, shipAddrSample.Street2, addr.Street2)
+}
+
+func requireMatchShipWarningsSample(t *testing.T, warns []ShippingAddressWarning) {
+ t.Helper()
+ require.Equal(t, shipWarningsSample, warns)
+}
+
+func requireMatchSuggestedShipAddrSample(t *testing.T, sug ShippingAddress) {
+ t.Helper()
+ require.Equal(t, suggestedShipAddrSample.Country, sug.Country)
+ require.Equal(t, suggestedShipAddrSample.State, sug.State)
+ require.Equal(t, suggestedShipAddrSample.PostCode, sug.PostCode)
+ require.Equal(t, suggestedShipAddrSample.City, sug.City)
+ require.Equal(t, suggestedShipAddrSample.Street1, sug.Street1)
}