icingabeat/vendor/github.com/elastic/beats/metricbeat/beater/event_test.go

81 lines
1.6 KiB
Go

// +build !integration
package beater
import (
"errors"
"testing"
"time"
"github.com/elastic/beats/libbeat/common"
"github.com/stretchr/testify/assert"
)
const (
moduleName = "mymodule"
metricSetName = "mymetricset"
host = "localhost"
elapsed = time.Duration(500 * time.Millisecond)
tag = "alpha"
)
var (
startTime = time.Now()
errFetch = errors.New("error fetching data")
tags = []string{tag}
)
var builder = EventBuilder{
ModuleName: moduleName,
MetricSetName: metricSetName,
// host
StartTime: startTime,
FetchDuration: elapsed,
// event
// fetchErr
// processors
// metadata
}
func TestEventBuilder(t *testing.T) {
b := builder
b.Host = host
event, err := b.Build()
if err != nil {
t.Fatal(err)
}
assert.Equal(t, defaultType, event["type"])
assert.Equal(t, common.Time(startTime), event["@timestamp"])
metricset := event["metricset"].(common.MapStr)
assert.Equal(t, moduleName, metricset["module"])
assert.Equal(t, metricSetName, metricset["name"])
assert.Equal(t, int64(500000), metricset["rtt"])
assert.Equal(t, host, metricset["host"])
assert.Equal(t, common.MapStr{}, event[moduleName].(common.MapStr)[metricSetName])
assert.Nil(t, event["error"])
}
func TestEventBuilderError(t *testing.T) {
b := builder
b.fetchErr = errFetch
event, err := b.Build()
if err != nil {
t.Fatal(err)
}
assert.Equal(t, errFetch.Error(), event["error"])
}
func TestEventBuilderNoHost(t *testing.T) {
b := builder
event, err := b.Build()
if err != nil {
t.Fatal(err)
}
_, found := event["metricset-host"]
assert.False(t, found)
}