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  }