github.com/Jeffail/benthos/v3@v3.65.0/lib/message/part_with_context_test.go (about) 1 package message 2 3 import ( 4 "context" 5 "testing" 6 ) 7 8 func TestPartWithContext(t *testing.T) { 9 p1 := NewPart([]byte(`foobar`)) 10 if exp, act := context.Background(), GetContext(p1); exp != act { 11 t.Errorf("Wrong context returned: %v != %v", act, exp) 12 } 13 14 type testKey string 15 16 ctx := context.WithValue(context.Background(), testKey("foo"), "bar") 17 p2 := WithContext(ctx, p1) 18 19 if exp, act := false, p2.IsEmpty(); exp != act { 20 t.Errorf("Wrong value: %v != %v", act, exp) 21 } 22 if exp, act := "foobar", string(p2.Get()); exp != act { 23 t.Errorf("Wrong value: %v != %v", act, exp) 24 } 25 p2.Set([]byte(`barbaz`)) 26 if exp, act := "barbaz", string(p1.Get()); exp != act { 27 t.Errorf("Wrong value: %v != %v", act, exp) 28 } 29 30 if exp, act := ctx, GetContext(p2); exp != act { 31 t.Errorf("Wrong context returned: %v != %v", act, exp) 32 } 33 if exp, act := ctx, GetContext(p2.Copy()); exp != act { 34 t.Errorf("Wrong context returned: %v != %v", act, exp) 35 } 36 if exp, act := ctx, GetContext(p2.DeepCopy()); exp != act { 37 t.Errorf("Wrong context returned: %v != %v", act, exp) 38 } 39 if exp, act := ctx, GetContext(p2.Copy().DeepCopy().Copy()); exp != act { 40 t.Errorf("Wrong context returned: %v != %v", act, exp) 41 } 42 43 ctx = context.WithValue(ctx, testKey("bar"), "baz") 44 p3 := WithContext(ctx, p2) 45 46 if exp, act := "barbaz", string(p3.Get()); exp != act { 47 t.Errorf("Wrong value: %v != %v", act, exp) 48 } 49 p3.Set([]byte(`bazqux`)) 50 if exp, act := "bazqux", string(p1.Get()); exp != act { 51 t.Errorf("Wrong value: %v != %v", act, exp) 52 } 53 if exp, act := "bazqux", string(p2.Get()); exp != act { 54 t.Errorf("Wrong value: %v != %v", act, exp) 55 } 56 57 if exp, act := ctx, GetContext(p3); exp != act { 58 t.Errorf("Wrong context returned: %v != %v", act, exp) 59 } 60 if exp, act := ctx, GetContext(p3.Copy()); exp != act { 61 t.Errorf("Wrong context returned: %v != %v", act, exp) 62 } 63 if exp, act := ctx, GetContext(p3.DeepCopy()); exp != act { 64 t.Errorf("Wrong context returned: %v != %v", act, exp) 65 } 66 if exp, act := ctx, GetContext(p3.Copy().DeepCopy().Copy()); exp != act { 67 t.Errorf("Wrong context returned: %v != %v", act, exp) 68 } 69 }