@@ -19,7 +19,7 @@ class TestResource : public opentelemetry::sdk::resource::Resource
1919 {}
2020};
2121
22- TEST (ResourceTest, create )
22+ TEST (ResourceTest, create_without_servicename )
2323{
2424
2525 opentelemetry::sdk::resource::ResourceAttributes expected_attributes = {
@@ -28,15 +28,46 @@ TEST(ResourceTest, create)
2828 {" cost" , 234.23 },
2929 {" telemetry.sdk.language" , " cpp" },
3030 {" telemetry.sdk.name" , " opentelemetry" },
31- {" telemetry.sdk.version" , OPENTELEMETRY_SDK_VERSION}};
31+ {" telemetry.sdk.version" , OPENTELEMETRY_SDK_VERSION},
32+ {" service.name" , " unknown_service" }};
3233
3334 opentelemetry::sdk::resource::ResourceAttributes attributes = {
3435 {" service" , " backend" }, {" version" , (uint32_t )1 }, {" cost" , 234.23 }};
35- auto resource2 = opentelemetry::sdk::resource::Resource::Create (attributes);
36- auto received_attributes2 = resource2 .GetAttributes ();
37- for (auto &e : received_attributes2 )
36+ auto resource = opentelemetry::sdk::resource::Resource::Create (attributes);
37+ auto received_attributes = resource .GetAttributes ();
38+ for (auto &e : received_attributes )
3839 {
40+ EXPECT_TRUE (expected_attributes.find (e.first ) != expected_attributes.end ());
41+ if (expected_attributes.find (e.first ) != expected_attributes.end ())
42+ if (e.first == " version" )
43+ EXPECT_EQ (opentelemetry::nostd::get<uint32_t >(expected_attributes.find (e.first )->second ),
44+ opentelemetry::nostd::get<uint32_t >(e.second ));
45+ else if (e.first == " cost" )
46+ EXPECT_EQ (opentelemetry::nostd::get<double >(expected_attributes.find (e.first )->second ),
47+ opentelemetry::nostd::get<double >(e.second ));
48+ else
49+ EXPECT_EQ (opentelemetry::nostd::get<std::string>(expected_attributes.find (e.first )->second ),
50+ opentelemetry::nostd::get<std::string>(e.second ));
51+ }
52+ EXPECT_EQ (received_attributes.size (), expected_attributes.size ()); // for missing service.name
53+ }
3954
55+ TEST (ResourceTest, create_with_servicename)
56+ {
57+ opentelemetry::sdk::resource::ResourceAttributes expected_attributes = {
58+ {" version" , (uint32_t )1 },
59+ {" cost" , 234.23 },
60+ {" telemetry.sdk.language" , " cpp" },
61+ {" telemetry.sdk.name" , " opentelemetry" },
62+ {" telemetry.sdk.version" , OPENTELEMETRY_SDK_VERSION},
63+ {" service.name" , " backend" },
64+ };
65+ opentelemetry::sdk::resource::ResourceAttributes attributes = {
66+ {" service.name" , " backend" }, {" version" , (uint32_t )1 }, {" cost" , 234.23 }};
67+ auto resource = opentelemetry::sdk::resource::Resource::Create (attributes);
68+ auto received_attributes = resource.GetAttributes ();
69+ for (auto &e : received_attributes)
70+ {
4071 EXPECT_TRUE (expected_attributes.find (e.first ) != expected_attributes.end ());
4172 if (expected_attributes.find (e.first ) != expected_attributes.end ())
4273 if (e.first == " version" )
@@ -49,9 +80,29 @@ TEST(ResourceTest, create)
4980 EXPECT_EQ (opentelemetry::nostd::get<std::string>(expected_attributes.find (e.first )->second ),
5081 opentelemetry::nostd::get<std::string>(e.second ));
5182 }
52- EXPECT_EQ (received_attributes2 .size (), expected_attributes.size ());
83+ EXPECT_EQ (received_attributes .size (), expected_attributes.size ()); // for missing service.name
5384}
5485
86+ TEST (ResourceTest, create_with_emptyatrributes)
87+ {
88+ opentelemetry::sdk::resource::ResourceAttributes expected_attributes = {
89+ {" telemetry.sdk.language" , " cpp" },
90+ {" telemetry.sdk.name" , " opentelemetry" },
91+ {" telemetry.sdk.version" , OPENTELEMETRY_SDK_VERSION},
92+ {" service.name" , " unknown_service" },
93+ };
94+ opentelemetry::sdk::resource::ResourceAttributes attributes = {};
95+ auto resource = opentelemetry::sdk::resource::Resource::Create (attributes);
96+ auto received_attributes = resource.GetAttributes ();
97+ for (auto &e : received_attributes)
98+ {
99+ EXPECT_TRUE (expected_attributes.find (e.first ) != expected_attributes.end ());
100+ if (expected_attributes.find (e.first ) != expected_attributes.end ())
101+ EXPECT_EQ (opentelemetry::nostd::get<std::string>(expected_attributes.find (e.first )->second ),
102+ opentelemetry::nostd::get<std::string>(e.second ));
103+ }
104+ EXPECT_EQ (received_attributes.size (), expected_attributes.size ()); // for missing service.name
105+ }
55106TEST (ResourceTest, Merge)
56107{
57108 TestResource resource1 (
@@ -72,6 +123,7 @@ TEST(ResourceTest, Merge)
72123 }
73124 EXPECT_EQ (received_attributes.size (), expected_attributes.size ());
74125}
126+
75127TEST (ResourceTest, MergeEmptyString)
76128{
77129 TestResource resource1 ({{" service" , " backend" }, {" host" , " service-host" }});
0 commit comments