81 lines
1.6 KiB
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)
|
|
}
|