-
Notifications
You must be signed in to change notification settings - Fork 136
/
lookup_test.go
102 lines (94 loc) · 2.4 KB
/
lookup_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
package gotwilio
import (
"encoding/json"
"fmt"
"net/http"
"net/http/httptest"
"testing"
)
func TestLookupCarrier(t *testing.T) {
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, testLookupResponse)
}))
defer srv.Close()
twilio := NewTwilioClient("", "")
twilio.LookupURL = srv.URL
req := &LookupReq{
PhoneNumber: "+11231231234",
Type: "carrier",
}
lookup, err := twilio.SubmitLookup(*req)
if err != nil {
t.Fatalf("Failed: %s", err.Error())
}
bs, err := json.MarshalIndent(lookup, "", " ")
if err != nil {
t.Fatalf("Failed: %s", err.Error())
}
t.Logf("Lookup Result:\n%s\n", string(bs))
}
func TestLookupCallerName(t *testing.T) {
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, testLookupResponse)
}))
defer srv.Close()
twilio := NewTwilioClient("", "")
twilio.LookupURL = srv.URL
req := &LookupReq{
PhoneNumber: "+11231231234",
Type: "caller-name",
}
lookup, err := twilio.SubmitLookup(*req)
if err != nil {
t.Fatalf("Failed: %s", err.Error())
}
bs, err := json.MarshalIndent(lookup, "", " ")
if err != nil {
t.Fatalf("Failed: %s", err.Error())
}
t.Logf("Lookup Result:\n%s\n", string(bs))
}
func TestLookupMultipleTypes(t *testing.T) {
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, testLookupResponse)
}))
defer srv.Close()
twilio := NewTwilioClient("", "")
twilio.LookupURL = srv.URL
req := &LookupReq{
PhoneNumber: "+11231231234",
Types: []string{"carrier", "caller-name"},
}
lookup, err := twilio.SubmitLookup(*req)
if err != nil {
t.Fatalf("Failed: %s", err.Error())
}
bs, err := json.MarshalIndent(lookup, "", " ")
if err != nil {
t.Fatalf("Failed: %s", err.Error())
}
t.Logf("Lookup Result:\n%s\n", string(bs))
}
// Example from https://www.twilio.com/docs/usage/api/usage-record:
const testLookupResponse = `
{
"caller_name": {
"error_code": null,
"caller_name": "Twilio Inc",
"caller_type": "CONSUMER"
},
"carrier": {
"error_code": null,
"mobile_country_code": "310",
"mobile_network_code": "456",
"name": "verizon",
"type": "mobile"
},
"country_code": "US",
"national_format": "(510) 867-5310",
"phone_number": "+15108675310",
"fraud": null,
"add_ons": null,
"url": "https://lookups.twilio.com/v1/PhoneNumbers/phone_number"
}
`