@@ -110,6 +110,52 @@ TEST(GrpcMetricsExporter, EnabledWithTimeout) {
110110 std::chrono::milliseconds(0));
111111}
112112
113+ TEST(GrpcMetricsExporter, DefaultExportTime) {
114+ auto config = MakeMeterProviderConfig(FullResource(), TestOptions());
115+ ASSERT_TRUE(config.has_value());
116+ EXPECT_EQ(config->project, Project("project-id-resource"));
117+ EXPECT_EQ(config->reader_options.export_interval_millis,
118+ std::chrono::seconds(60));
119+ EXPECT_EQ(config->reader_options.export_timeout_millis,
120+ std::chrono::seconds(30));
121+ }
122+
123+ TEST(GrpcMetricsExporter, CustomExportTime) {
124+ auto config = MakeMeterProviderConfig(
125+ FullResource(),
126+ TestOptions()
127+ .set<storage_experimental::GrpcMetricsPeriodOption>(
128+ std::chrono::seconds(10))
129+ .set<storage_experimental::GrpcMetricsExportTimeoutOption>(
130+ std::chrono::seconds(2)));
131+ ASSERT_TRUE(config.has_value());
132+ EXPECT_EQ(config->project, Project("project-id-resource"));
133+ EXPECT_EQ(config->reader_options.export_interval_millis,
134+ std::chrono::seconds(10));
135+ EXPECT_EQ(config->reader_options.export_timeout_millis,
136+ std::chrono::seconds(2));
137+ }
138+
139+ TEST(GrpcMetricsExporter, ReaderOptionsAreSetFromConfig) {
140+ auto const expected_interval = std::chrono::seconds(45);
141+ auto const expected_timeout = std::chrono::seconds(25);
142+
143+ auto config = MakeMeterProviderConfig(
144+ FullResource(),
145+ TestOptions()
146+ .set<storage_experimental::GrpcMetricsPeriodOption>(expected_interval)
147+ .set<storage_experimental::GrpcMetricsExportTimeoutOption>(
148+ expected_timeout));
149+
150+ ASSERT_TRUE(config.has_value());
151+
152+ // Verify the conversion from seconds to milliseconds happens correctly.
153+ EXPECT_EQ(config->reader_options.export_interval_millis,
154+ std::chrono::milliseconds(expected_interval));
155+ EXPECT_EQ(config->reader_options.export_timeout_millis,
156+ std::chrono::milliseconds(expected_timeout));
157+ }
158+
113159} // namespace
114160GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
115161} // namespace storage_internal
0 commit comments