summaryrefslogtreecommitdiff
path: root/predicate_test.go
diff options
context:
space:
mode:
authorEyal Posener <[email protected]>2017-05-11 20:28:31 +0300
committerEyal Posener <[email protected]>2017-05-11 20:33:29 +0300
commit967bae76f3132c210e6275653f9b603593973858 (patch)
tree0f71371443e6d5dde4fcf9e49c63b9afbab28a55 /predicate_test.go
parenta28594d28ea9a838f174641a411fd537c2c495b9 (diff)
Add Predictor interface
Diffstat (limited to 'predicate_test.go')
-rw-r--r--predicate_test.go140
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)
- }
- })
- }
-}