github.com/noqcks/syft@v0.0.0-20230920222752-a9e2c4e288e5/syft/file/cataloger/secrets/newline_counter_test.go (about) 1 package secrets 2 3 import ( 4 "bufio" 5 "io" 6 "strings" 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestLineCounter_ReadRune(t *testing.T) { 13 counter := &newlineCounter{RuneReader: bufio.NewReader(strings.NewReader("hi\nwhat's the weather like today?\ndunno...\n"))} 14 var err error 15 for err == nil { 16 _, _, err = counter.ReadRune() 17 } 18 if err != io.EOF { 19 t.Fatalf("should have gotten an eof, got %+v", err) 20 } 21 assert.Equal(t, 3, len(counter.newLines), "bad line count") 22 assert.Equal(t, []int64{3, 34, 43}, counter.newLines, "bad line positions") 23 } 24 25 func TestLineCounter_newlinesBefore(t *testing.T) { 26 counter := &newlineCounter{RuneReader: bufio.NewReader(strings.NewReader("hi\nwhat's the weather like today?\ndunno...\n"))} 27 var err error 28 for err == nil { 29 _, _, err = counter.ReadRune() 30 } 31 if err != io.EOF { 32 t.Fatalf("should have gotten an eof, got %+v", err) 33 } 34 assert.Equal(t, 1, counter.newlinesBefore(10), "bad line count") 35 }