Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sundowndev
GitHub Repository: sundowndev/phoneinfoga
Path: blob/master/lib/remote/suppliers/ovh_test.go
994 views
1
package suppliers
2
3
import (
4
"errors"
5
"github.com/stretchr/testify/assert"
6
"github.com/sundowndev/phoneinfoga/v2/lib/number"
7
"gopkg.in/h2non/gock.v1"
8
"net/url"
9
"testing"
10
)
11
12
func TestOVHSupplierSuccess(t *testing.T) {
13
defer gock.Off() // Flush pending mocks after test execution
14
15
num, _ := number.NewNumber("33365172812")
16
17
gock.New("https://api.ovh.com").
18
Get("/1.0/telephony/number/detailedZones").
19
MatchParam("country", "fr").
20
Reply(200).
21
JSON([]OVHAPIResponseNumber{
22
{
23
ZneList: []string{},
24
MatchingCriteria: "",
25
Prefix: 33,
26
InternationalNumber: "003336517xxxx",
27
Country: "fr",
28
ZipCode: "",
29
Number: "036517xxxx",
30
City: "Abbeville",
31
AskedCity: "",
32
},
33
})
34
35
s := NewOVHSupplier()
36
37
got, err := s.Search(*num)
38
assert.Nil(t, err)
39
40
expectedResult := &OVHScannerResponse{
41
Found: true,
42
NumberRange: "036517xxxx",
43
City: "Abbeville",
44
}
45
46
assert.Equal(t, expectedResult, got)
47
}
48
49
func TestOVHSupplierError(t *testing.T) {
50
defer gock.Off() // Flush pending mocks after test execution
51
52
num, _ := number.NewNumber("33365172812")
53
54
dummyError := errors.New("test")
55
56
gock.New("https://api.ovh.com").
57
Get("/1.0/telephony/number/detailedZones").
58
MatchParam("country", "fr").
59
ReplyError(dummyError)
60
61
s := NewOVHSupplier()
62
63
got, err := s.Search(*num)
64
assert.Nil(t, got)
65
assert.Equal(t, &url.Error{
66
Op: "Get",
67
URL: "https://api.ovh.com/1.0/telephony/number/detailedZones?country=fr",
68
Err: dummyError,
69
}, err)
70
}
71
72
func TestOVHSupplierCountryCodeError(t *testing.T) {
73
defer gock.Off() // Flush pending mocks after test execution
74
75
gock.New("https://api.ovh.com").
76
Get("/1.0/telephony/number/detailedZones").
77
MatchParam("country", "co").
78
Reply(400).
79
JSON(OVHAPIErrorResponse{Message: "[country] Given data (co) does not belong to the NumberCountryEnum enumeration"})
80
81
num, err := number.NewNumber("+575556661212")
82
if err != nil {
83
t.Fatal(err)
84
}
85
86
s := NewOVHSupplier()
87
88
got, err := s.Search(*num)
89
assert.Nil(t, got)
90
assert.EqualError(t, err, "[country] Given data (co) does not belong to the NumberCountryEnum enumeration")
91
}
92
93