Skip to content

Commit

Permalink
rewrite unittest code
Browse files Browse the repository at this point in the history
  • Loading branch information
hanyuancheung committed Sep 14, 2022
1 parent a3ce943 commit 99252c1
Showing 1 changed file with 63 additions and 13 deletions.
76 changes: 63 additions & 13 deletions baggage/baggage_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -587,24 +587,74 @@ func TestBaggageSetMember(t *testing.T) {
assert.Equal(t, baggage.Item{}, b4.list[m.key])
assert.Equal(t, 1, len(b3.list))
assert.Equal(t, 2, len(b4.list))
}

func TestBaggageSetFalseMember(t *testing.T) {
b0 := Baggage{}

m = Member{key: "hasData false", hasData: false}
b5, err := b4.SetMember(m)
key := "k"
m := Member{key: key, hasData: false}
b1, err := b0.SetMember(m)
assert.Error(t, err)
assert.Equal(t, baggage.Item{Value: "v", Properties: []baggage.Property{{Key: "p"}}}, b3.list[key])
assert.NotContains(t, b3.list, m.key)
assert.Equal(t, baggage.Item{Value: "v", Properties: []baggage.Property{{Key: "p"}}}, b4.list[key])
assert.Equal(t, baggage.Item{}, b4.list[m.key])
assert.Equal(t, 2, len(b4.list))
assert.Equal(t, 2, len(b5.list))
assert.NotContains(t, b0.list, key)
assert.Equal(t, baggage.Item{}, b1.list[key])
assert.Equal(t, 0, len(b0.list))
assert.Equal(t, 0, len(b1.list))

m2 := Member{key: key, value: "v", hasData: false}
b6, err := b1.SetMember(m2)
m.value = "v"
b2, err := b1.SetMember(m)
assert.Error(t, err)
assert.Equal(t, baggage.Item{}, b1.list[key])
assert.Equal(t, baggage.Item{Value: ""}, b6.list[key])
assert.Equal(t, baggage.Item{Value: ""}, b2.list[key])
assert.Equal(t, 0, len(b1.list))
assert.Equal(t, 0, len(b2.list))
}

func TestBaggageSetFalseMembers(t *testing.T) {
b0 := Baggage{}

key := "k"
m := Member{key: key, hasData: true}
b1, err := b0.SetMember(m)
assert.NoError(t, err)
assert.NotContains(t, b0.list, key)
assert.Equal(t, baggage.Item{}, b1.list[key])
assert.Equal(t, 0, len(b0.list))
assert.Equal(t, 1, len(b1.list))
assert.Equal(t, 1, len(b6.list))

m.value = "v"
b2, err := b1.SetMember(m)
assert.NoError(t, err)
assert.Equal(t, baggage.Item{}, b1.list[key])
assert.Equal(t, baggage.Item{Value: "v"}, b2.list[key])
assert.Equal(t, 1, len(b1.list))
assert.Equal(t, 1, len(b2.list))

p := properties{{key: "p", hasData: false}}
m.properties = p
b3, err := b2.SetMember(m)
assert.NoError(t, err)
assert.Equal(t, baggage.Item{Value: "v"}, b2.list[key])
assert.Equal(t, baggage.Item{Value: "v", Properties: []baggage.Property{{Key: "p"}}}, b3.list[key])
assert.Equal(t, 1, len(b2.list))
assert.Equal(t, 1, len(b3.list))

// The returned baggage needs to be immutable and should use a copy of the
// properties slice.
p[0] = Property{key: "different", hasData: false}
assert.Equal(t, baggage.Item{Value: "v", Properties: []baggage.Property{{Key: "p"}}}, b3.list[key])
// Reset for below.
p[0] = Property{key: "p", hasData: false}

m = Member{key: "another", hasData: false}
b4, err := b3.SetMember(m)
assert.Error(t, err)
assert.Equal(t, baggage.Item{Value: "v", Properties: []baggage.Property{{Key: "p"}}}, b3.list[key])
assert.NotContains(t, b3.list, m.key)
assert.Equal(t, baggage.Item{Value: "v", Properties: []baggage.Property{{Key: "p"}}}, b4.list[key])
assert.Equal(t, baggage.Item{}, b4.list[m.key])
assert.Equal(t, 1, len(b3.list))
assert.Equal(t, 1, len(b4.list))
}

func TestNilBaggageMembers(t *testing.T) {
Expand Down Expand Up @@ -651,7 +701,7 @@ func TestBaggageMembers(t *testing.T) {

func TestBaggageMember(t *testing.T) {
bag := Baggage{list: baggage.List{"foo": {Value: "1"}}}
assert.Equal(t, Member{key: "foo", value: "1", hasData: true}, bag.Member("foo"))
assert.Equal(t, Member{key: "foo", value: "1"}, bag.Member("foo"))
assert.Equal(t, Member{}, bag.Member("bar"))
}

Expand Down

0 comments on commit 99252c1

Please sign in to comment.