package amon import ( "fmt" "reflect" "testing" "time" "github.com/influxdata/telegraf/testutil" "github.com/influxdata/telegraf" ) func TestBuildPoint(t *testing.T) { var tagtests = []struct { ptIn telegraf.Metric outPt Point err error }{ { testutil.TestMetric(float64(0.0), "testpt"), Point{ float64(time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC).Unix()), 0.0, }, nil, }, { testutil.TestMetric(float64(1.0), "testpt"), Point{ float64(time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC).Unix()), 1.0, }, nil, }, { testutil.TestMetric(int(10), "testpt"), Point{ float64(time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC).Unix()), 10.0, }, nil, }, { testutil.TestMetric(int32(112345), "testpt"), Point{ float64(time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC).Unix()), 112345.0, }, nil, }, { testutil.TestMetric(int64(112345), "testpt"), Point{ float64(time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC).Unix()), 112345.0, }, nil, }, { testutil.TestMetric(float32(11234.5), "testpt"), Point{ float64(time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC).Unix()), 11234.5, }, nil, }, { testutil.TestMetric("11234.5", "testpt"), Point{ float64(time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC).Unix()), 11234.5, }, fmt.Errorf("unable to extract value from Fields, undeterminable type"), }, } for _, tt := range tagtests { pt, err := buildMetrics(tt.ptIn) if err != nil && tt.err == nil { t.Errorf("%s: unexpected error, %+v\n", tt.ptIn.Name(), err) } if tt.err != nil && err == nil { t.Errorf("%s: expected an error (%s) but none returned", tt.ptIn.Name(), tt.err.Error()) } if !reflect.DeepEqual(pt["value"], tt.outPt) && tt.err == nil { t.Errorf("%s: \nexpected %+v\ngot %+v\n", tt.ptIn.Name(), tt.outPt, pt["value"]) } } }