master
go 140 lines 2.38 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package prometheus
4
5 import (
6 "testing"
7
8 "github.com/prometheus/prometheus/model/labels"
9 "github.com/stretchr/testify/assert"
10 "github.com/stretchr/testify/require"
11 )
12
13 // TODO: write better tests
14
15 const (
16 testName1 = "logback_events_total"
17 testName2 = "jvm_threads_peak"
18 )
19
20 func newTestSeries() Series {
21 return Series{
22 {
23 Value: 10,
24 Labels: labels.Labels{
25 {Name: "__name__", Value: testName1},
26 {Name: "level", Value: "error"},
27 },
28 },
29 {
30 Value: 20,
31 Labels: labels.Labels{
32 {Name: "__name__", Value: testName1},
33 {Name: "level", Value: "warn"},
34 },
35 },
36 {
37 Value: 5,
38 Labels: labels.Labels{
39 {Name: "__name__", Value: testName1},
40 {Name: "level", Value: "info"},
41 },
42 },
43 {
44 Value: 15,
45 Labels: labels.Labels{
46 {Name: "__name__", Value: testName1},
47 {Name: "level", Value: "debug"},
48 },
49 },
50 {
51 Value: 26,
52 Labels: labels.Labels{
53 {Name: "__name__", Value: testName2},
54 },
55 },
56 }
57 }
58
59 func TestSeries_Name(t *testing.T) {
60 m := newTestSeries()
61
62 assert.Equal(t, testName1, m[0].Name())
63 assert.Equal(t, testName1, m[1].Name())
64
65 }
66
67 func TestSeries_Add(t *testing.T) {
68 m := newTestSeries()
69
70 require.Len(t, m, 5)
71 m.Add(SeriesSample{})
72 assert.Len(t, m, 6)
73 }
74
75 func TestSeries_FindByName(t *testing.T) {
76 m := newTestSeries()
77 m.Sort()
78 assert.Len(t, Series{}.FindByName(testName1), 0)
79 assert.Len(t, m.FindByName(testName1), len(m)-1)
80 }
81
82 func TestSeries_FindByNames(t *testing.T) {
83 m := newTestSeries()
84 m.Sort()
85 assert.Len(t, m.FindByNames(), 0)
86 assert.Len(t, m.FindByNames(testName1), len(m)-1)
87 assert.Len(t, m.FindByNames(testName1, testName2), len(m))
88 }
89
90 func TestSeries_Len(t *testing.T) {
91 m := newTestSeries()
92
93 assert.Equal(t, len(m), m.Len())
94 }
95
96 func TestSeries_Less(t *testing.T) {
97 m := newTestSeries()
98
99 assert.False(t, m.Less(0, 1))
100 assert.True(t, m.Less(4, 0))
101 }
102
103 func TestSeries_Max(t *testing.T) {
104 m := newTestSeries()
105
106 assert.Equal(t, float64(26), m.Max())
107
108 }
109
110 func TestSeries_Reset(t *testing.T) {
111 m := newTestSeries()
112 m.Reset()
113
114 assert.Len(t, m, 0)
115
116 }
117
118 func TestSeries_Sort(t *testing.T) {
119 {
120 m := newTestSeries()
121 m.Sort()
122 assert.Equal(t, testName2, m[0].Name())
123 }
124 {
125 m := Series{}
126 assert.Equal(t, 0.0, m.Max())
127 }
128 }
129
130 func TestSeries_Swap(t *testing.T) {
131 m := newTestSeries()
132
133 m0 := m[0]
134 m1 := m[1]
135
136 m.Swap(0, 1)
137
138 assert.Equal(t, m0, m[1])
139 assert.Equal(t, m1, m[0])
140 }