diff options
| author | Eyal Posener <[email protected]> | 2017-05-11 20:28:31 +0300 |
|---|---|---|
| committer | Eyal Posener <[email protected]> | 2017-05-11 20:33:29 +0300 |
| commit | 967bae76f3132c210e6275653f9b603593973858 (patch) | |
| tree | 0f71371443e6d5dde4fcf9e49c63b9afbab28a55 /predicate_test.go | |
| parent | a28594d28ea9a838f174641a411fd537c2c495b9 (diff) | |
Add Predictor interface
Diffstat (limited to 'predicate_test.go')
| -rw-r--r-- | predicate_test.go | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/predicate_test.go b/predicate_test.go deleted file mode 100644 index 1a694a1..0000000 --- a/predicate_test.go +++ /dev/null @@ -1,140 +0,0 @@ -package complete - -import ( - "sort" - "strings" - "testing" -) - -func TestPredicate(t *testing.T) { - t.Parallel() - initTests() - - tests := []struct { - name string - p Predicate - arg string - want []string - }{ - { - name: "set", - p: PredictSet("a", "b", "c"), - want: []string{"a", "b", "c"}, - }, - { - name: "set with does", - p: PredictSet("./..", "./x"), - arg: "./.", - want: []string{"./.."}, - }, - { - name: "set/empty", - p: PredictSet(), - want: []string{}, - }, - { - name: "anything", - p: PredictAnything, - want: []string{}, - }, - { - name: "nothing", - p: PredictNothing, - want: []string{}, - }, - { - name: "or: word with nil", - p: PredictSet("a").Or(PredictNothing), - want: []string{"a"}, - }, - { - name: "or: nil with word", - p: PredictNothing.Or(PredictSet("a")), - want: []string{"a"}, - }, - { - name: "or: nil with nil", - p: PredictNothing.Or(PredictNothing), - want: []string{}, - }, - { - name: "or: word with word with word", - p: PredictSet("a").Or(PredictSet("b")).Or(PredictSet("c")), - want: []string{"a", "b", "c"}, - }, - { - name: "files/txt", - p: PredictFiles("*.txt"), - want: []string{"./a.txt", "./b.txt", "./c.txt", "./.dot.txt"}, - }, - { - name: "files/txt", - p: PredictFiles("*.txt"), - arg: "./dir/", - want: []string{}, - }, - { - name: "files/x", - p: PredictFiles("x"), - arg: "./dir/", - want: []string{"./dir/x"}, - }, - { - name: "files/*", - p: PredictFiles("x*"), - arg: "./dir/", - want: []string{"./dir/x"}, - }, - { - name: "files/md", - p: PredictFiles("*.md"), - want: []string{"./readme.md"}, - }, - { - name: "dirs", - p: PredictDirs("*"), - arg: "./dir/", - want: []string{"./dir/"}, - }, - { - name: "dirs and files", - p: PredictFilesOrDirs("*"), - arg: "./dir", - want: []string{"./dir/", "./dir/x"}, - }, - { - name: "dirs", - p: PredictDirs("*"), - want: []string{"./", "./dir/"}, - }, - { - name: "subdir", - p: PredictFiles("*"), - arg: "./dir/", - want: []string{"./dir/x"}, - }, - } - - for _, tt := range tests { - t.Run(tt.name+"?arg='"+tt.arg+"'", func(t *testing.T) { - - matchers := tt.p.predict(tt.arg) - - matchersString := []string{} - for _, m := range matchers { - if m.Match(tt.arg) { - matchersString = append(matchersString, m.String()) - } - } - sort.Strings(matchersString) - sort.Strings(tt.want) - - got := strings.Join(matchersString, ",") - want := strings.Join(tt.want, ",") - - if got != want { - t.Errorf("failed %s\ngot = %s\nwant: %s", t.Name(), got, want) - } - }) - } -} |
