go.charczuk.com@v0.0.0-20240327042549-bc490516bd1a/sdk/stringutil/fields_test.go (about) 1 /* 2 3 Copyright (c) 2023 - Present. Will Charczuk. All rights reserved. 4 Use of this source code is governed by a MIT license that can be found in the LICENSE file at the root of the repository. 5 6 */ 7 8 package stringutil 9 10 import ( 11 "testing" 12 13 . "go.charczuk.com/sdk/assert" 14 ) 15 16 func Test_Fields(t *testing.T) { 17 values := Fields("") 18 ItsEqual(t, 0, len(values)) 19 20 values = Fields("foo") 21 ItsEqual(t, 1, len(values)) 22 ItsEqual(t, "foo", values[0]) 23 24 values = Fields("foo bar") 25 ItsEqual(t, 2, len(values)) 26 ItsEqual(t, "foo", values[0]) 27 ItsEqual(t, "bar", values[1]) 28 29 values = Fields("foo bar") 30 ItsEqual(t, 2, len(values)) 31 ItsEqual(t, "foo", values[0]) 32 ItsEqual(t, "bar", values[1]) 33 34 values = Fields("foo\tbar") 35 ItsEqual(t, 2, len(values)) 36 ItsEqual(t, "foo", values[0]) 37 ItsEqual(t, "bar", values[1]) 38 39 values = Fields("foo \tbar") 40 ItsEqual(t, 2, len(values)) 41 ItsEqual(t, "foo", values[0]) 42 ItsEqual(t, "bar", values[1]) 43 44 values = Fields("foo bar ") 45 ItsEqual(t, 2, len(values)) 46 ItsEqual(t, "foo", values[0]) 47 ItsEqual(t, "bar", values[1]) 48 49 values = Fields("foo bar baz") 50 ItsEqual(t, 3, len(values)) 51 ItsEqual(t, "foo", values[0]) 52 ItsEqual(t, "bar", values[1]) 53 ItsEqual(t, "baz", values[2]) 54 55 values = Fields(`foo "bar baz"`) 56 ItsEqual(t, 2, len(values)) 57 ItsEqual(t, "foo", values[0]) 58 ItsEqual(t, `bar baz`, values[1]) 59 60 values = Fields(`foo --config="bar baz"`) 61 ItsEqual(t, 2, len(values)) 62 ItsEqual(t, "foo", values[0]) 63 ItsEqual(t, `--config="bar baz"`, values[1]) 64 65 values = Fields(`foo --config='bar baz="hi"'`) 66 ItsEqual(t, 2, len(values)) 67 ItsEqual(t, "foo", values[0]) 68 ItsEqual(t, `--config='bar baz="hi"'`, values[1]) 69 70 values = Fields(`foo --config="bar baz='hi'"`) 71 ItsEqual(t, 2, len(values)) 72 ItsEqual(t, "foo", values[0]) 73 ItsEqual(t, `--config="bar baz='hi'"`, values[1]) 74 75 values = Fields(`“what is xyz’s best kept secret?” “1st floor bathrooms” “xyz street side exit” “other (please explain)”`) 76 ItsEqual(t, 4, len(values)) 77 ItsEqual(t, `what is xyz’s best kept secret?`, values[0]) 78 ItsEqual(t, `1st floor bathrooms`, values[1]) 79 ItsEqual(t, `xyz street side exit`, values[2]) 80 ItsEqual(t, `other (please explain)`, values[3]) 81 82 values = Fields(`‘how about now’ ‘or now’`) 83 ItsEqual(t, 2, len(values)) 84 ItsEqual(t, `how about now`, values[0]) 85 ItsEqual(t, `or now`, values[1]) 86 }