77 lines
2.7 KiB
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])
|
|
}
|