telegraf/plugins/inputs/csgo/csgo_test.go

56 lines
1.6 KiB
Go

package csgo
import (
"testing"
"github.com/stretchr/testify/require"
"github.com/influxdata/telegraf/testutil"
)
const testInput = `CPU NetIn NetOut Uptime Maps FPS Players Svms +-ms ~tick
10.0 1.2 3.4 100 1 120.20 15 5.23 0.01 0.02`
var (
expectedOutput = statsData{
10.0, 1.2, 3.4, 100.0, 1, 120.20, 15, 5.23, 0.01, 0.02,
}
)
func TestCPUStats(t *testing.T) {
c := NewCSGOStats()
var acc testutil.Accumulator
err := c.gatherServer(&acc, c.Servers[0], requestMock)
if err != nil {
t.Error(err)
}
if !acc.HasMeasurement("csgo") {
t.Errorf("acc.HasMeasurement: expected csgo")
}
require.Equal(t, "1.2.3.4:1234", acc.Metrics[0].Tags["host"])
require.Equal(t, expectedOutput.CPU, acc.Metrics[0].Fields["cpu"])
require.Equal(t, expectedOutput.NetIn, acc.Metrics[0].Fields["net_in"])
require.Equal(t, expectedOutput.NetOut, acc.Metrics[0].Fields["net_out"])
require.Equal(t, expectedOutput.UptimeMinutes, acc.Metrics[0].Fields["uptime_minutes"])
require.Equal(t, expectedOutput.Maps, acc.Metrics[0].Fields["maps"])
require.Equal(t, expectedOutput.FPS, acc.Metrics[0].Fields["fps"])
require.Equal(t, expectedOutput.Players, acc.Metrics[0].Fields["players"])
require.Equal(t, expectedOutput.Sim, acc.Metrics[0].Fields["sv_ms"])
require.Equal(t, expectedOutput.Variance, acc.Metrics[0].Fields["variance_ms"])
require.Equal(t, expectedOutput.Tick, acc.Metrics[0].Fields["tick_ms"])
}
func requestMock(_ string, _ string) (string, error) {
return testInput, nil
}
func NewCSGOStats() *CSGO {
return &CSGO{
Servers: [][]string{
{"1.2.3.4:1234", "password"},
},
}
}