-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathbulk_test.go
More file actions
86 lines (81 loc) · 2.42 KB
/
Copy pathbulk_test.go
File metadata and controls
86 lines (81 loc) · 2.42 KB
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
package bulk
import (
"testing"
)
func TestCmdStructure(t *testing.T) {
if Cmd.Use != "bulk" {
t.Errorf("Use = %q, want %q", Cmd.Use, "bulk")
}
expected := []string{"create", "get", "get-tns", "list"}
have := map[string]bool{}
for _, c := range Cmd.Commands() {
have[c.Name()] = true
}
for _, want := range expected {
if !have[want] {
t.Errorf("missing subcommand %q", want)
}
}
}
// TestFlattenBulkResultLocksV1Shape verifies the bulk plain shape contract:
// {bulkOrderId, status, childOrderIds, portableNumbers, nonPortable}.
func TestFlattenBulkResultLocksV1Shape(t *testing.T) {
resp := map[string]interface{}{
"BulkPortinResponse": map[string]interface{}{
"OrderId": "bulk-abc",
"ProcessingStatus": "INVALID_DRAFT_TNS",
"PortableTnList": map[string]interface{}{
"TN": []interface{}{"8336531000"},
},
"ChildPortinOrderList": map[string]interface{}{
"ChildPortinOrder": map[string]interface{}{
"OrderId": "child-1",
"TnList": map[string]interface{}{
"Tn": "8336531000",
},
},
},
"ErrorList": map[string]interface{}{
"Error": map[string]interface{}{
"Code": "7642",
"Description": "TN list contains at least one toll free number that cannot be ported due to spare status.",
"TnList": map[string]interface{}{
"Tn": "8005587721",
},
},
},
},
}
got := flattenBulkResult(resp)
for _, k := range []string{"bulkOrderId", "status", "childOrderIds", "portableNumbers", "nonPortable"} {
if _, ok := got[k]; !ok {
t.Errorf("v1 plain shape missing key %q", k)
}
}
if got["bulkOrderId"] != "bulk-abc" {
t.Errorf("bulkOrderId = %v, want bulk-abc", got["bulkOrderId"])
}
children, _ := got["childOrderIds"].([]string)
if len(children) == 0 || children[0] != "child-1" {
t.Errorf("childOrderIds = %v, want [child-1]", children)
}
nonPortable, _ := got["nonPortable"].([]map[string]interface{})
if len(nonPortable) == 0 {
t.Fatal("expected at least one nonPortable entry")
}
if code, _ := nonPortable[0]["code"].(string); code != "7642" {
t.Errorf("nonPortable[0].code = %q, want 7642", code)
}
}
func TestStripE164(t *testing.T) {
cases := []struct{ in, want string }{
{"+18005551234", "8005551234"},
{"18005551234", "8005551234"},
{"8005551234", "8005551234"},
}
for _, tt := range cases {
if got := stripE164(tt.in); got != tt.want {
t.Errorf("stripE164(%q) = %q, want %q", tt.in, got, tt.want)
}
}
}