@@ -286,3 +286,66 @@ func Test_promoteTraceAndSpan(t *testing.T) {
286286 })
287287 }
288288}
289+
290+ func Test_promoteResourceAttrs (t * testing.T ) {
291+ t .Run ("single log" , func (t * testing.T ) {
292+ rl := plog .NewResourceLogs ()
293+ l := plog .NewLogRecord ()
294+ l .Attributes ().FromRaw (map [string ]any {"resource" : map [string ]any {"r1" : "v1" }})
295+
296+ promoteResourceAttrs (& l , & rl )
297+
298+ val , ok := rl .Resource ().Attributes ().Get ("r1" )
299+ assert .True (t , ok )
300+ assert .Equal (t , "v1" , val .Str ())
301+ })
302+
303+ t .Run ("two logs" , func (t * testing.T ) {
304+ rl := plog .NewResourceLogs ()
305+ l1 := plog .NewLogRecord ()
306+ l1 .Attributes ().FromRaw (map [string ]any {"resource" : map [string ]any {"r1" : "v1" }})
307+ l2 := plog .NewLogRecord ()
308+ l2 .Attributes ().FromRaw (map [string ]any {"resource" : map [string ]any {"r2" : "v2" }})
309+
310+ promoteResourceAttrs (& l1 , & rl )
311+ promoteResourceAttrs (& l2 , & rl )
312+
313+ v1 , ok := rl .Resource ().Attributes ().Get ("r1" )
314+ assert .True (t , ok )
315+ assert .Equal (t , "v1" , v1 .Str ())
316+
317+ v2 , ok := rl .Resource ().Attributes ().Get ("r2" )
318+ assert .True (t , ok )
319+ assert .Equal (t , "v2" , v2 .Str ())
320+ })
321+
322+ t .Run ("last wins" , func (t * testing.T ) {
323+ rl := plog .NewResourceLogs ()
324+ l1 := plog .NewLogRecord ()
325+ l1 .Attributes ().FromRaw (map [string ]any {"resource" : map [string ]any {"r1" : "v1" }})
326+ l2 := plog .NewLogRecord ()
327+ l2 .Attributes ().FromRaw (map [string ]any {"resource" : map [string ]any {"r1" : "v2" }})
328+
329+ promoteResourceAttrs (& l1 , & rl )
330+ promoteResourceAttrs (& l2 , & rl )
331+
332+ v2 , ok := rl .Resource ().Attributes ().Get ("r1" )
333+ assert .True (t , ok )
334+ assert .Equal (t , "v2" , v2 .Str ())
335+ })
336+
337+ t .Run ("overwrite original" , func (t * testing.T ) {
338+ rl := plog .NewResourceLogs ()
339+ rl .Resource ().Attributes ().FromRaw (map [string ]any {"r1" : "original" })
340+ l1 := plog .NewLogRecord ()
341+ l1 .Attributes ().FromRaw (map [string ]any {"resource" : map [string ]any {"r1" : "v1" }})
342+
343+ promoteResourceAttrs (& l1 , & rl )
344+
345+ v1 , ok := rl .Resource ().Attributes ().Get ("r1" )
346+ assert .True (t , ok )
347+ assert .Equal (t , "v1" , v1 .Str ())
348+
349+ })
350+
351+ }
0 commit comments