opentelemetry-collector/processor/batchprocessor/config_test.go

76 lines
1.7 KiB
Go

// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package batchprocessor
import (
"path/filepath"
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/collector/confmap"
"go.opentelemetry.io/collector/confmap/confmaptest"
)
func TestUnmarshalDefaultConfig(t *testing.T) {
factory := NewFactory()
cfg := factory.CreateDefaultConfig()
assert.NoError(t, confmap.New().Unmarshal(&cfg))
assert.Equal(t, factory.CreateDefaultConfig(), cfg)
}
func TestUnmarshalConfig(t *testing.T) {
cm, err := confmaptest.LoadConf(filepath.Join("testdata", "config.yaml"))
require.NoError(t, err)
factory := NewFactory()
cfg := factory.CreateDefaultConfig()
assert.NoError(t, cm.Unmarshal(&cfg))
assert.Equal(t,
&Config{
SendBatchSize: uint32(10000),
SendBatchMaxSize: uint32(11000),
Timeout: time.Second * 10,
MetadataCardinalityLimit: 1000,
}, cfg)
}
func TestValidateConfig_DefaultBatchMaxSize(t *testing.T) {
cfg := &Config{
SendBatchSize: 100,
SendBatchMaxSize: 0,
}
assert.NoError(t, cfg.Validate())
}
func TestValidateConfig_ValidBatchSizes(t *testing.T) {
cfg := &Config{
SendBatchSize: 100,
SendBatchMaxSize: 1000,
}
assert.NoError(t, cfg.Validate())
}
func TestValidateConfig_InvalidBatchSize(t *testing.T) {
cfg := &Config{
SendBatchSize: 1000,
SendBatchMaxSize: 100,
}
assert.Error(t, cfg.Validate())
}
func TestValidateConfig_InvalidTimeout(t *testing.T) {
cfg := &Config{
Timeout: -time.Second,
}
assert.Error(t, cfg.Validate())
}
func TestValidateConfig_ValidZero(t *testing.T) {
cfg := &Config{}
assert.NoError(t, cfg.Validate())
}