55 lines
1.0 KiB
Go
55 lines
1.0 KiB
Go
|
|
package service
|
||
|
|
|
||
|
|
import (
|
||
|
|
"apigo.cc/go/log"
|
||
|
|
"testing"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestServiceRegister(t *testing.T) {
|
||
|
|
handler := func(req *Request, logger *log.Logger) string {
|
||
|
|
return "ok"
|
||
|
|
}
|
||
|
|
|
||
|
|
Register(0, "/test", handler, "test service")
|
||
|
|
|
||
|
|
webServicesLock.RLock()
|
||
|
|
s := webServices["/test"]
|
||
|
|
webServicesLock.RUnlock()
|
||
|
|
|
||
|
|
if s == nil {
|
||
|
|
t.Fatal("Service not registered")
|
||
|
|
}
|
||
|
|
|
||
|
|
if s.requestIndex != 0 {
|
||
|
|
t.Errorf("requestIndex mismatch: expected 0, got %d", s.requestIndex)
|
||
|
|
}
|
||
|
|
if s.loggerIndex != 1 {
|
||
|
|
t.Errorf("loggerIndex mismatch: expected 1, got %d", s.loggerIndex)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestRegexServiceRegister(t *testing.T) {
|
||
|
|
handler := func(args map[string]any) string {
|
||
|
|
return "ok"
|
||
|
|
}
|
||
|
|
|
||
|
|
Register(0, "/user/{id}", handler, "get user")
|
||
|
|
|
||
|
|
webServicesLock.RLock()
|
||
|
|
found := false
|
||
|
|
for _, s := range regexWebServices {
|
||
|
|
if s.path == "/user/{id}" {
|
||
|
|
found = true
|
||
|
|
if len(s.pathArgs) != 1 || s.pathArgs[0] != "id" {
|
||
|
|
t.Errorf("pathArgs mismatch: %v", s.pathArgs)
|
||
|
|
}
|
||
|
|
break
|
||
|
|
}
|
||
|
|
}
|
||
|
|
webServicesLock.RUnlock()
|
||
|
|
|
||
|
|
if !found {
|
||
|
|
t.Fatal("Regex service not registered")
|
||
|
|
}
|
||
|
|
}
|