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  }