From 0a4f827f9b79fda6b240f5d3d8765027cf5638e6 Mon Sep 17 00:00:00 2001 From: Chris Goller Date: Tue, 24 Jul 2018 21:29:00 -0500 Subject: [PATCH] Provide function to test metric equality (#4464) --- testutil/metric.go | 16 ++++++++++++ testutil/metric_test.go | 57 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 testutil/metric.go create mode 100644 testutil/metric_test.go diff --git a/testutil/metric.go b/testutil/metric.go new file mode 100644 index 000000000..9620fea15 --- /dev/null +++ b/testutil/metric.go @@ -0,0 +1,16 @@ +package testutil + +import ( + "testing" + + "github.com/influxdata/telegraf" + "github.com/stretchr/testify/require" +) + +// MustEqual requires a and b to be identical. +func MustEqual(t *testing.T, got telegraf.Metric, want Metric) { + require.Equal(t, want.Measurement, got.Name()) + require.Equal(t, want.Fields, got.Fields()) + require.Equal(t, want.Tags, got.Tags()) + require.Equal(t, want.Time, got.Time()) +} diff --git a/testutil/metric_test.go b/testutil/metric_test.go new file mode 100644 index 000000000..7295227ce --- /dev/null +++ b/testutil/metric_test.go @@ -0,0 +1,57 @@ +package testutil + +import ( + "testing" + "time" + + "github.com/influxdata/telegraf" + "github.com/influxdata/telegraf/metric" +) + +func TestMustEqual(t *testing.T) { + type args struct { + } + tests := []struct { + name string + got telegraf.Metric + want Metric + }{ + { + name: "telegraf and testutil metrics should be equal", + got: func() telegraf.Metric { + m, _ := metric.New( + "test", + map[string]string{ + "t1": "v1", + "t2": "v2", + }, + map[string]interface{}{ + "f1": 1, + "f2": 3.14, + "f3": "v3", + }, + time.Unix(0, 0), + ) + return m + }(), + want: Metric{ + Measurement: "test", + Tags: map[string]string{ + "t1": "v1", + "t2": "v2", + }, + Fields: map[string]interface{}{ + "f1": int64(1), + "f2": 3.14, + "f3": "v3", + }, + Time: time.Unix(0, 0), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + MustEqual(t, tt.got, tt.want) + }) + } +}