Fixed issue with matcher
This commit is contained in:
@@ -178,7 +178,7 @@ feature -- Match
|
|||||||
else
|
else
|
||||||
from
|
from
|
||||||
l_expressions.start
|
l_expressions.start
|
||||||
p := 1
|
p := 0
|
||||||
l_offset := 0
|
l_offset := 0
|
||||||
until
|
until
|
||||||
l_expressions.after or not b
|
l_expressions.after or not b
|
||||||
@@ -187,10 +187,14 @@ feature -- Match
|
|||||||
vn := exp.expression
|
vn := exp.expression
|
||||||
q := exp.position
|
q := exp.position
|
||||||
--| Check text between vars
|
--| Check text between vars
|
||||||
--| FIXME jfiat [2011/07/22] : check this ...
|
if p = q then
|
||||||
--| There should be at least one literal between two expression
|
--| There should be at least one literal between two expression
|
||||||
--| {var}{foobar} is ambigous for matching ...
|
--| {var}{foobar} is ambigous for matching ...
|
||||||
if q > p then
|
b := False
|
||||||
|
elseif q > p then
|
||||||
|
if p = 0 then
|
||||||
|
p := 1
|
||||||
|
end
|
||||||
t := tpl.substring (p, q - 1)
|
t := tpl.substring (p, q - 1)
|
||||||
s := a_uri.substring (p + l_offset, q + l_offset - 1)
|
s := a_uri.substring (p + l_offset, q + l_offset - 1)
|
||||||
b := s.same_string (t)
|
b := s.same_string (t)
|
||||||
|
|||||||
@@ -29,6 +29,12 @@ feature -- Test routines
|
|||||||
local
|
local
|
||||||
tpl: URI_TEMPLATE
|
tpl: URI_TEMPLATE
|
||||||
do
|
do
|
||||||
|
create tpl.make ("{version}/{id}")
|
||||||
|
uri_template_match (tpl, "v2/123", <<["version", "v2"], ["id" , "123"]>>, <<>>)
|
||||||
|
|
||||||
|
create tpl.make ("api/{foo}{bar}/id/{id}")
|
||||||
|
uri_template_mismatch (tpl, "api/foobar/id/123")
|
||||||
|
|
||||||
create tpl.make ("api/foo/{foo_id}/{?id,extra}")
|
create tpl.make ("api/foo/{foo_id}/{?id,extra}")
|
||||||
uri_template_match (tpl, "api/foo/bar/", <<["foo_id", "bar"]>>, <<>>)
|
uri_template_match (tpl, "api/foo/bar/", <<["foo_id", "bar"]>>, <<>>)
|
||||||
uri_template_match (tpl, "api/foo/bar/?id=123", <<["foo_id", "bar"]>>, <<["id", "123"]>>)
|
uri_template_match (tpl, "api/foo/bar/?id=123", <<["foo_id", "bar"]>>, <<["id", "123"]>>)
|
||||||
|
|||||||
@@ -29,6 +29,13 @@ feature -- Test routines
|
|||||||
local
|
local
|
||||||
tpl: URI_TEMPLATE
|
tpl: URI_TEMPLATE
|
||||||
do
|
do
|
||||||
|
create tpl.make ("{version}/{id}")
|
||||||
|
uri_template_match (tpl, "v2/123", <<["version", "v2"], ["id" , "123"]>>, <<>>)
|
||||||
|
|
||||||
|
create tpl.make ("api/{foo}{bar}/id/{id}")
|
||||||
|
uri_template_mismatch (tpl, "api/foobar/id/123")
|
||||||
|
|
||||||
|
|
||||||
create tpl.make ("api/foo/{foo_id}/{?id,extra}")
|
create tpl.make ("api/foo/{foo_id}/{?id,extra}")
|
||||||
uri_template_match (tpl, "api/foo/bar/", <<["foo_id", "bar"]>>, <<>>)
|
uri_template_match (tpl, "api/foo/bar/", <<["foo_id", "bar"]>>, <<>>)
|
||||||
uri_template_match (tpl, "api/foo/bar/?id=123", <<["foo_id", "bar"]>>, <<["id", "123"]>>)
|
uri_template_match (tpl, "api/foo/bar/?id=123", <<["foo_id", "bar"]>>, <<["id", "123"]>>)
|
||||||
|
|||||||
@@ -40,8 +40,6 @@
|
|||||||
<option warning="true" full_class_checking="true" is_attached_by_default="true" void_safety="all">
|
<option warning="true" full_class_checking="true" is_attached_by_default="true" void_safety="all">
|
||||||
<assertions precondition="true"/>
|
<assertions precondition="true"/>
|
||||||
</option>
|
</option>
|
||||||
<setting name="console_application" value="false"/>
|
|
||||||
<variable name="uri_template" value="draft_05"/>
|
|
||||||
<library name="testing" location="$ISE_LIBRARY\library\testing\testing-safe.ecf"/>
|
<library name="testing" location="$ISE_LIBRARY\library\testing\testing-safe.ecf"/>
|
||||||
<tests name="tests" location=".\tests\"/>
|
<tests name="tests" location=".\tests\"/>
|
||||||
</target>
|
</target>
|
||||||
|
|||||||
Reference in New Issue
Block a user