telegraf/plugins/outputs/graylog/graylog_test.go

52 lines
1.1 KiB
Go
Raw Normal View History

package graylog
import (
"encoding/json"
"testing"
"time"
"github.com/stretchr/testify/require"
"github.com/influxdata/telegraf/metric"
)
func TestSerializer(t *testing.T) {
m1 := metric.New("testing",
map[string]string{
"verb": "GET",
"host": "hostname",
},
map[string]interface{}{
"full_message": "full",
"short_message": "short",
"level": "1",
"facility": "demo",
"line": "42",
"file": "graylog.go",
},
time.Now(),
)
graylog := Graylog{}
result, err := graylog.serialize(m1)
require.NoError(t, err)
for _, r := range result {
obj := make(map[string]interface{})
err = json.Unmarshal([]byte(r), &obj)
require.NoError(t, err)
require.Equal(t, obj["version"], "1.1")
require.Equal(t, obj["_name"], "testing")
require.Equal(t, obj["_verb"], "GET")
require.Equal(t, obj["host"], "hostname")
require.Equal(t, obj["full_message"], "full")
require.Equal(t, obj["short_message"], "short")
require.Equal(t, obj["level"], "1")
require.Equal(t, obj["facility"], "demo")
require.Equal(t, obj["line"], "42")
require.Equal(t, obj["file"], "graylog.go")
}
}