telegraf/plugins/processors/aws/ec2/ec2_test.go

60 lines
1.4 KiB
Go

package ec2
import (
"testing"
"github.com/influxdata/telegraf/config"
"github.com/influxdata/telegraf/testutil"
"github.com/stretchr/testify/require"
)
func TestBasicStartup(t *testing.T) {
p := newAwsEc2Processor()
p.Log = &testutil.Logger{}
p.ImdsTags = []string{"accountId", "instanceId"}
acc := &testutil.Accumulator{}
require.NoError(t, p.Start(acc))
require.NoError(t, p.Stop())
require.Len(t, acc.GetTelegrafMetrics(), 0)
require.Len(t, acc.Errors, 0)
}
func TestBasicStartupWithEC2Tags(t *testing.T) {
p := newAwsEc2Processor()
p.Log = &testutil.Logger{}
p.ImdsTags = []string{"accountId", "instanceId"}
p.EC2Tags = []string{"Name"}
acc := &testutil.Accumulator{}
require.NoError(t, p.Start(acc))
require.NoError(t, p.Stop())
require.Len(t, acc.GetTelegrafMetrics(), 0)
require.Len(t, acc.Errors, 0)
}
func TestBasicInitNoTagsReturnAnError(t *testing.T) {
p := newAwsEc2Processor()
p.Log = &testutil.Logger{}
p.ImdsTags = []string{}
err := p.Init()
require.Error(t, err)
}
func TestBasicInitInvalidTagsReturnAnError(t *testing.T) {
p := newAwsEc2Processor()
p.Log = &testutil.Logger{}
p.ImdsTags = []string{"dummy", "qwerty"}
err := p.Init()
require.Error(t, err)
}
func TestLoadingConfig(t *testing.T) {
confFile := []byte("[[processors.aws_ec2]]" + "\n" + sampleConfig)
c := config.NewConfig()
err := c.LoadConfigData(confFile)
require.NoError(t, err)
require.Len(t, c.Processors, 1)
}