github.com/karrick/gorill@v1.10.3/nlc_test.go (about)

     1  package gorill
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  )
     7  
     8  func TestNewlineCounter(t *testing.T) {
     9  	t.Run("sans newline", func(t *testing.T) {
    10  		t.Run("empty", func(t *testing.T) {
    11  			c, err := NewlineCounter(strings.NewReader(""))
    12  			ensureError(t, err)
    13  			if got, want := c, 0; got != want {
    14  				t.Errorf("GOT: %v; WANT: %v", got, want)
    15  			}
    16  		})
    17  		t.Run("one", func(t *testing.T) {
    18  			c, err := NewlineCounter(strings.NewReader("one"))
    19  			ensureError(t, err)
    20  			if got, want := c, 1; got != want {
    21  				t.Errorf("GOT: %v; WANT: %v", got, want)
    22  			}
    23  		})
    24  		t.Run("two", func(t *testing.T) {
    25  			c, err := NewlineCounter(strings.NewReader("one\ntwo"))
    26  			ensureError(t, err)
    27  			if got, want := c, 2; got != want {
    28  				t.Errorf("GOT: %v; WANT: %v", got, want)
    29  			}
    30  		})
    31  		t.Run("three", func(t *testing.T) {
    32  			c, err := NewlineCounter(strings.NewReader("one\ntwo\nthree"))
    33  			ensureError(t, err)
    34  			if got, want := c, 3; got != want {
    35  				t.Errorf("GOT: %v; WANT: %v", got, want)
    36  			}
    37  		})
    38  	})
    39  
    40  	t.Run("with newline", func(t *testing.T) {
    41  		t.Run("empty", func(t *testing.T) {
    42  			c, err := NewlineCounter(strings.NewReader("\n"))
    43  			ensureError(t, err)
    44  			if got, want := c, 0; got != want {
    45  				t.Errorf("GOT: %v; WANT: %v", got, want)
    46  			}
    47  		})
    48  		t.Run("one", func(t *testing.T) {
    49  			c, err := NewlineCounter(strings.NewReader("one\n"))
    50  			ensureError(t, err)
    51  			if got, want := c, 1; got != want {
    52  				t.Errorf("GOT: %v; WANT: %v", got, want)
    53  			}
    54  		})
    55  		t.Run("two", func(t *testing.T) {
    56  			c, err := NewlineCounter(strings.NewReader("one\ntwo\n"))
    57  			ensureError(t, err)
    58  			if got, want := c, 2; got != want {
    59  				t.Errorf("GOT: %v; WANT: %v", got, want)
    60  			}
    61  		})
    62  		t.Run("three", func(t *testing.T) {
    63  			c, err := NewlineCounter(strings.NewReader("one\ntwo\nthree\n"))
    64  			ensureError(t, err)
    65  			if got, want := c, 3; got != want {
    66  				t.Errorf("GOT: %v; WANT: %v", got, want)
    67  			}
    68  		})
    69  	})
    70  }