You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.7 KiB
Lua
74 lines
1.7 KiB
Lua
setup(function()
|
|
_G.LOR_FRAMEWORK_DEBUG = false
|
|
end)
|
|
|
|
teardown(function()
|
|
end)
|
|
|
|
before_each(function()
|
|
Trie = _G.Trie
|
|
t = Trie:new()
|
|
t1 = Trie:new()
|
|
t2 = Trie:new()
|
|
end)
|
|
|
|
after_each(function()
|
|
Trie = nil
|
|
t = nil
|
|
t1 = nil
|
|
t2 = nil
|
|
_debug = nil
|
|
end)
|
|
|
|
describe("strict route: ", function()
|
|
it("should match if strict route is false.", function()
|
|
local t = Trie:new({
|
|
strict_route = false -- default value is true
|
|
})
|
|
local n1 = t:add_node("/a/b")
|
|
|
|
local m1 = t:match("/a/b/")
|
|
assert.are.same(n1, m1.node)
|
|
|
|
local m2 = t:match("/a/b")
|
|
assert.are.same(n1, m2.node)
|
|
end)
|
|
|
|
it("should not match if strict route is true.", function()
|
|
local t = Trie:new({
|
|
strict_route = true -- default value is true
|
|
})
|
|
local n1 = t:add_node("/a/b")
|
|
|
|
local m1 = t:match("/a/b")
|
|
assert.are.same(n1, m1.node)
|
|
|
|
local m2 = t:match("/a/b/")
|
|
assert.is.falsy(m2.node)
|
|
end)
|
|
|
|
it("should match if strict route is false and the exact route is not given.", function()
|
|
local t = Trie:new({
|
|
strict_route = false -- default value is true
|
|
})
|
|
local n1 = t:add_node("/a/b")
|
|
|
|
local m1 = t:match("/a/b/")
|
|
assert.are.same(n1, m1.node)
|
|
end)
|
|
|
|
it("should not match if strict route is true and the exact route is not given.", function()
|
|
local t = Trie:new({
|
|
strict_route = true -- default value is true
|
|
})
|
|
local n1 = t:add_node("/a/b")
|
|
|
|
local m1 = t:match("/a/b/")
|
|
assert.is.falsy(m1.node)
|
|
assert.is.equals(nil, m1.node)
|
|
end)
|
|
end)
|
|
|
|
|
|
|