Skip to content

Commit

Permalink
Add additional TestBodyWrapper_Rewind subtests
Browse files Browse the repository at this point in the history
  • Loading branch information
AnandaIlyasa authored and gavv committed Oct 1, 2023
1 parent 65e65e5 commit 8d90e3b
Showing 1 changed file with 139 additions and 0 deletions.
139 changes: 139 additions & 0 deletions body_wrapper_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,145 @@ func TestBodyWrapper_Rewind(t *testing.T) {
assert.Equal(t, 1, body.closeCount)
assert.Equal(t, 1, cancelCount)
})

t.Run("readall - rewind - readall", func(t *testing.T) {
body := newMockBody("test_body")

cancelCount := 0
cancelFn := func() {
cancelCount++
}

wrp := newBodyWrapper(body, cancelFn)

b, err := io.ReadAll(wrp)
assert.NoError(t, err)
assert.Equal(t, "test_body", string(b))

readCount := body.readCount
assert.NotEqual(t, 0, body.readCount)
assert.Equal(t, 1, body.closeCount)
assert.Equal(t, 1, cancelCount)

wrp.Rewind()

b, err = io.ReadAll(wrp)
assert.NoError(t, err)
assert.Equal(t, "test_body", string(b))

assert.Equal(t, readCount, body.readCount)
assert.Equal(t, 1, body.closeCount)
assert.Equal(t, 1, cancelCount)
})

t.Run("close - rewind - readall", func(t *testing.T) {
body := newMockBody("test_body")

cancelCount := 0
cancelFn := func() {
cancelCount++
}

wrp := newBodyWrapper(body, cancelFn)

err := wrp.Close()
assert.NoError(t, err)

wrp.Rewind()

b, err := io.ReadAll(wrp)
assert.NoError(t, err)
assert.Equal(t, "test_body", string(b))

assert.NotEqual(t, 0, body.readCount)
assert.Equal(t, 1, body.closeCount)
assert.Equal(t, 1, cancelCount)
})

t.Run("rewind - readall - rewind - readall", func(t *testing.T) {
body := newMockBody("test_body")

cancelCount := 0
cancelFn := func() {
cancelCount++
}

wrp := newBodyWrapper(body, cancelFn)

wrp.Rewind()

b, err := io.ReadAll(wrp)
assert.NoError(t, err)
assert.Equal(t, "test_body", string(b))

readCount := body.readCount
assert.NotEqual(t, 0, body.readCount)
assert.Equal(t, 1, body.closeCount)
assert.Equal(t, 1, cancelCount)

wrp.Rewind()

b, err = io.ReadAll(wrp)
assert.NoError(t, err)
assert.Equal(t, "test_body", string(b))

assert.Equal(t, readCount, body.readCount)
assert.Equal(t, 1, body.closeCount)
assert.Equal(t, 1, cancelCount)
})

t.Run("rewind - close - rewind - readall", func(t *testing.T) {
body := newMockBody("test_body")

cancelCount := 0
cancelFn := func() {
cancelCount++
}

wrp := newBodyWrapper(body, cancelFn)

wrp.Rewind()

err := wrp.Close()
assert.NoError(t, err)

wrp.Rewind()

b, err := io.ReadAll(wrp)
assert.NoError(t, err)
assert.Equal(t, "test_body", string(b))

assert.NotEqual(t, 0, body.readCount)
assert.Equal(t, 1, body.closeCount)
assert.Equal(t, 1, cancelCount)
})

t.Run("readall - close - rewind (loop)", func(t *testing.T) {
body := newMockBody("test_body")

cancelCount := 0
cancelFn := func() {
cancelCount++
}

wrp := newBodyWrapper(body, cancelFn)

n := 3
for i := 0; i < n; i++ {
b, err := io.ReadAll(wrp)
assert.NoError(t, err)
assert.Equal(t, "test_body", string(b))

assert.NotEqual(t, 0, body.readCount)
assert.Equal(t, 1, body.closeCount)
assert.Equal(t, 1, cancelCount)

err = wrp.Close()
assert.NoError(t, err)

wrp.Rewind()
}
})
}

func TestBodyWrapper_GetBody(t *testing.T) {
Expand Down

0 comments on commit 8d90e3b

Please sign in to comment.