Improved performance

This commit is contained in:
Eduard Urbach 2024-03-14 23:26:59 +01:00
parent a7d64037a7
commit b04aadea09
Signed by: eduard
GPG key ID: 49226B848C78F6C8
7 changed files with 77 additions and 60 deletions

View file

@ -9,6 +9,20 @@ import (
"git.akyoto.dev/go/router/testdata"
)
func TestHello(t *testing.T) {
r := router.New[string]()
r.Add("GET", "/blog", "Blog")
r.Add("GET", "/blog/post", "Blog post")
data, params := r.Lookup("GET", "/blog")
assert.Equal(t, len(params), 0)
assert.Equal(t, data, "Blog")
data, params = r.Lookup("GET", "/blog/post")
assert.Equal(t, len(params), 0)
assert.Equal(t, data, "Blog post")
}
func TestStatic(t *testing.T) {
r := router.New[string]()
r.Add("GET", "/hello", "Hello")
@ -61,11 +75,12 @@ func TestParameter(t *testing.T) {
func TestWildcard(t *testing.T) {
r := router.New[string]()
r.Add("GET", "/", "Front page")
r.Add("GET", "/:post", "Blog post")
r.Add("GET", "/*any", "Wildcard")
r.Add("GET", "/users/:id", "Parameter")
r.Add("GET", "/images/static", "Static")
r.Add("GET", "/images/*path", "Wildcard")
r.Add("GET", "/:post", "Blog post")
r.Add("GET", "/*any", "Wildcard")
r.Add("GET", "*root", "Root wildcard")
data, params := r.Lookup("GET", "/")
assert.Equal(t, len(params), 0)
@ -107,6 +122,12 @@ func TestWildcard(t *testing.T) {
assert.Equal(t, params[0].Key, "path")
assert.Equal(t, params[0].Value, "favicon/256.png")
assert.Equal(t, data, "Wildcard")
data, params = r.Lookup("GET", "not-a-path")
assert.Equal(t, len(params), 1)
assert.Equal(t, params[0].Key, "root")
assert.Equal(t, params[0].Value, "not-a-path")
assert.Equal(t, data, "Root wildcard")
}
func TestMap(t *testing.T) {
@ -115,6 +136,7 @@ func TestMap(t *testing.T) {
r.Add("GET", "/world", "World")
r.Add("GET", "/user/:user", "User")
r.Add("GET", "/*path", "Path")
r.Add("GET", "*root", "Root")
r.Map(func(data string) string {
return strings.Repeat(data, 2)
@ -135,6 +157,10 @@ func TestMap(t *testing.T) {
data, params = r.Lookup("GET", "/test.txt")
assert.Equal(t, len(params), 1)
assert.Equal(t, data, "PathPath")
data, params = r.Lookup("GET", "test.txt")
assert.Equal(t, len(params), 1)
assert.Equal(t, data, "RootRoot")
}
func TestMethods(t *testing.T) {