Add tests for the string splitting function.

This commit is contained in:
Oleksii Kliukin
2017-11-22 10:43:35 +01:00
parent e95f80e351
commit 2079d811b4
2 changed files with 38 additions and 7 deletions
+6 -7
View File
@@ -185,9 +185,6 @@ func getMapPairsFromString(value string) (pairs []string , err error) {
state := Plain
var start, quote int
if value == "" {
return
}
for i, ch := range(strings.Split(value, "")) {
if ch == `"` {
if state == Plain {
@@ -208,14 +205,16 @@ func getMapPairsFromString(value string) (pairs []string , err error) {
}
}
if ch == "," && state == Plain {
pairs = append(pairs, value[start:i])
start = i
pairs = append(pairs, strings.Trim(value[start:i]," \t"))
start = i + 1
}
}
if state != Plain {
err = fmt.Errorf("unclosed quote starting at position %d", quote)
err = fmt.Errorf("unclosed quote starting at position %d", quote + 1)
pairs = nil
} else {
pairs = append(pairs, strings.Trim(value[start:], " \t"))
}
pairs = append(pairs, value[start:])
return
}