mirror of
https://github.com/caddyserver/caddy.git
synced 2024-11-23 02:34:14 +08:00
72 lines
1.1 KiB
Go
72 lines
1.1 KiB
Go
|
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)
|
||
|
}
|
||
|
}
|
||
|
}
|