Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.0.0-20201105173854-bc9fc8d8c4bc / internal / event / export / ocagent / wire / metrics_test.go
1 package wire
2
3 import (
4         "reflect"
5         "testing"
6 )
7
8 func TestMarshalJSON(t *testing.T) {
9         tests := []struct {
10                 name string
11                 pt   *Point
12                 want string
13         }{
14                 {
15                         "PointInt64",
16                         &Point{
17                                 Value: PointInt64Value{
18                                         Int64Value: 5,
19                                 },
20                         },
21                         `{"int64Value":5}`,
22                 },
23                 {
24                         "PointDouble",
25                         &Point{
26                                 Value: PointDoubleValue{
27                                         DoubleValue: 3.14,
28                                 },
29                         },
30                         `{"doubleValue":3.14}`,
31                 },
32                 {
33                         "PointDistribution",
34                         &Point{
35                                 Value: PointDistributionValue{
36                                         DistributionValue: &DistributionValue{
37                                                 Count: 3,
38                                                 Sum:   10,
39                                                 Buckets: []*Bucket{
40                                                         {
41                                                                 Count: 1,
42                                                         },
43                                                         {
44                                                                 Count: 2,
45                                                         },
46                                                 },
47                                                 BucketOptions: &BucketOptionsExplicit{
48                                                         Bounds: []float64{
49                                                                 0, 5,
50                                                         },
51                                                 },
52                                         },
53                                 },
54                         },
55                         `{"distributionValue":{"count":3,"sum":10,"bucket_options":{"explicit":{"bounds":[0,5]}},"buckets":[{"count":1},{"count":2}]}}`,
56                 },
57                 {
58                         "nil point",
59                         nil,
60                         `null`,
61                 },
62         }
63
64         for _, tt := range tests {
65                 t.Run(tt.name, func(t *testing.T) {
66                         buf, err := tt.pt.MarshalJSON()
67                         if err != nil {
68                                 t.Fatalf("Got:\n%v\nWant:\n%v", err, nil)
69                         }
70                         got := string(buf)
71                         if !reflect.DeepEqual(got, tt.want) {
72                                 t.Fatalf("Got:\n%s\nWant:\n%s", got, tt.want)
73                         }
74                 })
75         }
76 }