opentelemetry-collector/service/internal/capabilityconsumer/capabilities_test.go

77 lines
2.7 KiB
Go

// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package capabilityconsumer
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/collector/consumer"
"go.opentelemetry.io/collector/consumer/consumertest"
"go.opentelemetry.io/collector/pdata/testdata"
)
func TestLogs(t *testing.T) {
sink := &consumertest.LogsSink{}
require.Equal(t, consumer.Capabilities{MutatesData: false}, sink.Capabilities())
same := NewLogs(sink, consumer.Capabilities{MutatesData: false})
assert.Same(t, sink, same)
wrap := NewLogs(sink, consumer.Capabilities{MutatesData: true})
assert.Equal(t, consumer.Capabilities{MutatesData: true}, wrap.Capabilities())
require.NoError(t, wrap.ConsumeLogs(context.Background(), testdata.GenerateLogs(1)))
assert.Len(t, sink.AllLogs(), 1)
assert.Equal(t, testdata.GenerateLogs(1), sink.AllLogs()[0])
}
func TestMetrics(t *testing.T) {
sink := &consumertest.MetricsSink{}
require.Equal(t, consumer.Capabilities{MutatesData: false}, sink.Capabilities())
same := NewMetrics(sink, consumer.Capabilities{MutatesData: false})
assert.Same(t, sink, same)
wrap := NewMetrics(sink, consumer.Capabilities{MutatesData: true})
assert.Equal(t, consumer.Capabilities{MutatesData: true}, wrap.Capabilities())
require.NoError(t, wrap.ConsumeMetrics(context.Background(), testdata.GenerateMetrics(1)))
assert.Len(t, sink.AllMetrics(), 1)
assert.Equal(t, testdata.GenerateMetrics(1), sink.AllMetrics()[0])
}
func TestTraces(t *testing.T) {
sink := &consumertest.TracesSink{}
require.Equal(t, consumer.Capabilities{MutatesData: false}, sink.Capabilities())
same := NewTraces(sink, consumer.Capabilities{MutatesData: false})
assert.Same(t, sink, same)
wrap := NewTraces(sink, consumer.Capabilities{MutatesData: true})
assert.Equal(t, consumer.Capabilities{MutatesData: true}, wrap.Capabilities())
require.NoError(t, wrap.ConsumeTraces(context.Background(), testdata.GenerateTraces(1)))
assert.Len(t, sink.AllTraces(), 1)
assert.Equal(t, testdata.GenerateTraces(1), sink.AllTraces()[0])
}
func TestProfiles(t *testing.T) {
sink := &consumertest.ProfilesSink{}
require.Equal(t, consumer.Capabilities{MutatesData: false}, sink.Capabilities())
same := NewProfiles(sink, consumer.Capabilities{MutatesData: false})
assert.Same(t, sink, same)
wrap := NewProfiles(sink, consumer.Capabilities{MutatesData: true})
assert.Equal(t, consumer.Capabilities{MutatesData: true}, wrap.Capabilities())
require.NoError(t, wrap.ConsumeProfiles(context.Background(), testdata.GenerateProfiles(1)))
assert.Len(t, sink.AllProfiles(), 1)
assert.Equal(t, testdata.GenerateProfiles(1), sink.AllProfiles()[0])
}