forked from apilayer/goiban-service
-
Notifications
You must be signed in to change notification settings - Fork 7
/
iban_generation_test.go
140 lines (106 loc) · 2.99 KB
/
iban_generation_test.go
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
package main
import (
"encoding/json"
"io/ioutil"
"net/http"
"testing"
"github.com/fourcube/goiban"
)
func TestGenerateIBANIgnoreCountryCase(t *testing.T) {
respA, err := http.Get(server.URL + "/calculate/BE/539/007547034")
if err != nil {
t.Errorf("failed to generate iban %v", err)
t.FailNow()
}
respB, err := http.Get(server.URL + "/calculate/be/539/007547034")
if err != nil {
t.Errorf("failed to generate iban %v", err)
t.FailNow()
}
var resA goiban.ParserResult
data, _ := ioutil.ReadAll(respA.Body)
json.Unmarshal(data, &resA)
var resB goiban.ParserResult
data, _ = ioutil.ReadAll(respB.Body)
json.Unmarshal(data, &resB)
if !resA.Valid || !resB.Valid {
t.Errorf("expected request to succeed")
}
if resA.Data != resB.Data {
t.Errorf("expected case insensitivity")
}
}
func TestGenerateIBANInvalidCountryCode(t *testing.T) {
resp, err := http.Get(server.URL + "/calculate/12/539/007547034")
if err != nil {
t.Errorf("failed to generate iban %v", err)
t.FailNow()
}
var res CalculateError
data, err := ioutil.ReadAll(resp.Body)
json.Unmarshal(data, &res)
if res.Valid {
t.Errorf("expected request to fail")
}
}
func TestGenerateIBANTooMuchData(t *testing.T) {
resp, err := http.Get(server.URL + "/calculate/BE/539/007547111111111111111111")
if err != nil {
t.Errorf("failed to generate iban %v", err)
t.FailNow()
}
var res goiban.ParserResult
data, _ := ioutil.ReadAll(resp.Body)
json.Unmarshal(data, &res)
if res.Valid {
t.Errorf("expected request to fail")
}
}
func TestGenerateIBANV2WithValidation(t *testing.T) {
resp, err := http.Get(server.URL + "/v2/calculate/DE/1/9?getBIC=true&validateBankCode=true")
if err != nil {
t.Errorf("failed to generate iban %v", err)
t.FailNow()
}
var res goiban.ValidationResult
data, _ := ioutil.ReadAll(resp.Body)
json.Unmarshal(data, &res)
if res.Valid {
t.Errorf("expected request to fail")
}
}
func TestGenerateIBANV2NoValidation(t *testing.T) {
resp, err := http.Get(server.URL + "/v2/calculate/DE/1/9")
if err != nil {
t.Errorf("failed to generate iban %v", err)
t.FailNow()
}
var res goiban.ValidationResult
data, _ := ioutil.ReadAll(resp.Body)
json.Unmarshal(data, &res)
if res.Iban != "DE22000000010000000009" {
t.Errorf("expected returned iban to equal DE22000000010000000009, got " + res.Iban)
}
if res.Valid {
t.Errorf("expected request to fail")
}
}
func TestGenerateIBANV2GetBIC(t *testing.T) {
resp, err := http.Get(server.URL + "/v2/calculate/DE/37040044/0532013000?getBIC=true")
if err != nil {
t.Errorf("failed to generate iban %v", err)
t.FailNow()
}
var res goiban.ValidationResult
data, _ := ioutil.ReadAll(resp.Body)
json.Unmarshal(data, &res)
if res.Iban != "DE89370400440532013000" {
t.Errorf("expected returned iban to equal DE89370400440532013000, was " + res.Iban)
}
if res.BankData.Bic != "COBADEFFXXX" {
t.Errorf("expected returned bic to equal COBADEFFXXX, was " + res.BankData.Bic)
}
if !res.Valid {
t.Errorf("expected request to succeed")
}
}