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) { 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) }