context_test.go 525 B

1234567891011121314151617181920212223242526272829
  1. package readers
  2. import (
  3. "context"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. "github.com/stretchr/testify/require"
  7. )
  8. func TestContextReader(t *testing.T) {
  9. r := NewPatternReader(100)
  10. ctx, cancel := context.WithCancel(context.Background())
  11. cr := NewContextReader(ctx, r)
  12. var buf = make([]byte, 3)
  13. n, err := cr.Read(buf)
  14. require.NoError(t, err)
  15. assert.Equal(t, 3, n)
  16. assert.Equal(t, []byte{0, 1, 2}, buf)
  17. cancel()
  18. n, err = cr.Read(buf)
  19. assert.Equal(t, context.Canceled, err)
  20. assert.Equal(t, 0, n)
  21. }