github.com/angryronald/go-kit@v0.0.0-20240505173814-ff2bd9c79dbf/generic/http/client/integrationtest/client.service_test.go (about) 1 package integrationtest 2 3 import ( 4 "context" 5 "fmt" 6 "testing" 7 8 "github.com/sirupsen/logrus" 9 10 "github.com/angryronald/go-kit/constant" 11 "github.com/angryronald/go-kit/generic/http/client" 12 ) 13 14 var httpClient client.GenericHTTPClient 15 16 // to run this test, please spin up mockserver first, due to an issue with mockserver and dockertest 17 func TestGenericHTTPClient_CallClient_GET(t *testing.T) { 18 bearer := client.Bearer 19 bearer.Token = "token" 20 httpClient = client.NewHTTPClient( 21 client.HTTPClient{ 22 APIURL: fmt.Sprintf("http://localhost:%d", port), 23 MaxNetworkRetries: 2, 24 UseNormalSleep: true, 25 AuthorizationTypes: []client.AuthorizationType{ 26 bearer, 27 }, 28 ClientName: "mockserver", 29 }, 30 redisClient, 31 logrus.New(), 32 ) 33 34 response := struct { 35 Message string `json:"message"` 36 }{} 37 if err := httpClient.CallClient(context.TODO(), "api/resource?param1=value1", constant.HTTP_GET, nil, &response); err.Error != nil { 38 t.Errorf("expected no error, got %v", err) 39 } 40 41 if response.Message != "Mocked response" { 42 t.Errorf("expected Mocked response, got %v", response.Message) 43 } 44 } 45 46 func TestGenericHTTPClient_CallClient_POST(t *testing.T) { 47 bearer := client.Bearer 48 bearer.Token = "token" 49 httpClient = client.NewHTTPClient( 50 client.HTTPClient{ 51 APIURL: fmt.Sprintf("http://localhost:%d", port), 52 MaxNetworkRetries: 2, 53 UseNormalSleep: true, 54 AuthorizationTypes: []client.AuthorizationType{ 55 bearer, 56 }, 57 ClientName: "mockserver", 58 }, 59 redisClient, 60 logrus.New(), 61 ) 62 63 response := struct { 64 Message string `json:"message"` 65 }{} 66 request := struct { 67 Username string `json:"username"` 68 Password string `json:"password"` 69 }{ 70 Username: "test", 71 Password: "password", 72 } 73 if err := httpClient.CallClient(context.TODO(), "api/resource", constant.HTTP_POST, &request, &response); err.Error != nil { 74 t.Errorf("expected no error, got %v", err) 75 } 76 77 if response.Message != "Mocked response with request body" { 78 t.Errorf("expected Mocked response with request body, got %v", response.Message) 79 } 80 }