|
20 | 20 | #include "opencensus/stats/testing/test_utils.h" |
21 | 21 | #include "opencensus/stats/view.h" |
22 | 22 | #include "opencensus/tags/tag_key.h" |
| 23 | +#include "opencensus/tags/tag_map.h" |
| 24 | +#include "opencensus/tags/with_tag_map.h" |
23 | 25 |
|
24 | 26 | namespace opencensus { |
25 | 27 | namespace stats { |
@@ -87,6 +89,33 @@ TEST_F(StatsManagerTest, Count) { |
87 | 89 | ::testing::Pair(::testing::ElementsAre("value1", "value2"), 1.0))); |
88 | 90 | } |
89 | 91 |
|
| 92 | +TEST_F(StatsManagerTest, CountTagsFromContext) { |
| 93 | + ViewDescriptor view_descriptor = ViewDescriptor() |
| 94 | + .set_measure(kFirstMeasureId) |
| 95 | + .set_name("count") |
| 96 | + .set_aggregation(Aggregation::Count()) |
| 97 | + .add_column(key1_) |
| 98 | + .add_column(key2_); |
| 99 | + View view(view_descriptor); |
| 100 | + ASSERT_EQ(ViewData::Type::kInt64, view.GetData().type()); |
| 101 | + EXPECT_TRUE(view.GetData().int_data().empty()); |
| 102 | + |
| 103 | + opencensus::tags::TagMap tags( |
| 104 | + {{key1_, "value1"}, {key2_, "value2"}, {key3_, "value3"}}); |
| 105 | + Record({{FirstMeasure(), 2.0}, {FirstMeasure(), 3.0}}); |
| 106 | + { |
| 107 | + opencensus::tags::WithTagMap wt(tags); |
| 108 | + Record({{FirstMeasure(), 4.0}}); |
| 109 | + } |
| 110 | + testing::TestUtils::Flush(); |
| 111 | + const opencensus::stats::ViewData data = view.GetData(); |
| 112 | + EXPECT_THAT( |
| 113 | + data.int_data(), |
| 114 | + ::testing::UnorderedElementsAre( |
| 115 | + ::testing::Pair(::testing::ElementsAre("", ""), 2.0), |
| 116 | + ::testing::Pair(::testing::ElementsAre("value1", "value2"), 1.0))); |
| 117 | +} |
| 118 | + |
90 | 119 | TEST_F(StatsManagerTest, SumDouble) { |
91 | 120 | ViewDescriptor view_descriptor = ViewDescriptor() |
92 | 121 | .set_measure(kFirstMeasureId) |
|
0 commit comments