Skip to content

Commit

Permalink
ErrNilReader
Browse files Browse the repository at this point in the history
  • Loading branch information
soniah committed Dec 6, 2018
1 parent 5869066 commit ed4d2df
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
13 changes: 8 additions & 5 deletions byline.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ var (
// ErrOmitLine - error for Map*Err/AWKMode, for omitting current line
ErrOmitLine = errors.New("ErrOmitLine")

// ErrNilReader - error for provided reader being nil
ErrNilReader = errors.New("nil reader")

// default field separator
defaultFS = regexp.MustCompile(`\s+`)
// default line separator
Expand Down Expand Up @@ -80,7 +83,7 @@ func (lr *Reader) scanLinesBySep(data []byte, atEOF bool) (advance int, token []
// Read - implement io.Reader interface
func (lr *Reader) Read(p []byte) (n int, err error) {
if lr == nil {
return 0, errors.New("nil reader")
return 0, ErrNilReader
}
var (
bufErr, filterErr error
Expand Down Expand Up @@ -270,7 +273,7 @@ func (lr *Reader) AWKMode(filterFn func(line string, fields []string, vars AWKVa
// Discard - read all content from Reader for side effect from filter functions
func (lr *Reader) Discard() error {
if lr == nil {
return errors.New("nil reader")
return ErrNilReader
}
_, err := io.Copy(ioutil.Discard, lr)
return err
Expand All @@ -290,15 +293,15 @@ func (lr *Reader) ReadAllSlice() ([][]byte, error) {
// ReadAll - read all content from Reader to slice of bytes
func (lr *Reader) ReadAll() ([]byte, error) {
if lr == nil {
return []byte{}, errors.New("nil reader")
return []byte{}, ErrNilReader
}
return ioutil.ReadAll(lr)
}

// ReadAllSliceString - read all content from Reader to string slice by lines
func (lr *Reader) ReadAllSliceString() ([]string, error) {
if lr == nil {
return []string{}, errors.New("nil reader")
return []string{}, ErrNilReader
}
result := []string{}
err := lr.MapString(func(line string) string {
Expand All @@ -312,7 +315,7 @@ func (lr *Reader) ReadAllSliceString() ([]string, error) {
// ReadAllString - read all content from Reader to one string
func (lr *Reader) ReadAllString() (string, error) {
if lr == nil {
return "", errors.New("nil reader")
return "", ErrNilReader
}
result, err := ioutil.ReadAll(lr)
return string(result), err
Expand Down
5 changes: 3 additions & 2 deletions byline_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -385,13 +385,14 @@ func TestAWKModeWithError(t *testing.T) {
}

func TestReadAll(t *testing.T) {
t.Run("ReadAllEmptyReader", func(t *testing.T) {
t.Run("ReadAllNilReader", func(t *testing.T) {
var reader io.Reader
_, err := byline.NewReader(reader).
SetRS('#').
MapString(func(line string) string { return "<" + line }).
ReadAll()
require.Error(t, err)
require.Exactly(t, byline.ErrNilReader, err, "ReadAllNilReader")

})

t.Run("ReadAll", func(t *testing.T) {
Expand Down

0 comments on commit ed4d2df

Please sign in to comment.