diff --git a/mocks/sr.lua b/mocks/sr.lua index ad4799e..30838aa 100644 --- a/mocks/sr.lua +++ b/mocks/sr.lua @@ -24,6 +24,7 @@ pvMock = { function t._is_xavp(id) local _id, indx, key local patterns = { + '%$xavp%(([%w_]+)%)$', '%$xavp%(([%w_]+)=>([%w_]+)%)$', '%$xavp%(([%w_^%[]+)%[(%d+)%]=>([%w_]+)%)$' } @@ -109,6 +110,9 @@ pvMock = { if not t.vars[result.private_id] then return end + if not result.key then + return t.vars[result.private_id] + end result.real_indx = #t.vars[result.private_id]._et - result.indx if t.vars[result.private_id]._et[result.real_indx] then --print(string.format("t.vars[%s]._et[%d]:%s", result.private_id, result.real_indx, table.tostring(t.vars[result.private_id]._et[result.indx+1]))) @@ -204,6 +208,10 @@ pvMock = { result.indx = 0 end if t.vars[result.private_id] then + if not result.key then + t.vars[result.private_id] = nil + return + end result.real_indx = #t.vars[result.private_id]._et - result.indx t.vars[result.private_id]._et[result.real_indx] = nil end diff --git a/tests/mocks.lua b/tests/mocks.lua index 1e5b7b8..5c8a71d 100644 --- a/tests/mocks.lua +++ b/tests/mocks.lua @@ -186,6 +186,11 @@ TestSRMock = {} assertError(self.sr.pv.seti, "$xavp(t[6]=>hithere)", "1") end + function TestSRMock:test_xavp_get() + self.sr.pv.sets("$xavp(g=>hithere)", "value") + assertTrue(self.sr.pv.get, "$xavp(g)") + end + function TestSRMock:test_avp_get_simple() self.sr.pv.sets("$avp(s:hithere)", "value") assertEquals(self.sr.pv.get("$avp(s:hithere)"), "value")