MT#7679 xavp: allow clean only a key

mr3.4.1
Victor Seva 11 years ago
parent 65dba89ade
commit e607914109

@ -141,9 +141,14 @@ NGCPXAvp_MT = {
end
end
function NGCPXAvp:clean()
function NGCPXAvp:clean(key)
if key then
local id = string.format("$xavp(%s[0]=>%s)", self.name, key)
sr.pv.unset(id)
else
sr.pv.unset(string.format("$xavp(%s)", self.name))
sr.pv.sets(string.format("$xavp(%s=>dummy)", self.name), self.level)
end
end
-- class
--EOF

@ -119,6 +119,20 @@ TestNGCPXAvp = {} --class
assertEquals(sr.pv.get("$xavp(caller_peer=>dummy)"), "caller")
end
function TestNGCPXAvp:test_clean_key()
local xavp = NGCPXAvp:new("caller", "peer", vals)
local vals = {1,"2",3,nil}
for i=1,#vals do
xavp("testid",vals[i])
assertEquals(xavp("testid"), vals[i])
assertEquals(sr.pv.get("$xavp(caller_peer=>testid)"),vals[i])
end
xavp("other", 1)
xavp:clean("testid")
assertIsNil(xavp("testid"))
assertEquals(sr.pv.get("$xavp(caller_peer=>other)"),1)
end
function TestNGCPXAvp:test_tostring()
local xavp = NGCPXAvp:new("caller", "peer", {})
assertEquals(tostring(xavp), '{dummy="caller"}')

Loading…
Cancel
Save