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 }