@@ -119,6 +119,28 @@ TEST(OtlpRecordable, SetInstrumentationLibraryWithSchemaURL)
119119 EXPECT_EQ (expected_schema_url, rec.GetInstrumentationLibrarySchemaURL ());
120120}
121121
122+ TEST (OtlpRecordable, SetInstrumentationScopeWithAttributes)
123+ {
124+ exporter::otlp::OtlpRecordable rec;
125+
126+ auto inst_lib = trace_sdk::InstrumentationScope::Create (
127+ " test_scope_name" , " test_version" , " test_schema_url" , {{" test_key" , " test_value" }});
128+
129+ ASSERT_EQ (inst_lib->GetAttributes ().size (), 1 );
130+
131+ rec.SetInstrumentationScope (*inst_lib);
132+
133+ const auto proto_instr_libr = rec.GetProtoInstrumentationScope ();
134+ EXPECT_EQ (" test_scope_name" , proto_instr_libr.name ());
135+ EXPECT_EQ (" test_version" , proto_instr_libr.version ());
136+
137+ ASSERT_EQ (proto_instr_libr.attributes_size (), 1 );
138+ const auto &proto_attributes = proto_instr_libr.attributes (0 );
139+ ASSERT_TRUE (proto_attributes.value ().has_string_value ());
140+ EXPECT_EQ (" test_key" , proto_attributes.key ());
141+ EXPECT_EQ (" test_value" , proto_attributes.value ().string_value ());
142+ }
143+
122144TEST (OtlpRecordable, SetStartTime)
123145{
124146 OtlpRecordable rec;
@@ -324,7 +346,8 @@ TEST(OtlpRecordable, PopulateRequest)
324346 auto rec1 = std::unique_ptr<sdk::trace::Recordable>(new OtlpRecordable);
325347 auto resource1 = resource::Resource::Create ({{" service.name" , " one" }});
326348 rec1->SetResource (resource1);
327- auto inst_lib1 = trace_sdk::InstrumentationScope::Create (" one" , " 1" );
349+ auto inst_lib1 = trace_sdk::InstrumentationScope::Create (" one" , " 1" , " scope_schema" ,
350+ {{" scope_key" , " scope_value" }});
328351 rec1->SetInstrumentationScope (*inst_lib1);
329352
330353 auto rec2 = std::unique_ptr<sdk::trace::Recordable>(new OtlpRecordable);
@@ -350,12 +373,23 @@ TEST(OtlpRecordable, PopulateRequest)
350373 EXPECT_EQ (req.resource_spans ().size (), 2 );
351374 for (const auto &resource_spans : req.resource_spans ())
352375 {
353- auto service_name = resource_spans.resource ().attributes (0 ).value ().string_value ();
354- auto scope_spans_size = resource_spans.scope_spans ().size ();
376+ ASSERT_GT (resource_spans.resource ().attributes_size (), 0 );
377+ const auto service_name = resource_spans.resource ().attributes (0 ).value ().string_value ();
378+ const auto scope_spans_size = resource_spans.scope_spans ().size ();
355379 if (service_name == " one" )
356380 {
381+ ASSERT_GT (resource_spans.scope_spans_size (), 0 );
382+ const auto &scope_one = resource_spans.scope_spans (0 ).scope ();
383+
357384 EXPECT_EQ (scope_spans_size, 1 );
358- EXPECT_EQ (resource_spans.scope_spans (0 ).scope ().name (), " one" );
385+ EXPECT_EQ (scope_one.name (), " one" );
386+ EXPECT_EQ (scope_one.version (), " 1" );
387+
388+ ASSERT_EQ (scope_one.attributes_size (), 1 );
389+ const auto &scope_attribute = scope_one.attributes (0 );
390+
391+ EXPECT_EQ (scope_attribute.key (), " scope_key" );
392+ EXPECT_EQ (scope_attribute.value ().string_value (), " scope_value" );
359393 }
360394 if (service_name == " two" )
361395 {
0 commit comments