Path: blob/main/component/otelcol/receiver/opencensus/opencensus_test.go
4096 views
package opencensus_test12import (3"fmt"4"testing"5"time"67"github.com/grafana/agent/component/otelcol/receiver/opencensus"8"github.com/grafana/agent/pkg/flow/componenttest"9"github.com/grafana/agent/pkg/river"10"github.com/grafana/agent/pkg/util"11"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver"12"github.com/phayes/freeport"13"github.com/stretchr/testify/require"14)1516// Test ensures that otelcol.receiver.opencensus can start successfully.17func Test(t *testing.T) {18httpAddr := getFreeAddr(t)1920ctx := componenttest.TestContext(t)21l := util.TestLogger(t)2223ctrl, err := componenttest.NewControllerFromID(l, "otelcol.receiver.opencensus")24require.NoError(t, err)2526cfg := fmt.Sprintf(`27endpoint = "%s"28transport = "tcp"2930output { /* no-op */ }31`, httpAddr)3233var args opencensus.Arguments34require.NoError(t, river.Unmarshal([]byte(cfg), &args))3536go func() {37err := ctrl.Run(ctx, args)38require.NoError(t, err)39}()4041require.NoError(t, ctrl.WaitRunning(time.Second))42}4344func TestDefaultArguments_UnmarshalRiver(t *testing.T) {45in := `output { /* no-op */ }`4647var args opencensus.Arguments48require.NoError(t, river.Unmarshal([]byte(in), &args))49ext, err := args.Convert()50require.NoError(t, err)51otelArgs, ok := (ext).(*opencensusreceiver.Config)5253require.True(t, ok)5455// Check the gRPC arguments56require.Equal(t, opencensus.DefaultArguments.GRPC.Endpoint, otelArgs.NetAddr.Endpoint)57require.Equal(t, opencensus.DefaultArguments.GRPC.Transport, otelArgs.NetAddr.Transport)58require.Equal(t, int(opencensus.DefaultArguments.GRPC.ReadBufferSize), otelArgs.ReadBufferSize)59}6061func TestArguments_UnmarshalRiver(t *testing.T) {62httpAddr := getFreeAddr(t)63in := fmt.Sprintf(`64cors_allowed_origins = ["https://*.test.com", "https://test.com"]6566endpoint = "%s"67transport = "tcp"6869output { /* no-op */ }70`, httpAddr)7172var args opencensus.Arguments73require.NoError(t, river.Unmarshal([]byte(in), &args))74args.Convert()75ext, err := args.Convert()76require.NoError(t, err)77otelArgs, ok := (ext).(*opencensusreceiver.Config)7879require.True(t, ok)8081// Check the gRPC arguments82require.Equal(t, otelArgs.NetAddr.Endpoint, httpAddr)83require.Equal(t, otelArgs.NetAddr.Transport, "tcp")8485// Check the CORS arguments86require.Equal(t, len(otelArgs.CorsOrigins), 2)87require.Equal(t, otelArgs.CorsOrigins[0], "https://*.test.com")88require.Equal(t, otelArgs.CorsOrigins[1], "https://test.com")89}9091func getFreeAddr(t *testing.T) string {92t.Helper()9394portNumber, err := freeport.GetFreePort()95require.NoError(t, err)9697return fmt.Sprintf("localhost:%d", portNumber)98}99100101