dadata/api/model/model_test.go

139 lines
4.1 KiB
Go
Raw Normal View History

2019-04-09 17:08:32 +03:00
package model
import (
"encoding/json"
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
func TestBank_Recursive(t *testing.T) {
srcData := `{
"opf": {
"type": "BANK",
"full": null,
"short": null
},
"name": {
"payment": "ПАО СБЕРБАНК",
"full": null,
"short": "СБЕРБАНК РОССИИ"
},
"bic": "111",
"swift": "SABRRUMMXXX",
"okpo": null,
"correspondent_account": "30101810400000000225",
"registration_number": "1481",
"rkc": {
"opf": {
"type": "BANK",
"full": null,
"short": null
},
"name": {
"payment": "ПАО СБЕРБАНК",
"full": null,
"short": "СБЕРБАНК РОССИИ"
},
"bic": "222",
"swift": "SABRRUMMXXX",
"okpo": null,
"correspondent_account": "30101810400000000225",
"registration_number": "1481",
"rkc": {
"opf": {
"type": "BANK",
"full": null,
"short": null
},
"name": {
"payment": "ПАО СБЕРБАНК",
"full": null,
"short": "СБЕРБАНК РОССИИ"
},
"bic": "333",
"swift": "SABRRUMMXXX",
"okpo": null,
"correspondent_account": "30101810400000000225",
"registration_number": "1481",
"rkc": {
"opf": {
"type": "BANK",
"full": null,
"short": null
},
"name": {
"payment": "ПАО СБЕРБАНК",
"full": null,
"short": "СБЕРБАНК РОССИИ"
},
"bic": "444",
"swift": "SABRRUMMXXX",
"okpo": null,
"correspondent_account": "30101810400000000225",
"registration_number": "1481",
"rkc": null,
"address": {
"value": "г Москва, ул Вавилова, д 19",
"unrestricted_value": "г Москва, Академический р-н, ул Вавилова, д 19",
"data": {}
},
"phones": null,
"state": {
"status": "ACTIVE",
"actuality_date": 1548201600000,
"registration_date": 677376000000,
"liquidation_date": null
}
},
"address": {
"value": "г Москва, ул Вавилова, д 19",
"unrestricted_value": "г Москва, Академический р-н, ул Вавилова, д 19",
"data": {}
},
"phones": null,
"state": {
"status": "ACTIVE",
"actuality_date": 1548201600000,
"registration_date": 677376000000,
"liquidation_date": null
}
},
"address": {
"value": "г Москва, ул Вавилова, д 19",
"unrestricted_value": "г Москва, Академический р-н, ул Вавилова, д 19",
"data": {}
},
"phones": null,
"state": {
"status": "ACTIVE",
"actuality_date": 1548201600000,
"registration_date": 677376000000,
"liquidation_date": null
}
},
"address": {
"value": "г Москва, ул Вавилова, д 19",
"unrestricted_value": "г Москва, Академический р-н, ул Вавилова, д 19",
"data": {}
},
"phones": null,
"state": {
"status": "ACTIVE",
"actuality_date": 1548201600000,
"registration_date": 677376000000,
"liquidation_date": null
}
}`
bank := Bank{}
err := json.NewDecoder(strings.NewReader(srcData)).Decode(&bank)
assert.NoError(t, err)
assert.Equal(t, "111", bank.Bic)
assert.Equal(t, "222", bank.Rkc.Bic)
assert.Equal(t, "333", bank.Rkc.Rkc.Bic)
assert.Equal(t, "444", bank.Rkc.Rkc.Rkc.Bic)
}