diff --git a/ngcp/dp.lua b/ngcp/dp.lua index 848c533..67bb792 100644 --- a/ngcp/dp.lua +++ b/ngcp/dp.lua @@ -27,10 +27,16 @@ NGCPDomainPrefs_MT = { __index = NGCPDomainPrefs } local con = assert (self.config:getDBConnection()) local query = "SELECT * FROM " .. self.db_table .. " WHERE domain ='" .. uuid .."'" local cur = assert (con:execute(query)) - local row = cur:fetch({}, "a") + 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))) + end sr.log("dbg",string.format("adding xavp %s[%d]", 'domain', level)) - self.xavp = NGCPXAvp:new(level,'domain',row) + self.xavp = NGCPXAvp:new(level,'domain',result) else sr.log("dbg", string.format("no results for query:%s", query)) end diff --git a/tests/ngcp_dp.lua b/tests/ngcp_dp.lua index f3c1e6b..a338891 100644 --- a/tests/ngcp_dp.lua +++ b/tests/ngcp_dp.lua @@ -7,6 +7,24 @@ require 'tests_v.dp_vars' sr = srMock:new() local mc = nil +DPFetch = { + __class__ = 'DPFetch', + _i = 1 +} + function DPFetch:new() + t = {} + return setmetatable(t, { __index = DPFetch }) + end + + function DPFetch:val(uuid) + self._i = self._i + 1 + return dp_vars[uuid][self._i-1] + end + + function DPFetch:reset() + self._i = 1 + end + TestNGCPDomainPrefs = {} --class function TestNGCPDomainPrefs:setUp() @@ -27,9 +45,10 @@ TestNGCPDomainPrefs = {} --class require 'ngcp.dp' self.d = NGCPDomainPrefs:new(self.config) + self.dp_vars = DPFetch:new() end - function TestNGCPDomainPrefs:rtearDown() + function TestNGCPDomainPrefs:tearDown() sr.pv.vars = {} end @@ -42,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(dp_vars["d_192_168_51_56"]) + 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(nil) self.cur:close() self.con:close() @@ -62,7 +82,9 @@ 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(dp_vars["d_192_168_51_56"]) + 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(nil) self.cur:close() self.con:close()