1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
package segment
import (
"reflect"
"testing"
)
func Test_ExtractElements(t *testing.T) {
type testData struct {
in string
out []string
err error
}
tests := []testData{
{
"abcde+123+012+de+'",
[]string{
"abcde",
"123",
"012",
"de",
},
nil,
},
{
"abcde:123:012+de+'",
[]string{
"abcde:123:012",
"de",
},
nil,
},
}
for _, test := range tests {
extracted, err := ExtractElements([]byte(test.in))
if err != nil {
t.Logf("Expected no error, got %T:%v\n", err, err)
t.Fail()
}
if extracted == nil {
t.Logf("Expected result not to be nil\n")
t.Fail()
}
actual := make([]string, len(extracted))
for i, b := range extracted {
actual[i] = string(b)
}
if !reflect.DeepEqual(test.out, actual) {
t.Logf("Extract: \n%q\n", extracted)
t.Logf("Expected result to equal\n%q\n\tgot\n%q\n", test.out, actual)
t.Fail()
}
}
}
|