Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sundowndev
GitHub Repository: sundowndev/phoneinfoga
Path: blob/master/lib/remote/local_scanner_test.go
988 views
1
package remote
2
3
import (
4
"github.com/stretchr/testify/assert"
5
"github.com/sundowndev/phoneinfoga/v2/lib/filter"
6
"github.com/sundowndev/phoneinfoga/v2/lib/number"
7
"testing"
8
)
9
10
func TestLocalScanner_Metadata(t *testing.T) {
11
scanner := NewLocalScanner()
12
assert.Equal(t, Local, scanner.Name())
13
assert.NotEmpty(t, scanner.Description())
14
}
15
16
func TestLocalScanner(t *testing.T) {
17
testcases := []struct {
18
name string
19
number *number.Number
20
expected map[string]interface{}
21
wantErrors map[string]error
22
}{
23
{
24
name: "successful scan",
25
number: func() *number.Number {
26
n, _ := number.NewNumber("15556661212")
27
return n
28
}(),
29
expected: map[string]interface{}{
30
"local": LocalScannerResponse{
31
RawLocal: "5556661212",
32
Local: "(555) 666-1212",
33
E164: "+15556661212",
34
International: "15556661212",
35
CountryCode: 1,
36
},
37
},
38
wantErrors: map[string]error{},
39
},
40
}
41
42
for _, tt := range testcases {
43
t.Run(tt.name, func(t *testing.T) {
44
scanner := NewLocalScanner()
45
remote := NewLibrary(filter.NewEngine())
46
remote.AddScanner(scanner)
47
48
if scanner.DryRun(*tt.number, ScannerOptions{}) != nil {
49
t.Fatal("DryRun() should return nil")
50
}
51
52
got, errs := remote.Scan(tt.number, ScannerOptions{})
53
if len(tt.wantErrors) > 0 {
54
assert.Equal(t, tt.wantErrors, errs)
55
} else {
56
assert.Len(t, errs, 0)
57
}
58
assert.Equal(t, tt.expected, got)
59
})
60
}
61
}
62
63