diff --git a/ngcp/dp.lua b/ngcp/dp.lua index 67bb792..1643fd0 100644 --- a/ngcp/dp.lua +++ b/ngcp/dp.lua @@ -30,10 +30,10 @@ NGCPDomainPrefs_MT = { __index = NGCPDomainPrefs } local result = {} local row = cur:fetch(result, "a") if row then - sr.log("info", string.format("result:%s", table.tostring(result))) while row do - row = cur:fetch(result, "a") - sr.log("info", string.format("result:%s", table.tostring(result))) + sr.log("info", string.format("result:%s row:%s", table.tostring(result), table.tostring(row))) + table.insert(result, row) + row = cur:fetch({}, "a") end sr.log("dbg",string.format("adding xavp %s[%d]", 'domain', level)) self.xavp = NGCPXAvp:new(level,'domain',result) diff --git a/ngcp/pp.lua b/ngcp/pp.lua index 329a87d..d4a290f 100644 --- a/ngcp/pp.lua +++ b/ngcp/pp.lua @@ -28,9 +28,18 @@ NGCPPeerPrefs_MT = { __index = NGCPPeerPrefs } local con = self.config:getDBConnection() local query = "SELECT * FROM " .. self.db_table .. " WHERE uuid = '" .. uuid .. "'" local cur = assert (con:execute(query)) - local row = cur:fetch({}, "a") + local result = {} + local row = cur:fetch(result, "a") if row then - self.xavp = NGCPXAvp:new(level,'peer',row) + while row do + sr.log("info", string.format("result:%s row:%s", table.tostring(result), table.tostring(row))) + table.insert(result, row) + row = cur:fetch({}, "a") + end + sr.log("dbg",string.format("adding xavp %s[%d]", 'domain', level)) + self.xavp = NGCPXAvp:new(level,'domain',result) + else + sr.log("dbg", string.format("no results for query:%s", query)) end cur:close() con:close() diff --git a/ngcp/up.lua b/ngcp/up.lua index d78e31d..e873a45 100644 --- a/ngcp/up.lua +++ b/ngcp/up.lua @@ -28,9 +28,18 @@ NGCPUserPrefs_MT = { __index = NGCPUserPrefs } local con = self.config:getDBConnection() local query = "SELECT * FROM " .. self.db_table .. " WHERE uuid ='" .. uuid .. "'" local cur = assert (con:execute(query)) - local row = cur:fetch({}, "a") + local result = {} + local row = cur:fetch(result, "a") if row then - self.xavp = NGCPXAvp:new(level,'usr',row) + while row do + sr.log("info", string.format("result:%s row:%s", table.tostring(result), table.tostring(row))) + table.insert(result, row) + row = cur:fetch({}, "a") + end + sr.log("dbg",string.format("adding xavp %s[%d]", 'domain', level)) + self.xavp = NGCPXAvp:new(level,'domain',result) + else + sr.log("dbg", string.format("no results for query:%s", query)) end cur:close() con:close() diff --git a/tests/ngcp_dp.lua b/tests/ngcp_dp.lua index a338891..513338a 100644 --- a/tests/ngcp_dp.lua +++ b/tests/ngcp_dp.lua @@ -61,7 +61,8 @@ TestNGCPDomainPrefs = {} --class assertTrue(self.d.config) self.config:getDBConnection() ;mc :returns(self.con) self.con:execute("SELECT * FROM dom_preferences WHERE domain ='192.168.51.56'") ;mc :returns(self.cur) - self.cur:fetch(mc.ANYARGS) ;mc :returns(self.dp_vars:val("d_192_168_51_56")) :times(#dp_vars["d_192_168_51_56"]) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.dp_vars:val("d_192_168_51_56")) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.dp_vars:val("d_192_168_51_56")) self.cur:fetch(mc.ANYARGS) ;mc :returns(nil) self.cur:close() self.con:close() @@ -75,15 +76,16 @@ TestNGCPDomainPrefs = {} --class assertEquals(sr.pv.vars["$xavp(domain[0]=>dummy)"], "") assertEquals(self.d.xavp("dummy"),"") assertEquals(sr.pv.vars["$xavp(domain[0]=>sst_enable)"],"no") - assertFalse(self.d.xavp("error_key")) + assertEquals(sr.pv.vars["$xavp(domain[0]=>sst_refresh_method)"], "UPDATE_FALLBACK_INVITE") + assertIsNil(self.d.xavp("error_key")) end function TestNGCPDomainPrefs:test_callee_load() assertTrue(self.d.config) self.config:getDBConnection() ;mc :returns(self.con) self.con:execute("SELECT * FROM dom_preferences WHERE domain ='192.168.51.56'") ;mc :returns(self.cur) - local i = 1 - self.cur:fetch({},"a") ;mc :returns(self.dp_vars:val("d_192_168_51_56")) :times(#dp_vars["d_192_168_51_56"]) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.dp_vars:val("d_192_168_51_56")) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.dp_vars:val("d_192_168_51_56")) self.cur:fetch(mc.ANYARGS) ;mc :returns(nil) self.cur:close() self.con:close() @@ -97,7 +99,8 @@ TestNGCPDomainPrefs = {} --class --print(table.tostring(sr.pv.vars)) assertFalse(sr.pv.vars["$xavp(domain[1]=>dummy)"]) assertEquals(sr.pv.vars["$xavp(domain[1]=>sst_enable)"],"no") - assertFalse(self.d.xavp("error_key")) + assertEquals(sr.pv.vars["$xavp(domain[1]=>sst_refresh_method)"], "UPDATE_FALLBACK_INVITE") + assertIsNil(self.d.xavp("error_key")) end -- class TestNGCPDomainPrefs diff --git a/tests/ngcp_pp.lua b/tests/ngcp_pp.lua index 20474cf..907fb54 100644 --- a/tests/ngcp_pp.lua +++ b/tests/ngcp_pp.lua @@ -7,6 +7,24 @@ require 'tests_v.pp_vars' sr = srMock:new() local mc = nil +PPFetch = { + __class__ = 'PPFetch', + _i = 1 +} + function PPFetch:new() + t = {} + return setmetatable(t, { __index = PPFetch }) + end + + function PPFetch:val(uuid) + self._i = self._i + 1 + return pp_vars[uuid][self._i-1] + end + + function PPFetch:reset() + self._i = 1 + end + TestNGCPPeerPrefs = {} --class function TestNGCPPeerPrefs:setUp() @@ -27,6 +45,7 @@ TestNGCPPeerPrefs = {} --class require 'ngcp.pp' self.d = NGCPPeerPrefs:new(self.config) + self.pp_vars = PPFetch:new() end function TestNGCPPeerPrefs:tearDown() @@ -42,7 +61,9 @@ TestNGCPPeerPrefs = {} --class assertTrue(self.d.config) self.config:getDBConnection() ;mc :returns(self.con) self.con:execute("SELECT * FROM peer_preferences WHERE uuid = '2'") ;mc :returns(self.cur) - self.cur:fetch(mc.ANYARGS) ;mc :returns(pp_vars["p_2"]) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.pp_vars:val("p_2")) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.pp_vars:val("p_2")) + self.cur:fetch(mc.ANYARGS) ;mc :returns(nil) self.cur:close() self.con:close() @@ -52,16 +73,20 @@ TestNGCPPeerPrefs = {} --class assertTrue(self.d.xavp) assertEquals(self.d.xavp("sst_enable"),"no") - assertFalse(self.d.xavp("cc"),"43") - assertEquals(self.d.xavp("use_rtpproxy"),"ice_strip_candidates") - assertEquals(self.d.xavp("rewrite_caller_in_dpid"),1) + assertEquals(sr.pv.vars["$xavp(domain[0]=>dummy)"], "") + assertEquals(self.d.xavp("dummy"),"") + assertEquals(sr.pv.vars["$xavp(domain[0]=>sst_enable)"],"no") + assertEquals(sr.pv.vars["$xavp(domain[0]=>sst_refresh_method)"], "UPDATE_FALLBACK_INVITE") + assertIsNil(self.d.xavp("error_key")) end function TestNGCPPeerPrefs:test_callee_load() assertTrue(self.d.config) self.config:getDBConnection() ;mc :returns(self.con) self.con:execute("SELECT * FROM peer_preferences WHERE uuid = '2'") ;mc :returns(self.cur) - self.cur:fetch(mc.ANYARGS) ;mc :returns(pp_vars["p_2"]) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.pp_vars:val("p_2")) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.pp_vars:val("p_2")) + self.cur:fetch(mc.ANYARGS) ;mc :returns(nil) self.cur:close() self.con:close() @@ -71,9 +96,11 @@ TestNGCPPeerPrefs = {} --class assertTrue(self.d.xavp) assertEquals(self.d.xavp("sst_enable"),"no") - assertFalse(self.d.xavp("cc"),"43") - assertEquals(self.d.xavp("use_rtpproxy"),"ice_strip_candidates") - assertEquals(self.d.xavp("rewrite_caller_in_dpid"),1) + --print(table.tostring(sr.pv.vars)) + assertFalse(sr.pv.vars["$xavp(domain[1]=>dummy)"]) + assertEquals(sr.pv.vars["$xavp(domain[1]=>sst_enable)"],"no") + assertEquals(sr.pv.vars["$xavp(domain[1]=>sst_refresh_method)"], "UPDATE_FALLBACK_INVITE") + assertIsNil(self.d.xavp("error_key")) end -- class TestNGCPPeerPrefs diff --git a/tests/ngcp_up.lua b/tests/ngcp_up.lua index 5402465..108a75e 100644 --- a/tests/ngcp_up.lua +++ b/tests/ngcp_up.lua @@ -7,6 +7,24 @@ require 'tests_v.up_vars' sr = srMock:new() local mc = nil +UPFetch = { + __class__ = 'UPFetch', + _i = 1 +} + function UPFetch:new() + t = {} + return setmetatable(t, { __index = UPFetch }) + end + + function UPFetch:val(uuid) + self._i = self._i + 1 + return up_vars[uuid][self._i-1] + end + + function UPFetch:reset() + self._i = 1 + end + TestNGCPUserPrefs = {} --class function TestNGCPUserPrefs:setUp() @@ -27,6 +45,7 @@ TestNGCPUserPrefs = {} --class require 'ngcp.up' self.d = NGCPUserPrefs:new(self.config) + self.up_vars = UPFetch:new() end function TestNGCPUserPrefs:tearDown() @@ -42,7 +61,11 @@ TestNGCPUserPrefs = {} --class assertTrue(self.d.config) self.config:getDBConnection() ;mc :returns(self.con) self.con:execute("SELECT * FROM usr_preferences WHERE uuid ='ae736f72-21d1-4ea6-a3ea-4d7f56b3887c'") ;mc :returns(self.cur) - self.cur:fetch(mc.ANYARGS) ;mc :returns(up_vars["ae736f72_21d1_4ea6_a3ea_4d7f56b3887c"]) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.up_vars:val("ae736f72_21d1_4ea6_a3ea_4d7f56b3887c")) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.up_vars:val("ae736f72_21d1_4ea6_a3ea_4d7f56b3887c")) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.up_vars:val("ae736f72_21d1_4ea6_a3ea_4d7f56b3887c")) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.up_vars:val("ae736f72_21d1_4ea6_a3ea_4d7f56b3887c")) + self.cur:fetch(mc.ANYARGS) ;mc :returns(nil) self.cur:close() self.con:close() @@ -61,7 +84,11 @@ TestNGCPUserPrefs = {} --class assertTrue(self.d.config) self.config:getDBConnection() ;mc :returns(self.con) self.con:execute("SELECT * FROM usr_preferences WHERE uuid ='ae736f72-21d1-4ea6-a3ea-4d7f56b3887c'") ;mc :returns(self.cur) - self.cur:fetch(mc.ANYARGS) ;mc :returns(up_vars["ae736f72_21d1_4ea6_a3ea_4d7f56b3887c"]) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.up_vars:val("ae736f72_21d1_4ea6_a3ea_4d7f56b3887c")) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.up_vars:val("ae736f72_21d1_4ea6_a3ea_4d7f56b3887c")) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.up_vars:val("ae736f72_21d1_4ea6_a3ea_4d7f56b3887c")) + self.cur:fetch(mc.ANYARGS) ;mc :returns(self.up_vars:val("ae736f72_21d1_4ea6_a3ea_4d7f56b3887c")) + self.cur:fetch(mc.ANYARGS) ;mc :returns(nil) self.cur:close() self.con:close() @@ -74,6 +101,7 @@ TestNGCPUserPrefs = {} --class assertEquals(self.d.xavp("cc"),"43") assertEquals(self.d.xavp("ac"),"1") assertEquals(self.d.xavp("cli"),"4311001") + assertIsNil(self.d.xavp("error_key")) end -- class TestNGCPUserPrefs