76 lines
1.7 KiB
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()
|
|
require.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()
|
|
require.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())
|
|
}
|