service/service_test.go

60 lines
1.2 KiB
Go
Raw Permalink Normal View History

package service
import (
"apigo.cc/go/log"
"testing"
)
func TestServiceRegister(t *testing.T) {
handler := func(req *Request, logger *log.Logger) string {
return "ok"
}
Host("*").Register("*", "/test", handler).Auth(0).Memo("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"
}
Host("*").Register("*", "/user/{id}", handler).Auth(0).Memo("get user")
webServicesLock.RLock()
found := false
for _, services := range regexWebServices {
for _, s := range services {
if s.path == "/user/{id}" {
found = true
if len(s.pathArgs) != 1 || s.pathArgs[0] != "id" {
t.Errorf("pathArgs mismatch: %v", s.pathArgs)
}
break
}
}
if found {
break
}
}
webServicesLock.RUnlock()
if !found {
t.Fatal("Regex service not registered")
}
}