@@ -2,6 +2,9 @@ package tsplot
22
33import (
44 "testing"
5+ "time"
6+
7+ monitoringpb "google.golang.org/genproto/googleapis/monitoring/v3"
58)
69
710func TestMetricQuery_BuildRequest (t * testing.T ) {
@@ -36,3 +39,60 @@ func TestMetricQuery_BuildRequest(t *testing.T) {
3639 }
3740 }
3841}
42+
43+ func TestMetricQuery_SetQueryFilter (t * testing.T ) {
44+ expectedFilter := "some advanced query"
45+ st := time .Now ().Add (- 1 * time .Hour )
46+ et := time .Now ()
47+ query := NewMetricQuery ("bitly-gcp-prod" , "" , & st , & et )
48+ query .SetQueryFilter (expectedFilter )
49+
50+ tsr , err := query .request ()
51+ if err != nil {
52+ t .Error (err )
53+ }
54+
55+ filter := tsr .GetFilter ()
56+ if filter != expectedFilter {
57+ t .Fatalf ("query filter not overriden. got: %s, expected: %s" , filter , expectedFilter )
58+ }
59+ }
60+
61+ func TestMetricQuery_SetAlignmentPeriod (t * testing.T ) {
62+ expectedAlignmentPeriod := time .Minute * 10
63+ st := time .Now ().Add (- 1 * time .Hour )
64+ et := time .Now ()
65+ query := NewMetricQuery ("bitly-gcp-prod" , "some metric" , & st , & et )
66+ query .SetAlignmentPeriod (expectedAlignmentPeriod )
67+
68+ req , err := query .request ()
69+ if err != nil {
70+ t .Error (err )
71+ }
72+
73+ alignmentPeriod := req .GetAggregation ().GetAlignmentPeriod ().GetSeconds ()
74+ if req .GetAggregation ().GetAlignmentPeriod ().GetSeconds () != int64 (expectedAlignmentPeriod .Seconds ()) {
75+ t .Fatalf ("alignment period not overriden. got %d, expected: %s" , alignmentPeriod , expectedAlignmentPeriod )
76+ }
77+ }
78+
79+ func TestMetricQuery_AggregationOptions (t * testing.T ) {
80+ st := time .Now ().Add (- 1 * time .Hour )
81+ et := time .Now ()
82+ query := NewMetricQuery ("bitly-gcp-prod" , "some metric" , & st , & et )
83+ query .Set_ALIGN_NONE ()
84+ query .Set_REDUCE_NONE ()
85+
86+ req , err := query .request ()
87+ if err != nil {
88+ t .Error (err )
89+ }
90+
91+ aggregation := req .GetAggregation ()
92+ if aggregation .GetPerSeriesAligner () != monitoringpb .Aggregation_ALIGN_NONE {
93+ t .Fatal ("aligner not overridden" )
94+ }
95+ if aggregation .GetCrossSeriesReducer () != monitoringpb .Aggregation_REDUCE_NONE {
96+ t .Fatal ("reducer not overridden" )
97+ }
98+ }
0 commit comments