diff --git a/mocks/sr.lua b/mocks/sr.lua index 6a646aa..1982d38 100644 --- a/mocks/sr.lua +++ b/mocks/sr.lua @@ -23,6 +23,13 @@ pvMock = { end function t._addvalue(id, value) + if string.starts(id, "$xavp(") then + local l = explode("=>", id) + -- $xavp(key=>key2) -> $xavp(key[0]=>key2) + if not string.ends(l[1],"]") then + id = l[1] .. "[0]=>" .. l[2] + end + end if not t.vars[id] then t.vars[id] = value elseif type(t.vars[id]) == 'table' then diff --git a/tests/mocks.lua b/tests/mocks.lua index 27b7bee..9ea32dc 100644 --- a/tests/mocks.lua +++ b/tests/mocks.lua @@ -61,10 +61,17 @@ TestSRMock = {} assertEquals(self.sr.pv.vars["$avp(s:hithere)"], nil) self.sr.pv.unset("$avp(s:hithere)") assertEquals(self.sr.pv.vars["$avp(s:hithere)"], nil) - self.sr.pv.sets("$xavp(g[0]=>t)", "value") + + self.sr.pv.sets("$xavp(g=>t)", "value") + assertEquals(self.sr.pv.vars["$xavp(g[0]=>t)"], value) + assertEquals(self.sr.pv.vars["$xavp(g=>t)"], nil) + self.sr.pv.sets("$xavp(g[0]=>v)", "value") self.sr.pv.unset("$xavp(g[1])") assertEquals(self.sr.pv.vars["$xavp(g[1])"], nil) + assertEquals(self.sr.pv.vars["$xavp(g[0]=>t)"], "value") + assertEquals(self.sr.pv.vars["$xavp(g[0]=>v)"], "value") + self.sr.pv.sets("$xavp(g[1]=>v)", "value") self.sr.pv.unset("$xavp(g[1])") assertEquals(self.sr.pv.vars["$xavp(g[1]=>v)"], nil)