From 28e18d4eb1f2674c7686dd72f7e939562b672140 Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Fri, 5 Apr 2013 14:03:47 +0200 Subject: [PATCH] Added group param for clean. --- ngcp/ngcp.lua | 14 +++++++++++--- tests/ngcp.lua | 24 ++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/ngcp/ngcp.lua b/ngcp/ngcp.lua index c0dc93b..e34345e 100644 --- a/ngcp/ngcp.lua +++ b/ngcp/ngcp.lua @@ -87,10 +87,18 @@ NGCP_MT = { __index = NGCP } return {real = unique_keys, peer = keys.peer} end - function NGCP:clean(vtype) + function NGCP:clean(vtype, group) local _,v - for _,v in pairs(self.prefs) do - v:clean(vtype) + if not group then + for _,v in pairs(self.prefs) do + v:clean(vtype) + end + else + if self.prefs[group] then + self.prefs[group]:clean(vtype) + else + error(string.format("unknown group:%s", group)) + end end end -- class diff --git a/tests/ngcp.lua b/tests/ngcp.lua index abfdb43..c8e8a62 100644 --- a/tests/ngcp.lua +++ b/tests/ngcp.lua @@ -85,6 +85,30 @@ TestNGCP = {} --class assertFalse(sr.pv.get("$xavp(user)")) end + function TestNGCP:test_clean_caller_groups() + local groups = {"peer", "usr", "dom", "real"} + local _,v + + for _,v in pairs(groups) do + assertEquals(sr.pv.get(string.format("$xavp(caller_%s_prefs=>dummy)", v), "caller")) + self.ngcp:clean("caller", v) + assertFalse(sr.pv.get(string.format("$xavp(caller_%s_prefs=>dummy)", v))) + end + assertError(self.ngcp.clean, self.ngcp, "caller", "whatever") + end + + function TestNGCP:test_clean_callee_groups() + local groups = {"peer", "usr", "dom", "real"} + local _,v + + for _,v in pairs(groups) do + assertEquals(sr.pv.get(string.format("$xavp(callee_%s_prefs=>dummy)", v), "callee")) + self.ngcp:clean("callee", v) + assertFalse(sr.pv.get(string.format("$xavp(callee_%s_prefs=>dummy)", v))) + end + assertError(self.ngcp.clean, self.ngcp, "callee", "whatever") + end + function TestNGCP:test_callee_clean() local callee_xavp = NGCPDomainPrefs:xavp('callee') assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>dummy)"),"callee")