// Copyright 2024 Matthew Rich . All rights reserved. package transport import ( "github.com/stretchr/testify/assert" "testing" "fmt" _ "os" "io" _ "path/filepath" "context" "net/http" "net/http/httptest" ) func TestNewHTTPConnection(t *testing.T) { ctx := context.Background() h := NewHTTPConnection(http.DefaultClient) assert.NotNil(t, h) body := []byte(` type: "user" attributes: name: "foo" gecos: "foo user" `) server := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { assert.Equal(t, req.URL.String(), "/resource/user") n,e := rw.Write(body) assert.Nil(t, e) assert.Greater(t, n, 0) assert.Equal(t, "bar", req.Header.Get("foo")) })) defer server.Close() uri := fmt.Sprintf("%s/resource/user", server.URL) assert.Nil(t, h.NewGetRequest(ctx, uri)) h.Request().Header.Add("foo", "bar") responseData, responseErr := io.ReadAll(h) assert.Nil(t, responseErr) assert.Equal(t, body, responseData) }