From 859b5d7ea3b8f660ac68d9aea5a53d25a9a7422c Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Tue, 26 Mar 2019 12:00:54 -0600 Subject: Initial commit --- modules_test.go | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 modules_test.go (limited to 'modules_test.go') diff --git a/modules_test.go b/modules_test.go new file mode 100644 index 0000000..ff2ff4e --- /dev/null +++ b/modules_test.go @@ -0,0 +1,71 @@ +package caddy2 + +import ( + "reflect" + "testing" +) + +func TestGetModules(t *testing.T) { + modulesMu.Lock() + modules = map[string]Module{ + "a": {Name: "a"}, + "a.b": {Name: "a.b"}, + "a.b.c": {Name: "a.b.c"}, + "a.b.cd": {Name: "a.b.cd"}, + "a.c": {Name: "a.c"}, + "a.d": {Name: "a.d"}, + "b": {Name: "b"}, + "b.a": {Name: "b.a"}, + "b.b": {Name: "b.b"}, + "b.a.c": {Name: "b.a.c"}, + "c": {Name: "c"}, + } + modulesMu.Unlock() + + for i, tc := range []struct { + input string + expect []Module + }{ + { + input: "", + expect: []Module{ + {Name: "a"}, + {Name: "b"}, + {Name: "c"}, + }, + }, + { + input: "a", + expect: []Module{ + {Name: "a.b"}, + {Name: "a.c"}, + {Name: "a.d"}, + }, + }, + { + input: "a.b", + expect: []Module{ + {Name: "a.b.c"}, + {Name: "a.b.cd"}, + }, + }, + { + input: "a.b.c", + }, + { + input: "b", + expect: []Module{ + {Name: "b.a"}, + {Name: "b.b"}, + }, + }, + { + input: "asdf", + }, + } { + actual := GetModules(tc.input) + if !reflect.DeepEqual(actual, tc.expect) { + t.Errorf("Test %d: Expected %v but got %v", i, tc.expect, actual) + } + } +} -- cgit v1.2.3