38 lines
937 B
Go
38 lines
937 B
Go
![]() |
package config
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestSplitQuotedFields(t *testing.T) {
|
||
|
in := `field'A' 'fieldB' fie'l\'d'C fieldD 'another field' fieldE`
|
||
|
tgt := []string{"fieldA", "fieldB", "fiel'dC", "fieldD", "another field", "fieldE"}
|
||
|
out := SplitQuotedFields(in, '\'')
|
||
|
|
||
|
if len(tgt) != len(out) {
|
||
|
t.Fatalf("expected %#v, got %#v (len mismatch)", tgt, out)
|
||
|
}
|
||
|
|
||
|
for i := range tgt {
|
||
|
if tgt[i] != out[i] {
|
||
|
t.Fatalf(" expected %#v, got %#v (mismatch at %d)", tgt, out, i)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestSplitDoubleQuotedFields(t *testing.T) {
|
||
|
in := `field"A" "fieldB" fie"l'd"C "field\"D" "yet another field"`
|
||
|
tgt := []string{"fieldA", "fieldB", "fiel'dC", "field\"D", "yet another field"}
|
||
|
out := SplitQuotedFields(in, '"')
|
||
|
|
||
|
if len(tgt) != len(out) {
|
||
|
t.Fatalf("expected %#v, got %#v (len mismatch)", tgt, out)
|
||
|
}
|
||
|
|
||
|
for i := range tgt {
|
||
|
if tgt[i] != out[i] {
|
||
|
t.Fatalf(" expected %#v, got %#v (mismatch at %d)", tgt, out, i)
|
||
|
}
|
||
|
}
|
||
|
}
|