79398a925d
Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
55 lines
1.1 KiB
Go
55 lines
1.1 KiB
Go
package data
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestGetFirstLineEmptyContent(t *testing.T) {
|
|
require.Nil(t, getFirstLine(nil))
|
|
}
|
|
|
|
func TestForEachLine(t *testing.T) {
|
|
const sample = "foo\nbar\nboomboom\nbleepbloop\n"
|
|
var lines = strings.Split(sample, "\n")
|
|
|
|
var result []string
|
|
forEachLine([]byte(sample), func(l []byte) {
|
|
result = append(result, string(l))
|
|
})
|
|
|
|
require.Equal(t, lines[:len(lines)-1], result)
|
|
}
|
|
|
|
func TestGetLines(t *testing.T) {
|
|
const sample = "foo\nbar\nboomboom\nbleepbloop\n"
|
|
|
|
testCases := []struct {
|
|
lines int
|
|
expected []string
|
|
}{
|
|
{1, []string{"foo"}},
|
|
{2, []string{"foo", "bar"}},
|
|
{10, []string{"foo", "bar", "boomboom", "bleepbloop"}},
|
|
{-1, []string{"bleepbloop"}},
|
|
{-2, []string{"bleepbloop", "boomboom"}},
|
|
{-10, []string{"bleepbloop", "boomboom", "bar", "foo"}},
|
|
}
|
|
|
|
for _, tt := range testCases {
|
|
t.Run(fmt.Sprint(tt.lines), func(t *testing.T) {
|
|
lines := getLines([]byte(sample), tt.lines)
|
|
|
|
var result = make([]string, len(lines))
|
|
for i, l := range lines {
|
|
result[i] = string(l)
|
|
}
|
|
|
|
require.Equal(t, tt.expected, result)
|
|
})
|
|
}
|
|
}
|