@@ -94,6 +94,37 @@ type CardMastercardData struct {
94
94
Bar int64 `json:"bar"`
95
95
}
96
96
97
+ type CommonFields struct {
98
+ Metadata Metadata `json:"metadata"`
99
+ Value string `json:"value"`
100
+ }
101
+
102
+ type commonFieldsJSON struct {
103
+ Metadata Field
104
+ Value Field
105
+ ExtraFields map [string ]Field
106
+ }
107
+
108
+ type CardEmbedded struct {
109
+ CommonFields
110
+ Processor CardVisaProcessor `json:"processor"`
111
+ Data CardVisaData `json:"data"`
112
+ IsFoo bool `json:"is_foo"`
113
+
114
+ JSON cardEmbeddedJSON
115
+ }
116
+
117
+ type cardEmbeddedJSON struct {
118
+ commonFieldsJSON
119
+ Processor Field
120
+ Data Field
121
+ IsFoo Field
122
+ ExtraFields map [string ]Field
123
+ raw string
124
+ }
125
+
126
+ func (r cardEmbeddedJSON ) RawJSON () string { return r .raw }
127
+
97
128
var portTests = map [string ]struct {
98
129
from any
99
130
to any
@@ -158,6 +189,51 @@ var portTests = map[string]struct {
158
189
Value : false ,
159
190
},
160
191
},
192
+ "embedded to card" : {
193
+ CardEmbedded {
194
+ CommonFields : CommonFields {
195
+ Metadata : Metadata {
196
+ CreatedAt : "Mar 29 2024" ,
197
+ },
198
+ Value : "embedded_value" ,
199
+ },
200
+ Processor : "visa" ,
201
+ IsFoo : true ,
202
+ Data : CardVisaData {
203
+ Foo : "embedded_foo" ,
204
+ },
205
+ JSON : cardEmbeddedJSON {
206
+ commonFieldsJSON : commonFieldsJSON {
207
+ Metadata : Field {raw : `{"created_at":"Mar 29 2024"}` , status : valid },
208
+ Value : Field {raw : `"embedded_value"` , status : valid },
209
+ },
210
+ raw : `{"processor":"visa","is_foo":true,"data":{"foo":"embedded_foo"}}` ,
211
+ Processor : Field {raw : `"visa"` , status : valid },
212
+ IsFoo : Field {raw : `true` , status : valid },
213
+ Data : Field {raw : `{"foo":"embedded_foo"}` , status : valid },
214
+ },
215
+ },
216
+ Card {
217
+ Processor : "visa" ,
218
+ IsFoo : true ,
219
+ IsBar : false ,
220
+ Data : CardVisaData {
221
+ Foo : "embedded_foo" ,
222
+ },
223
+ Metadata : Metadata {
224
+ CreatedAt : "Mar 29 2024" ,
225
+ },
226
+ Value : "embedded_value" ,
227
+ JSON : cardJSON {
228
+ raw : "{\" processor\" :\" visa\" ,\" is_foo\" :true,\" data\" :{\" foo\" :\" embedded_foo\" }}" ,
229
+ Processor : Field {raw : `"visa"` , status : 0x3 },
230
+ IsFoo : Field {raw : "true" , status : 0x3 },
231
+ Data : Field {raw : `{"foo":"embedded_foo"}` , status : 0x3 },
232
+ Metadata : Field {raw : `{"created_at":"Mar 29 2024"}` , status : 0x3 },
233
+ Value : Field {raw : `"embedded_value"` , status : 0x3 },
234
+ },
235
+ },
236
+ },
161
237
}
162
238
163
239
func TestPort (t * testing.T ) {
0 commit comments