1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
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)
}
|