1package opentracing 2 3import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7) 8 9func TestChildOfAndFollowsFrom(t *testing.T) { 10 tests := []struct { 11 newOpt func(SpanContext) SpanReference 12 refType SpanReferenceType 13 name string 14 }{ 15 {ChildOf, ChildOfRef, "ChildOf"}, 16 {FollowsFrom, FollowsFromRef, "FollowsFrom"}, 17 } 18 19 for _, test := range tests { 20 opts := new(StartSpanOptions) 21 22 test.newOpt(nil).Apply(opts) 23 require.Nil(t, opts.References, "%s(nil) must not append a reference", test.name) 24 25 ctx := new(noopSpanContext) 26 test.newOpt(ctx).Apply(opts) 27 require.Equal(t, []SpanReference{ 28 SpanReference{ReferencedContext: ctx, Type: test.refType}, 29 }, opts.References, "%s(ctx) must append a reference", test.name) 30 } 31} 32