Path: blob/master/lib/remote/ovh_scanner_test.go
1715 views
package remote_test12import (3"errors"4"github.com/stretchr/testify/assert"5"github.com/sundowndev/phoneinfoga/v2/lib/filter"6"github.com/sundowndev/phoneinfoga/v2/lib/number"7"github.com/sundowndev/phoneinfoga/v2/lib/remote"8"github.com/sundowndev/phoneinfoga/v2/lib/remote/suppliers"9"github.com/sundowndev/phoneinfoga/v2/mocks"10"testing"11)1213func TestOVHScanner_Metadata(t *testing.T) {14scanner := remote.NewOVHScanner(&mocks.OVHSupplier{})15assert.Equal(t, remote.OVH, scanner.Name())16assert.NotEmpty(t, scanner.Description())17}1819func TestOVHScanner(t *testing.T) {20dummyError := errors.New("dummy")2122dummyNumber, _ := number.NewNumber("33365174444")2324testcases := []struct {25name string26number *number.Number27mocks func(s *mocks.OVHSupplier)28expected map[string]interface{}29wantErrors map[string]error30}{31{32name: "successful scan",33number: func() *number.Number {34return dummyNumber35}(),36mocks: func(s *mocks.OVHSupplier) {37s.On("Search", *dummyNumber).Return(&suppliers.OVHScannerResponse{38Found: false,39}, nil).Once()40},41expected: map[string]interface{}{42"ovh": remote.OVHScannerResponse{43Found: false,44},45},46wantErrors: map[string]error{},47},48{49name: "failed scan",50number: func() *number.Number {51return dummyNumber52}(),53mocks: func(s *mocks.OVHSupplier) {54s.On("Search", *dummyNumber).Return(nil, dummyError).Once()55},56expected: map[string]interface{}{},57wantErrors: map[string]error{58"ovh": dummyError,59},60},61{62name: "country not supported",63number: func() *number.Number {64num, _ := number.NewNumber("15556661212")65return num66}(),67mocks: func(s *mocks.OVHSupplier) {},68expected: map[string]interface{}{},69wantErrors: map[string]error{},70},71}7273for _, tt := range testcases {74t.Run(tt.name, func(t *testing.T) {75OVHSupplierMock := &mocks.OVHSupplier{}76tt.mocks(OVHSupplierMock)7778scanner := remote.NewOVHScanner(OVHSupplierMock)79lib := remote.NewLibrary(filter.NewEngine())80lib.AddScanner(scanner)8182got, errs := lib.Scan(tt.number, remote.ScannerOptions{})83if len(tt.wantErrors) > 0 {84assert.Equal(t, tt.wantErrors, errs)85} else {86assert.Len(t, errs, 0)87}88assert.Equal(t, tt.expected, got)8990OVHSupplierMock.AssertExpectations(t)91})92}93}949596