Codex first iteration
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
package tools
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type fakeTool struct{ key, name string }
|
||||
|
||||
func (f fakeTool) Definition() Definition { return Definition{Key: f.key, Name: f.name} }
|
||||
func (fakeTool) StudentHandler() http.Handler { return http.NotFoundHandler() }
|
||||
func TestRegistry(t *testing.T) {
|
||||
r := NewRegistry()
|
||||
if err := r.Register(fakeTool{}); err == nil {
|
||||
t.Fatal("empty key accepted")
|
||||
}
|
||||
if err := r.Register(fakeTool{key: "b", name: "Beta"}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := r.Register(fakeTool{key: "a", name: "Alpha"}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := r.Register(fakeTool{key: "a", name: "Again"}); err == nil {
|
||||
t.Fatal("duplicate accepted")
|
||||
}
|
||||
if got := r.List(); len(got) != 2 || got[0].Definition().Key != "a" {
|
||||
t.Fatalf("unstable list: %#v", got)
|
||||
}
|
||||
if _, err := r.Get("missing"); err != ErrNotFound {
|
||||
t.Fatalf("got %v", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user