package readers import ( "io" "testing" "github.com/pkg/errors" "github.com/stretchr/testify/assert" ) var errRead = errors.New("read error") type readOnly struct{} func (readOnly) Read(p []byte) (n int, err error) { return 0, io.EOF } type readClose struct{} func (readClose) Read(p []byte) (n int, err error) { return 0, errRead } func (readClose) Close() (err error) { return io.EOF } func TestNoCloser(t *testing.T) { assert.Equal(t, nil, NoCloser(nil)) ro := readOnly{} assert.Equal(t, ro, NoCloser(ro)) rc := readClose{} nc := NoCloser(rc) assert.NotEqual(t, nc, rc) _, hasClose := nc.(io.Closer) assert.False(t, hasClose) _, err := nc.Read(nil) assert.Equal(t, errRead, err) }