Path: blob/master/lib/remote/suppliers/numverify_test.go
994 views
package suppliers12import (3"errors"4"github.com/stretchr/testify/assert"5"gopkg.in/h2non/gock.v1"6"net/url"7"os"8"testing"9)1011func TestNumverifySupplierSuccessCustomApiKey(t *testing.T) {12defer gock.Off() // Flush pending mocks after test execution1314number := "11115551212"15apikey := "5ad5554ac240e4d3d31107941b35a5eb"1617expectedResult := &NumverifyValidateResponse{18Valid: true,19Number: "79516566591",20LocalFormat: "9516566591",21InternationalFormat: "+79516566591",22CountryPrefix: "+7",23CountryCode: "RU",24CountryName: "Russian Federation",25Location: "Saint Petersburg and Leningrad Oblast",26Carrier: "OJSC St. Petersburg Telecom (OJSC Tele2-Saint-Petersburg)",27LineType: "mobile",28}2930gock.New("https://api.apilayer.com").31Get("/number_verification/validate").32MatchHeader("Apikey", apikey).33MatchParam("number", number).34Reply(200).35JSON(expectedResult)3637s := NewNumverifySupplier()3839got, err := s.Request().SetApiKey(apikey).ValidateNumber(number)40assert.Nil(t, err)4142assert.Equal(t, expectedResult, got)43}4445func TestNumverifySupplierError(t *testing.T) {46defer gock.Off() // Flush pending mocks after test execution4748number := "11115551212"49apikey := "5ad5554ac240e4d3d31107941b35a5eb"5051expectedResult := &NumverifyErrorResponse{52Message: "You have exceeded your daily\\/monthly API rate limit. Please review and upgrade your subscription plan at https:\\/\\/apilayer.com\\/subscriptions to continue.",53}5455gock.New("https://api.apilayer.com").56Get("/number_verification/validate").57MatchHeader("Apikey", apikey).58MatchParam("number", number).59Reply(429).60JSON(expectedResult)6162s := NewNumverifySupplier()6364got, err := s.Request().SetApiKey(apikey).ValidateNumber(number)65assert.Nil(t, got)66assert.Equal(t, errors.New("You have exceeded your daily\\/monthly API rate limit. Please review and upgrade your subscription plan at https:\\/\\/apilayer.com\\/subscriptions to continue."), err)67}6869func TestNumverifySupplierHTTPError(t *testing.T) {70defer gock.Off() // Flush pending mocks after test execution7172number := "11115551212"7374_ = os.Setenv("NUMVERIFY_API_KEY", "5ad5554ac240e4d3d31107941b35a5eb")75defer os.Clearenv()7677dummyError := errors.New("test")7879gock.New("https://api.apilayer.com").80Get("/number_verification/validate").81ReplyError(dummyError)8283s := NewNumverifySupplier()8485got, err := s.Request().ValidateNumber(number)86assert.Nil(t, got)87assert.Equal(t, &url.Error{88Op: "Get",89URL: "https://api.apilayer.com/number_verification/validate?number=11115551212",90Err: dummyError,91}, err)92}939495