From d93e7d2a0483f7f1b44f1ff4863ac7950a649fca Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Tue, 2 Apr 2013 17:31:46 +0200 Subject: [PATCH] return keys when in load functions. Don't use internal key for xavp --- ngcp/dp.lua | 19 +++++++++++-------- ngcp/up.lua | 15 +++++++++------ tests/ngcp_dp.lua | 12 ++++-------- tests/ngcp_up.lua | 17 ++++++----------- 4 files changed, 30 insertions(+), 33 deletions(-) diff --git a/ngcp/dp.lua b/ngcp/dp.lua index 4303486..c6dc422 100644 --- a/ngcp/dp.lua +++ b/ngcp/dp.lua @@ -4,7 +4,7 @@ require 'ngcp.xavp' -- class NGCPDomainPrefs NGCPDomainPrefs = { __class__ = 'NGCPDomainPrefs' - } +} NGCPDomainPrefs_MT = { __index = NGCPDomainPrefs } function NGCPDomainPrefs:new(config) @@ -16,37 +16,40 @@ NGCPDomainPrefs_MT = { __index = NGCPDomainPrefs } end function NGCPDomainPrefs:caller_load(uuid) - NGCPDomainPrefs._load(self,"caller",uuid) + return NGCPDomainPrefs._load(self,"caller",uuid) end function NGCPDomainPrefs:callee_load(uuid) - NGCPDomainPrefs._load(self,"callee",uuid) + return NGCPDomainPrefs._load(self,"callee",uuid) end function NGCPDomainPrefs:_load(level, uuid) local con = assert (self.config:getDBConnection()) local query = "SELECT * FROM " .. self.db_table .. " WHERE domain ='" .. uuid .."'" local cur = assert (con:execute(query)) + local keys = {} local result = {} local row = cur:fetch({}, "a") + local xavp + if row then while row do --sr.log("info", string.format("result:%s row:%s", table.tostring(result), table.tostring(row))) table.insert(result, row) + table.insert(keys, row.attribute) row = cur:fetch({}, "a") end - self.xavp = NGCPXAvp:new(level,'domain',result) + xavp = NGCPXAvp:new(level,'domain',result) else sr.log("dbg", string.format("no results for query:%s", query)) end cur:close() con:close() + return keys end - function NGCPDomainPrefs:clean(...) - if self.xavp then - self.xavp:clean() - end + function NGCPDomainPrefs:clean() + sr.pv.unset("$xavp(domain)") end -- class --EOF \ No newline at end of file diff --git a/ngcp/up.lua b/ngcp/up.lua index dd8a22a..15088c1 100644 --- a/ngcp/up.lua +++ b/ngcp/up.lua @@ -16,37 +16,40 @@ NGCPUserPrefs_MT = { __index = NGCPUserPrefs } end function NGCPUserPrefs:caller_load(uuid) - NGCPUserPrefs._load(self,"caller",uuid) + return NGCPUserPrefs._load(self,"caller",uuid) end function NGCPUserPrefs:callee_load(uuid) - NGCPUserPrefs._load(self,"callee",uuid) + return NGCPUserPrefs._load(self,"callee",uuid) end function NGCPUserPrefs:_load(level, uuid) local con = assert (self.config:getDBConnection()) local query = "SELECT * FROM " .. self.db_table .. " WHERE uuid ='" .. uuid .. "'" local cur = assert (con:execute(query)) + local keys = {} local result = {} local row = cur:fetch({}, "a") + local xavp + if row then while row do --sr.log("info", string.format("result:%s row:%s", table.tostring(result), table.tostring(row))) table.insert(result, row) + table.insert(keys, row.attribute) row = cur:fetch({}, "a") end - self.xavp = NGCPXAvp:new(level,'user',result) + xavp = NGCPXAvp:new(level,'user',result) else sr.log("dbg", string.format("no results for query:%s", query)) end cur:close() con:close() + return keys end function NGCPUserPrefs:clean(...) - if self.xavp then - self.xavp:clean() - end + sr.pv.unset("$xavp(user)") end -- class --EOF \ No newline at end of file diff --git a/tests/ngcp_dp.lua b/tests/ngcp_dp.lua index c62500f..980a7f4 100644 --- a/tests/ngcp_dp.lua +++ b/tests/ngcp_dp.lua @@ -68,14 +68,12 @@ TestNGCPDomainPrefs = {} --class self.con:close() mc:replay() - self.d:caller_load("192.168.51.56") + local keys = self.d:caller_load("192.168.51.56") mc:verify() - assertTrue(self.d.xavp) - assertEquals(self.d.xavp("sst_enable"),"no") assertEquals(sr.pv.get("$xavp(domain[0]=>sst_enable)"),"no") assertEquals(sr.pv.get("$xavp(domain[0]=>sst_refresh_method)"), "UPDATE_FALLBACK_INVITE") - assertIsNil(self.d.xavp("error_key")) + assertItemsEquals(keys, {"sst_enable", "sst_refresh_method"}) end function TestNGCPDomainPrefs:test_callee_load() @@ -89,14 +87,12 @@ TestNGCPDomainPrefs = {} --class self.con:close() mc:replay() - self.d:callee_load("192.168.51.56") + local keys = self.d:callee_load("192.168.51.56") mc:verify() - assertTrue(self.d.xavp) - assertEquals(self.d.xavp("sst_enable"),"no") assertEquals(sr.pv.get("$xavp(domain[1]=>sst_enable)"),"no") assertEquals(sr.pv.get("$xavp(domain[1]=>sst_refresh_method)"), "UPDATE_FALLBACK_INVITE") - assertIsNil(self.d.xavp("error_key")) + assertItemsEquals(keys, {"sst_enable", "sst_refresh_method"}) end -- class TestNGCPDomainPrefs diff --git a/tests/ngcp_up.lua b/tests/ngcp_up.lua index 347dc32..2697165 100644 --- a/tests/ngcp_up.lua +++ b/tests/ngcp_up.lua @@ -70,16 +70,14 @@ TestNGCPUserPrefs = {} --class self.con:close() mc:replay() - self.d:caller_load("ae736f72-21d1-4ea6-a3ea-4d7f56b3887c") + local keys = self.d:caller_load("ae736f72-21d1-4ea6-a3ea-4d7f56b3887c") mc:verify() - assertTrue(self.d.xavp) - assertEquals(self.d.xavp("cli"),"4311001") + assertEquals(sr.pv.get("$xavp(user[0]=>account_id)"),2) assertEquals(sr.pv.get("$xavp(user[0]=>cli)"),"4311001") - assertEquals(self.d.xavp("cc"),"43") assertEquals(sr.pv.get("$xavp(user[0]=>cc)"),"43") - assertEquals(self.d.xavp("ac"),"1") assertEquals(sr.pv.get("$xavp(user[0]=>ac)"),"1") + assertItemsEquals(keys, {"account_id", "cli", "cc", "ac"}) end function TestNGCPUserPrefs:test_callee_load() @@ -95,17 +93,14 @@ TestNGCPUserPrefs = {} --class self.con:close() mc:replay() - self.d:callee_load("ae736f72-21d1-4ea6-a3ea-4d7f56b3887c") + local keys = self.d:callee_load("ae736f72-21d1-4ea6-a3ea-4d7f56b3887c") mc:verify() - assertTrue(self.d.xavp) - - assertEquals(self.d.xavp("cli"),"4311001") + assertEquals(sr.pv.get("$xavp(user[1]=>account_id)"),2) assertEquals(sr.pv.get("$xavp(user[1]=>cli)"),"4311001") - assertEquals(self.d.xavp("cc"),"43") assertEquals(sr.pv.get("$xavp(user[1]=>cc)"),"43") - assertEquals(self.d.xavp("ac"),"1") assertEquals(sr.pv.get("$xavp(user[1]=>ac)"),"1") + assertItemsEquals(keys, {"account_id", "cli", "cc", "ac"}) end -- class TestNGCPUserPrefs