mirror of
https://github.com/hanzoai/telemetry.git
synced 2026-10-30 20:01:49 +00:00
#### Description API change in extensionmiddleware, an unstable package to allow middleware access to the start context. HTTP only. gRPC is treated in #14536. This is technically a breaking change in configmiddleware and for all implementations of this extension. We believe no one is using this feature outside of this repository, see memorylimiter is fixed here. #### Link to tracking issue Part of https://github.com/open-telemetry/opentelemetry-collector/issues/14523 #### Documentation N/A
71 lines
1.6 KiB
Go
71 lines
1.6 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package extensionmiddlewaretest
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"go.opentelemetry.io/collector/extension/extensionmiddleware"
|
|
)
|
|
|
|
func TestNopClient(t *testing.T) {
|
|
testctx := context.Background()
|
|
client := NewNop()
|
|
|
|
httpClient, ok := client.(extensionmiddleware.HTTPClient)
|
|
require.True(t, ok)
|
|
rtfunc, err := httpClient.GetHTTPRoundTripper(context.Background())
|
|
require.NoError(t, err)
|
|
|
|
rt, err := rtfunc(testctx, nil)
|
|
require.NoError(t, err)
|
|
require.Nil(t, rt)
|
|
|
|
grpcClient, ok := client.(extensionmiddleware.GRPCClient)
|
|
require.True(t, ok)
|
|
grpcOpts, err := grpcClient.GetGRPCClientOptions(context.Background())
|
|
require.NoError(t, err)
|
|
require.Nil(t, grpcOpts)
|
|
}
|
|
|
|
func TestNopServer(t *testing.T) {
|
|
client := NewNop()
|
|
testctx := context.Background()
|
|
|
|
httpServer, ok := client.(extensionmiddleware.HTTPServer)
|
|
require.True(t, ok)
|
|
hfunc, err := httpServer.GetHTTPHandler(testctx)
|
|
require.NoError(t, err)
|
|
|
|
handler, err := hfunc(testctx, nil)
|
|
require.NoError(t, err)
|
|
require.Nil(t, handler)
|
|
|
|
grpcServer, ok := client.(extensionmiddleware.GRPCServer)
|
|
require.True(t, ok)
|
|
grpcOpts, err := grpcServer.GetGRPCServerOptions(context.Background())
|
|
require.NoError(t, err)
|
|
require.Nil(t, grpcOpts)
|
|
}
|
|
|
|
func TestRoundTripperFunc(t *testing.T) {
|
|
called := false
|
|
req := &http.Request{}
|
|
resp := &http.Response{}
|
|
|
|
f := RoundTripperFunc(func(r *http.Request) (*http.Response, error) {
|
|
require.Equal(t, r, req)
|
|
called = true
|
|
return resp, nil
|
|
})
|
|
|
|
result, _ := f.RoundTrip(req)
|
|
require.True(t, called)
|
|
require.Equal(t, resp, result)
|
|
}
|