diff --git a/ngcp/dp.lua b/ngcp/dp.lua index 355600f..0dcd499 100644 --- a/ngcp/dp.lua +++ b/ngcp/dp.lua @@ -1,4 +1,5 @@ #!/usr/bin/env lua5.1 +require 'ngcp.utils' require 'ngcp.xavp' -- class NGCPDomainPrefs @@ -30,34 +31,36 @@ NGCPDomainPrefs_MT = { __index = NGCPDomainPrefs } 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) + table.add(keys, row.attribute) row = cur:fetch({}, "a") end else sr.log("dbg", string.format("no results for query:%s", query)) end - xavp = NGCPXAvp:new(level,'domain',result) + NGCPDomainPrefs:xavp(level, result) cur:close() con:close() return keys end + function NGCPDomainPrefs:xavp(level, l) + if level ~= 'caller' and level ~= 'callee' then + error(string.format("unknown level:%s. It has to be [caller|callee]", tostring(level))) + end + return NGCPXAvp:new(level,'dom_prefs', l) + end + function NGCPDomainPrefs:clean(vtype) - local xavp if not vtype then - sr.pv.unset("$xavp(domain)") - elseif vtype == 'callee' then - xavp = NGCPXAvp:new('callee','domain',{}) - xavp:clean() - elseif vtype == 'caller' then - xavp = NGCPXAvp:new('caller','domain',{}) - xavp:clean() + NGCPDomainPrefs:xavp('callee'):clean() + NGCPDomainPrefs:xavp('caller'):clean() + else + NGCPDomainPrefs:xavp(vtype):clean() end end -- class diff --git a/ngcp/ngcp.lua b/ngcp/ngcp.lua index 01d39ac..4c2255b 100644 --- a/ngcp/ngcp.lua +++ b/ngcp/ngcp.lua @@ -48,18 +48,18 @@ NGCP_MT = { __index = NGCP } config = NGCPConfig:new() } t.prefs = { - domain = NGCPDomainPrefs:new(t.config), - user = NGCPUserPrefs:new(t.config), - peer = NGCPPeerPrefs:new(t.config), - real = NGCPPeerPrefs:new(), + dom = NGCPDomainPrefs:new(t.config), + usr = NGCPUserPrefs:new(t.config), + peer = NGCPPeerPrefs:new(t.config), + real = NGCPPeerPrefs:new(), } return t end function NGCP:caller_load(uuid, domain, peer) local keys = { - domain = self.prefs.domain:caller_load(domain), - user = self.prefs.user:caller_load(uuid), + domain = self.prefs.dom:caller_load(domain), + user = self.prefs.usr:caller_load(uuid), peer = self.prefs.peer:caller_load(peer) } local unique_keys = table.deepcopy(keys.domain) @@ -72,8 +72,8 @@ NGCP_MT = { __index = NGCP } function NGCP:callee_load(uuid, domain, peer) local keys = { - domain = self.prefs.domain:callee_load(domain), - user = self.prefs.user:callee_load(uuid), + domain = self.prefs.dom:callee_load(domain), + user = self.prefs.usr:callee_load(uuid), peer = self.prefs.peer:caller_load(peer) } local unique_keys = table.deepcopy(keys.domain) diff --git a/ngcp/pp.lua b/ngcp/pp.lua index 4b7a35d..cbd3c31 100644 --- a/ngcp/pp.lua +++ b/ngcp/pp.lua @@ -1,4 +1,5 @@ #!/usr/bin/env lua5.1 +require 'ngcp.utils' require 'ngcp.xavp' -- class NGCPPeerPrefs @@ -16,43 +17,50 @@ NGCPPeerPrefs_MT = { __index = NGCPPeerPrefs } end function NGCPPeerPrefs:caller_load(uuid) - NGCPPeerPrefs._load(self,"caller",uuid) + return self:_load("caller",uuid) end function NGCPPeerPrefs:callee_load(uuid) - NGCPPeerPrefs._load(self,"callee",uuid) + return self:_load("callee",uuid) end function NGCPPeerPrefs:_load(level, uuid) - local con = self.config:getDBConnection() + 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(result, "a") + local row = cur:fetch({}, "a") + if row then while row do - sr.log("info", string.format("result:%s row:%s", table.tostring(result), table.tostring(row))) + --sr.log("info", string.format("result:%s row:%s", table.tostring(result), table.tostring(row))) table.insert(result, row) + table.add(keys, row.attribute) row = cur:fetch({}, "a") end else sr.log("dbg", string.format("no results for query:%s", query)) end - self.xavp = NGCPXAvp:new(level,'peer',result) + self:xavp(level, result) cur:close() con:close() + return keys + end + + function NGCPPeerPrefs:xavp(level, l) + if level ~= 'caller' and level ~= 'callee' then + error(string.format("unknown level:%s. It has to be [caller|callee]", tostring(level))) + end + return NGCPXAvp:new(level,'peer_prefs', l) end function NGCPPeerPrefs:clean(vtype) - local xavp if not vtype then - sr.pv.unset("$xavp(peer)") - elseif vtype == 'callee' then - xavp = NGCPXAvp:new('callee','peer',{}) - xavp:clean() - elseif vtype == 'caller' then - xavp = NGCPXAvp:new('caller','peer',{}) - xavp:clean() + NGCPPeerPrefs:xavp('callee'):clean() + NGCPPeerPrefs:xavp('caller'):clean() + else + NGCPPeerPrefs:xavp(vtype):clean() end end -- class diff --git a/ngcp/rp.lua b/ngcp/rp.lua index 4698eca..3f5d838 100644 --- a/ngcp/rp.lua +++ b/ngcp/rp.lua @@ -24,19 +24,21 @@ NGCPRealPrefs_MT = { __index = NGCPRealPrefs } function NGCPRealPrefs:_load(level, keys) local _,v local xavp = { - real = NGCPXAvp:new(level,'real', {}), - domain = NGCPXAvp:new(level,'domain', {}), - user = NGCPXAvp:new(level,'user', {}), + real = NGCPRealPrefs:xavp(level), + dom = NGCPDomainPrefs:xavp(level), + usr = NGCPUserPrefs:xavp(level) } local real_keys = {} local value for _,v in pairs(keys) do - value = xavp.user(v) + value = xavp.usr(v) if not value then - value = xavp.domain(v) + value = xavp.dom(v) + --sr.log("info", string.format("key:%s value:%s from domain", v, value)) end if value then table.add(real_keys, v) + --sr.log("info", string.format("key:%s value:%s", v, value)) xavp.real(v, value) else sr.log("err", string.format("key:%s not in user or domain", v)) @@ -45,16 +47,19 @@ NGCPRealPrefs_MT = { __index = NGCPRealPrefs } return real_keys end - function NGCPRealPrefs:clean() - local xavp + function NGCPRealPrefs:xavp(level, l) + if level ~= 'caller' and level ~= 'callee' then + error(string.format("unknown level:%s. It has to be [caller|callee]", tostring(level))) + end + return NGCPXAvp:new(level,'real_prefs', l) + end + + function NGCPRealPrefs:clean(vtype) if not vtype then - sr.pv.unset("$xavp(real)") - elseif vtype == 'callee' then - xavp = NGCPXAvp:new('callee','real',{}) - xavp:clean() - elseif vtype == 'caller' then - xavp = NGCPXAvp:new('caller','real',{}) - xavp:clean() + NGCPRealPrefs:xavp('callee'):clean() + NGCPRealPrefs:xavp('caller'):clean() + else + NGCPRealPrefs:xavp(vtype):clean() end end -- class diff --git a/ngcp/up.lua b/ngcp/up.lua index 4f3d304..2dc2a5e 100644 --- a/ngcp/up.lua +++ b/ngcp/up.lua @@ -1,4 +1,5 @@ #!/usr/bin/env lua5.1 +require 'ngcp.utils' require 'ngcp.xavp' -- class NGCPUserPrefs @@ -30,34 +31,36 @@ NGCPUserPrefs_MT = { __index = NGCPUserPrefs } 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) + table.add(keys, row.attribute) row = cur:fetch({}, "a") end else sr.log("dbg", string.format("no results for query:%s", query)) end - xavp = NGCPXAvp:new(level,'user',result) + NGCPUserPrefs:xavp(level,result) cur:close() con:close() return keys end + function NGCPUserPrefs:xavp(level, l) + if level ~= 'caller' and level ~= 'callee' then + error(string.format("unknown level:%s. It has to be [caller|callee]", tostring(level))) + end + return NGCPXAvp:new(level,'usr_prefs', l) + end + function NGCPUserPrefs:clean(vtype) - local xavp if not vtype then - sr.pv.unset("$xavp(user)") - elseif vtype == 'callee' then - xavp = NGCPXAvp:new('callee','user',{}) - xavp:clean() - elseif vtype == 'caller' then - xavp = NGCPXAvp:new('caller','user',{}) - xavp:clean() + NGCPUserPrefs:xavp('callee'):clean() + NGCPUserPrefs:xavp('caller'):clean() + else + NGCPUserPrefs:xavp(vtype):clean() end end -- class diff --git a/ngcp/xavp.lua b/ngcp/xavp.lua index aad8b18..3f7e961 100644 --- a/ngcp/xavp.lua +++ b/ngcp/xavp.lua @@ -1,4 +1,5 @@ #!/usr/bin/env lua5.1 +require 'ngcp.utils' -- class NGCPXAvp NGCPXAvp = { @@ -13,15 +14,17 @@ NGCPXAvp_MT = { if not key then error("key is empty") end - local id = string.format("$xavp(%s[%d]=>%s)", t.group, t.level, key) + local id = string.format("$xavp(%s[0]=>%s)", t.name, key) --print(string.format("id:%s", id)) if not value then return sr.pv.get(id) elseif type(value) == "number" then table.add(t.keys, key) + sr.log("info", string.format("seti: [%s]:%d", id, value)) sr.pv.seti(id, value) elseif type(value) == "string" then table.add(t.keys, key) + sr.log("info", string.format("sets: [%s]:%s", id, value)) sr.pv.sets(id, value) else error("value is not a number or string") @@ -36,20 +39,16 @@ NGCPXAvp_MT = { error("unknown level. It has to be [caller|callee]") end if not l then - error("list empty") + l = {} end local t = { group = group, + level = level, + name = level .. '_' .. group, keys = {} } - if level == 'callee' then - t.level = 1 - else - t.level = 0 - end - NGCPXAvp._create(t, t.level,group,l) - + NGCPXAvp._create(t, l) return t end @@ -61,6 +60,9 @@ NGCPXAvp_MT = { end if vtype == 0 then sr.log("dbg",string.format("sr.pv.sets->%s:%s", id, value)) + if type(value) == 'number' then + value = tostring(value) + end sr.pv.sets(id, value) elseif vtype == 1 then if type(value) == "string" then @@ -76,44 +78,28 @@ NGCPXAvp_MT = { if type(check) == 'table' then check = table.tostring(check) end - --sr.log("info", string.format("%s:%s", id, check)) else + --error(string.format("%s:nil", id)) sr.log("err", string.format("%s:nil", id)) end end end - function NGCPXAvp:_create(level, group, l) + function NGCPXAvp:_create(l) local i - local name_callee = string.format("$xavp(%s[1]=>dummy)", group) - local name_caller = string.format("$xavp(%s[0]=>dummy)", group) - local name = string.format("$xavp(%s=>dummy)", group) - if not sr.pv.get(name_callee) then - if not sr.pv.get(name_caller) then - -- create dummy vars - NGCPXAvp._setvalue(name, 0, "callee") -- callee -> [0] - NGCPXAvp._setvalue(name, 0, "caller") -- caller -> [0]; calle -> [1] - else - -- caller [0] ok - NGCPXAvp._setvalue(name_callee, 0, "callee") - end - else - if not sr.pv.get(name_caller) then - -- callee [1] ok - NGCPXAvp._setvalue(name_caller, 0, "caller") - end + local name = string.format("$xavp(%s=>dummy)", self.name) + if not sr.pv.get(name) then + NGCPXAvp._setvalue(name, 0, self.level) end for i=1,#l do - name = string.format("$xavp(%s[%d]=>%s)", group, level, l[i].attribute) + name = string.format("$xavp(%s[0]=>%s)", self.name, l[i].attribute) table.add(self.keys, l[i].attribute) NGCPXAvp._setvalue(name, l[i].type, l[i].value) end end function NGCPXAvp:clean() - local levels = {"caller", "callee"} - sr.pv.unset(string.format("$xavp(%s[%d])", self.group, self.level)) - sr.pv.sets(string.format("$xavp(%s[%d]=>dummy)", self.group, self.level), levels[self.level+1]) + sr.pv.unset(string.format("$xavp(%s)", self.name)) end -- class --EOF \ No newline at end of file diff --git a/run_tests.sh b/run_tests.sh index 5e1a5d0..bafe9d6 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -3,7 +3,7 @@ mkdir -p reports rm -rf reports/* -for f in tests/*.lua; do +for f in tests/test_*.lua; do NAME=$(basename ${f} .lua) lua5.1 ${f} > reports/${NAME}.tap done diff --git a/tests/mocks.lua b/tests/mocks.lua index b5642d8..47ca54a 100644 --- a/tests/mocks.lua +++ b/tests/mocks.lua @@ -330,9 +330,4 @@ TestSRMock = {} assertEquals(self.sr.pv.get("$avp(s:hithere)"), 1) assertEquals(self.sr.pv.get("$(avp(s:hithere)[*])"), {1}) end ----- Control test output: -lu = LuaUnit -lu:setOutputType( "TAP" ) -lu:setVerbosity( 1 ) -lu:run() --EOF \ No newline at end of file diff --git a/tests/ngcp.lua b/tests/ngcp.lua index 2cd9cfc..4a0d229 100644 --- a/tests/ngcp.lua +++ b/tests/ngcp.lua @@ -26,6 +26,18 @@ TestNGCP = {} --class self.ngcp = NGCP:new() end + function TestNGCP:tearDown() + sr.pv.unset("$xavp(caller_dom_prefs)") + sr.pv.unset("$xavp(callee_dom_prefs)") + sr.pv.unset("$xavp(caller_peer_prefs)") + sr.pv.unset("$xavp(callee_peer_prefs)") + sr.pv.unset("$xavp(caller_usr_prefs)") + sr.pv.unset("$xavp(callee_usr_prefs)") + sr.pv.unset("$xavp(caller_real_prefs)") + sr.pv.unset("$xavp(callee_real_prefs)") + sr.log("info", "---cleaned---") + end + function TestNGCP:test_config() assertTrue(self.ngcp.config) end @@ -47,73 +59,67 @@ TestNGCP = {} --class assertTrue(self.ngcp) assertTrue(self.ngcp.prefs) assertTrue(self.ngcp.prefs.peer) - assertTrue(self.ngcp.prefs.user) - assertTrue(self.ngcp.prefs.domain) + assertTrue(self.ngcp.prefs.usr) + assertTrue(self.ngcp.prefs.dom) assertTrue(self.ngcp.prefs.real) end function TestNGCP:test_clean() - local xavp = NGCPXAvp:new('callee','user',{}) + local xavp = NGCPXAvp:new('callee','usr_prefs') xavp("testid",1) xavp("foo","foo") - assertEquals(sr.pv.get("$xavp(user[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(user[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(user[0]=>dummy)"),"caller") + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>foo)"),"foo") + assertFalse(sr.pv.get("$xavp(caller_usr_prefs=>dummy)")) self.ngcp:clean() - assertFalse(sr.pv.get("$xavp(user[0]=>dummy)")) - assertFalse(sr.pv.get("$xavp(user[1]=>dummy)")) + assertFalse(sr.pv.get("$xavp(caller_usr_prefs=>dummy)")) + assertFalse(sr.pv.get("$xavp(callee_usr_prefs=>dummy)")) assertFalse(sr.pv.get("$xavp(user)")) end function TestNGCP:test_callee_clean() - local callee_xavp = NGCPXAvp:new('callee','domain',{}) + local callee_xavp = NGCPDomainPrefs:xavp('callee') + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>dummy)"),"callee") callee_xavp("testid",1) + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>testid)"),1) callee_xavp("foo","foo") - local caller_xavp = NGCPXAvp:new('caller','domain',{}) + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>foo)"),"foo") + local caller_xavp = NGCPDomainPrefs:xavp('caller') caller_xavp("other",1) + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>other)"),1) caller_xavp("otherfoo","foo") - assertEquals(sr.pv.get("$xavp(domain[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(domain[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(domain[0]=>dummy)"),"caller") - assertEquals(sr.pv.get("$xavp(domain[0]=>other)"),1) - assertEquals(sr.pv.get("$xavp(domain[0]=>otherfoo)"),"foo") - assertEquals(sr.pv.get("$xavp(domain[1]=>dummy)"),"callee") + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>otherfoo)"),"foo") + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>dummy)"),"callee") self.ngcp:clean('callee') - assertEquals(sr.pv.get("$xavp(domain[0]=>dummy)"),'caller') - assertFalse(sr.pv.get("$xavp(domain[1]=>testid)")) - assertFalse(sr.pv.get("$xavp(domain[1]=>foo)")) - assertEquals(sr.pv.get("$xavp(domain[0]=>other)"),1) - assertEquals(sr.pv.get("$xavp(domain[0]=>otherfoo)"),"foo") - assertEquals(sr.pv.get("$xavp(domain[1]=>dummy)"),"callee") + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>dummy)"),'caller') + assertFalse(sr.pv.get("$xavp(callee_dom_prefs=>testid)")) + assertFalse(sr.pv.get("$xavp(callee_dom_prefs=>foo)")) + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>other)"),1) + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>otherfoo)"),"foo") + assertFalse(sr.pv.get("$xavp(callee_dom_prefs=>dummy)")) end function TestNGCP:test_caller_clean() - local callee_xavp = NGCPXAvp:new('callee','peer',{}) + local callee_xavp = NGCPXAvp:new('callee','peer_prefs') callee_xavp("testid",1) callee_xavp("foo","foo") - local caller_xavp = NGCPXAvp:new('caller','peer',{}) + local caller_xavp = NGCPXAvp:new('caller','peer_prefs') caller_xavp("other",1) caller_xavp("otherfoo","foo") - assertEquals(sr.pv.get("$xavp(peer[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(peer[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(peer[0]=>dummy)"),"caller") - assertEquals(sr.pv.get("$xavp(peer[0]=>other)"),1) - assertEquals(sr.pv.get("$xavp(peer[0]=>otherfoo)"),"foo") - assertEquals(sr.pv.get("$xavp(peer[1]=>dummy)"),"callee") + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>foo)"),"foo") + assertEquals(sr.pv.get("$xavp(caller_peer_prefs=>dummy)"),"caller") + assertEquals(sr.pv.get("$xavp(caller_peer_prefs=>other)"),1) + assertEquals(sr.pv.get("$xavp(caller_peer_prefs=>otherfoo)"),"foo") + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>dummy)"),"callee") self.ngcp:clean('caller') - assertEquals(sr.pv.get("$xavp(peer[0]=>dummy)"),'caller') - assertFalse(sr.pv.get("$xavp(peer[0]=>other)")) - assertFalse(sr.pv.get("$xavp(peer[0]=>otherfoo)")) - assertEquals(sr.pv.get("$xavp(peer[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(peer[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(peer[1]=>dummy)"),"callee") + assertFalse(sr.pv.get("$xavp(caller_peer_prefs=>dummy)")) + assertFalse(sr.pv.get("$xavp(caller_peer_prefs=>other)")) + assertFalse(sr.pv.get("$xavp(caller_peer_prefs=>otherfoo)")) + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>foo)"),"foo") + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>dummy)"),"callee") end -- class TestNGCP - ----- Control test output: -lu = LuaUnit -lu:setOutputType( "TAP" ) -lu:setVerbosity( 1 ) -lu:run() --EOF \ No newline at end of file diff --git a/tests/ngcp_avp.lua b/tests/ngcp_avp.lua index 7efca84..8080396 100644 --- a/tests/ngcp_avp.lua +++ b/tests/ngcp_avp.lua @@ -54,10 +54,4 @@ TestNGCPAvp = {} --class assertFalse(self.avp()) end -- class TestNGCPAvp - ----- Control test output: -lu = LuaUnit -lu:setOutputType( "TAP" ) -lu:setVerbosity( 1 ) -lu:run() --EOF \ No newline at end of file diff --git a/tests/ngcp_dp.lua b/tests/ngcp_dp.lua index c59e782..66c0d27 100644 --- a/tests/ngcp_dp.lua +++ b/tests/ngcp_dp.lua @@ -1,10 +1,15 @@ #!/usr/bin/env lua5.1 require('luaunit') -require 'mocks.sr' require 'ngcp.utils' require 'tests_v.dp_vars' - -sr = srMock:new() +require('lemock') + +if not sr then + require 'mocks.sr' + sr = srMock:new() +else + argv = {} +end local mc = nil DPFetch = { @@ -49,7 +54,15 @@ TestNGCPDomainPrefs = {} --class end function TestNGCPDomainPrefs:tearDown() - sr.pv.vars = {} + sr.pv.unset("$xavp(caller_dom_prefs)") + sr.pv.unset("$xavp(callee_dom_prefs)") + sr.pv.unset("$xavp(caller_peer_prefs)") + sr.pv.unset("$xavp(callee_peer_prefs)") + sr.pv.unset("$xavp(caller_usr_prefs)") + sr.pv.unset("$xavp(callee_usr_prefs)") + sr.pv.unset("$xavp(caller_real_prefs)") + sr.pv.unset("$xavp(callee_real_prefs)") + sr.log("info", "---cleaned---") end function TestNGCPDomainPrefs:test_init() @@ -71,8 +84,8 @@ TestNGCPDomainPrefs = {} --class local keys = self.d:caller_load("192.168.51.56") mc:verify() - assertEquals(sr.pv.get("$xavp(domain[0]=>sst_enable)"),"no") - assertEquals(sr.pv.get("$xavp(domain[0]=>sst_refresh_method)"), "UPDATE_FALLBACK_INVITE") + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>sst_enable)"),"no") + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>sst_refresh_method)"), "UPDATE_FALLBACK_INVITE") assertItemsEquals(keys, {"sst_enable", "sst_refresh_method"}) end @@ -90,72 +103,66 @@ TestNGCPDomainPrefs = {} --class local keys = self.d:callee_load("192.168.51.56") mc:verify() - assertEquals(sr.pv.get("$xavp(domain[1]=>sst_enable)"),"no") - assertEquals(sr.pv.get("$xavp(domain[1]=>sst_refresh_method)"), "UPDATE_FALLBACK_INVITE") + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>sst_enable)"),"no") + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>sst_refresh_method)"), "UPDATE_FALLBACK_INVITE") assertItemsEquals(keys, {"sst_enable", "sst_refresh_method"}) end function TestNGCPDomainPrefs:test_clean() - local xavp = NGCPXAvp:new('callee','domain',{}) + local xavp = NGCPDomainPrefs:xavp('callee') xavp("testid",1) xavp("foo","foo") - assertEquals(sr.pv.get("$xavp(domain[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(domain[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(domain[0]=>dummy)"),"caller") + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>foo)"),"foo") + assertFalse(sr.pv.get("$xavp(caller_dom_prefs=>dummy)")) self.d:clean() - assertFalse(sr.pv.get("$xavp(domain[0]=>dummy)")) - assertFalse(sr.pv.get("$xavp(domain[1]=>dummy)")) + assertFalse(sr.pv.get("$xavp(caller_dom_prefs=>dummy)")) + assertFalse(sr.pv.get("$xavp(callee_dom_prefs=>dummy)")) assertFalse(sr.pv.get("$xavp(domain)")) end function TestNGCPDomainPrefs:test_callee_clean() - local callee_xavp = NGCPXAvp:new('callee','domain',{}) + local callee_xavp = NGCPDomainPrefs:xavp('callee') callee_xavp("testid",1) callee_xavp("foo","foo") - local caller_xavp = NGCPXAvp:new('caller','domain',{}) + local caller_xavp = NGCPDomainPrefs:xavp('caller') caller_xavp("other",1) caller_xavp("otherfoo","foo") - assertEquals(sr.pv.get("$xavp(domain[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(domain[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(domain[0]=>dummy)"),"caller") - assertEquals(sr.pv.get("$xavp(domain[0]=>other)"),1) - assertEquals(sr.pv.get("$xavp(domain[0]=>otherfoo)"),"foo") - assertEquals(sr.pv.get("$xavp(domain[1]=>dummy)"),"callee") + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>foo)"),"foo") + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>dummy)"),"caller") + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>other)"),1) + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>otherfoo)"),"foo") + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>dummy)"),"callee") self.d:clean('callee') - assertEquals(sr.pv.get("$xavp(domain[0]=>dummy)"),'caller') - assertFalse(sr.pv.get("$xavp(domain[1]=>testid)")) - assertFalse(sr.pv.get("$xavp(domain[1]=>foo)")) - assertEquals(sr.pv.get("$xavp(domain[0]=>other)"),1) - assertEquals(sr.pv.get("$xavp(domain[0]=>otherfoo)"),"foo") - assertEquals(sr.pv.get("$xavp(domain[1]=>dummy)"),"callee") + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>dummy)"),'caller') + assertFalse(sr.pv.get("$xavp(callee_dom_prefs=>testid)")) + assertFalse(sr.pv.get("$xavp(callee_dom_prefs=>foo)")) + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>other)"),1) + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>otherfoo)"),"foo") + assertFalse(sr.pv.get("$xavp(callee_dom_prefs=>dummy)")) end function TestNGCPDomainPrefs:test_caller_clean() - local callee_xavp = NGCPXAvp:new('callee','domain',{}) + local callee_xavp = NGCPDomainPrefs:xavp('callee') callee_xavp("testid",1) callee_xavp("foo","foo") - local caller_xavp = NGCPXAvp:new('caller','domain',{}) + local caller_xavp = NGCPDomainPrefs:xavp('caller') caller_xavp("other",1) caller_xavp("otherfoo","foo") - assertEquals(sr.pv.get("$xavp(domain[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(domain[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(domain[0]=>dummy)"),"caller") - assertEquals(sr.pv.get("$xavp(domain[0]=>other)"),1) - assertEquals(sr.pv.get("$xavp(domain[0]=>otherfoo)"),"foo") - assertEquals(sr.pv.get("$xavp(domain[1]=>dummy)"),"callee") + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>foo)"),"foo") + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>dummy)"),"caller") + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>other)"),1) + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>otherfoo)"),"foo") + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>dummy)"),"callee") self.d:clean('caller') - assertEquals(sr.pv.get("$xavp(domain[0]=>dummy)"),'caller') - assertFalse(sr.pv.get("$xavp(domain[0]=>other)")) - assertFalse(sr.pv.get("$xavp(domain[0]=>otherfoo)")) - assertEquals(sr.pv.get("$xavp(domain[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(domain[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(domain[1]=>dummy)"),"callee") + assertFalse(sr.pv.get("$xavp(caller_dom_prefs=>dummy)")) + assertFalse(sr.pv.get("$xavp(caller_dom_prefs=>other)")) + assertFalse(sr.pv.get("$xavp(caller_dom_prefs=>otherfoo)")) + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>foo)"),"foo") + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>dummy)"),"callee") end -- class TestNGCPDomainPrefs - ----- Control test output: -lu = LuaUnit -lu:setOutputType( "TAP" ) -lu:setVerbosity( 1 ) -lu:run() --EOF \ No newline at end of file diff --git a/tests/ngcp_pp.lua b/tests/ngcp_pp.lua index 1d734ea..ce60b26 100644 --- a/tests/ngcp_pp.lua +++ b/tests/ngcp_pp.lua @@ -1,10 +1,15 @@ #!/usr/bin/env lua5.1 require('luaunit') -require 'mocks.sr' require 'ngcp.utils' require 'tests_v.pp_vars' - -sr = srMock:new() +require('lemock') + +if not sr then + require 'mocks.sr' + sr = srMock:new() +else + argv = {} +end local mc = nil PPFetch = { @@ -49,7 +54,15 @@ TestNGCPPeerPrefs = {} --class end function TestNGCPPeerPrefs:tearDown() - sr.pv.vars = {} + sr.pv.unset("$xavp(caller_dom_prefs)") + sr.pv.unset("$xavp(callee_dom_prefs)") + sr.pv.unset("$xavp(caller_peer_prefs)") + sr.pv.unset("$xavp(callee_peer_prefs)") + sr.pv.unset("$xavp(caller_usr_prefs)") + sr.pv.unset("$xavp(callee_usr_prefs)") + sr.pv.unset("$xavp(caller_real_prefs)") + sr.pv.unset("$xavp(callee_real_prefs)") + sr.log("info", "---cleaned---") end function TestNGCPPeerPrefs:test_init() @@ -68,16 +81,12 @@ TestNGCPPeerPrefs = {} --class self.con:close() mc:replay() - self.d:caller_load("2") + local keys = self.d:caller_load("2") mc:verify() - assertTrue(self.d.xavp) - assertEquals(self.d.xavp("sst_enable"),"no") - assertEquals(sr.pv.get("$xavp(peer[0]=>dummy)"), "caller") - assertEquals(self.d.xavp("dummy"),"caller") - assertEquals(sr.pv.get("$xavp(peer[0]=>sst_enable)"),"no") - assertEquals(sr.pv.get("$xavp(peer[0]=>sst_refresh_method)"), "UPDATE_FALLBACK_INVITE") - assertIsNil(self.d.xavp("error_key")) + assertEquals(sr.pv.get("$xavp(caller_peer_prefs=>dummy)"), "caller") + assertEquals(sr.pv.get("$xavp(caller_peer_prefs=>sst_enable)"),"no") + assertEquals(sr.pv.get("$xavp(caller_peer_prefs=>sst_refresh_method)"), "UPDATE_FALLBACK_INVITE") end function TestNGCPPeerPrefs:test_callee_load() @@ -91,79 +100,70 @@ TestNGCPPeerPrefs = {} --class self.con:close() mc:replay() - self.d:callee_load("2") + local keys = self.d:callee_load("2") mc:verify() - assertTrue(self.d.xavp) - assertEquals(self.d.xavp("sst_enable"),"no") - --print(table.tostring(sr.pv.vars)) - assertEquals(sr.pv.get("$xavp(peer[1]=>dummy)"), "callee") - assertEquals(sr.pv.get("$xavp(peer[1]=>sst_enable)"),"no") - assertEquals(sr.pv.get("$xavp(peer[1]=>sst_refresh_method)"), "UPDATE_FALLBACK_INVITE") - assertIsNil(self.d.xavp("error_key")) + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>dummy)"), "callee") + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>sst_enable)"),"no") + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>sst_refresh_method)"), "UPDATE_FALLBACK_INVITE") end function TestNGCPPeerPrefs:test_clean() - local xavp = NGCPXAvp:new('callee','peer',{}) + local xavp = NGCPPeerPrefs:xavp('callee') xavp("testid",1) xavp("foo","foo") - assertEquals(sr.pv.get("$xavp(peer[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(peer[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(peer[0]=>dummy)"),"caller") + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>foo)"),"foo") + assertFalse(sr.pv.get("$xavp(caller_peer_prefs=>dummy)")) + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>dummy)"),"callee") self.d:clean() - assertFalse(sr.pv.get("$xavp(peer[0]=>dummy)")) - assertFalse(sr.pv.get("$xavp(peer[1]=>dummy)")) + assertFalse(sr.pv.get("$xavp(caller_peer_prefs=>dummy)")) + assertFalse(sr.pv.get("$xavp(callee_peer_prefs=>dummy)")) assertFalse(sr.pv.get("$xavp(peer)")) end function TestNGCPPeerPrefs:test_callee_clean() - local callee_xavp = NGCPXAvp:new('callee','peer',{}) + local callee_xavp = NGCPPeerPrefs:xavp('callee') callee_xavp("testid",1) callee_xavp("foo","foo") - local caller_xavp = NGCPXAvp:new('caller','peer',{}) + local caller_xavp = NGCPPeerPrefs:xavp('caller') caller_xavp("other",1) caller_xavp("otherfoo","foo") - assertEquals(sr.pv.get("$xavp(peer[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(peer[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(peer[0]=>dummy)"),"caller") - assertEquals(sr.pv.get("$xavp(peer[0]=>other)"),1) - assertEquals(sr.pv.get("$xavp(peer[0]=>otherfoo)"),"foo") - assertEquals(sr.pv.get("$xavp(peer[1]=>dummy)"),"callee") + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>foo)"),"foo") + assertEquals(sr.pv.get("$xavp(caller_peer_prefs=>dummy)"),"caller") + assertEquals(sr.pv.get("$xavp(caller_peer_prefs=>other)"),1) + assertEquals(sr.pv.get("$xavp(caller_peer_prefs=>otherfoo)"),"foo") + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>dummy)"),"callee") self.d:clean('callee') - assertEquals(sr.pv.get("$xavp(peer[0]=>dummy)"),'caller') - assertFalse(sr.pv.get("$xavp(peer[1]=>testid)")) - assertFalse(sr.pv.get("$xavp(peer[1]=>foo)")) - assertEquals(sr.pv.get("$xavp(peer[0]=>other)"),1) - assertEquals(sr.pv.get("$xavp(peer[0]=>otherfoo)"),"foo") - assertEquals(sr.pv.get("$xavp(peer[1]=>dummy)"),"callee") + assertEquals(sr.pv.get("$xavp(caller_peer_prefs=>dummy)"),'caller') + assertFalse(sr.pv.get("$xavp(callee_peer_prefs=>testid)")) + assertFalse(sr.pv.get("$xavp(callee_peer_prefs=>foo)")) + assertEquals(sr.pv.get("$xavp(caller_peer_prefs=>other)"),1) + assertEquals(sr.pv.get("$xavp(caller_peer_prefs=>otherfoo)"),"foo") + assertFalse(sr.pv.get("$xavp(callee_peer_prefs=>dummy)")) end function TestNGCPPeerPrefs:test_caller_clean() - local callee_xavp = NGCPXAvp:new('callee','peer',{}) + local callee_xavp = NGCPPeerPrefs:xavp('callee') callee_xavp("testid",1) callee_xavp("foo","foo") - local caller_xavp = NGCPXAvp:new('caller','peer',{}) + local caller_xavp = NGCPPeerPrefs:xavp('caller') caller_xavp("other",1) caller_xavp("otherfoo","foo") - assertEquals(sr.pv.get("$xavp(peer[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(peer[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(peer[0]=>dummy)"),"caller") - assertEquals(sr.pv.get("$xavp(peer[0]=>other)"),1) - assertEquals(sr.pv.get("$xavp(peer[0]=>otherfoo)"),"foo") - assertEquals(sr.pv.get("$xavp(peer[1]=>dummy)"),"callee") + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>foo)"),"foo") + assertEquals(sr.pv.get("$xavp(caller_peer_prefs=>dummy)"),"caller") + assertEquals(sr.pv.get("$xavp(caller_peer_prefs=>other)"),1) + assertEquals(sr.pv.get("$xavp(caller_peer_prefs=>otherfoo)"),"foo") + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>dummy)"),"callee") self.d:clean('caller') - assertEquals(sr.pv.get("$xavp(peer[0]=>dummy)"),'caller') - assertFalse(sr.pv.get("$xavp(peer[0]=>other)")) - assertFalse(sr.pv.get("$xavp(peer[0]=>otherfoo)")) - assertEquals(sr.pv.get("$xavp(peer[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(peer[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(peer[1]=>dummy)"),"callee") + assertFalse(sr.pv.get("$xavp(caller_peer_prefs=>dummy)")) + assertFalse(sr.pv.get("$xavp(caller_peer_prefs=>other)")) + assertFalse(sr.pv.get("$xavp(caller_peer_prefs=>otherfoo)")) + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>foo)"),"foo") + assertEquals(sr.pv.get("$xavp(callee_peer_prefs=>dummy)"),"callee") end -- class TestNGCPPeerPrefs - ----- Control test output: -lu = LuaUnit -lu:setOutputType( "TAP" ) -lu:setVerbosity( 1 ) -lu:run() --EOF \ No newline at end of file diff --git a/tests/ngcp_rp.lua b/tests/ngcp_rp.lua index 67e964e..c84fb3a 100644 --- a/tests/ngcp_rp.lua +++ b/tests/ngcp_rp.lua @@ -4,12 +4,12 @@ require 'ngcp.utils' require 'ngcp.rp' require 'tests_v.dp_vars' require 'tests_v.up_vars' +require 'lemock' if not sr then require 'mocks.sr' sr = srMock:new() else - require 'lemock' argv = {} end local mc = nil @@ -46,20 +46,28 @@ TestNGCPRealPrefs = {} --class end function TestNGCPRealPrefs:tearDown() - sr.pv.vars = {} + sr.pv.unset("$xavp(caller_dom_prefs)") + sr.pv.unset("$xavp(callee_dom_prefs)") + sr.pv.unset("$xavp(caller_peer_prefs)") + sr.pv.unset("$xavp(callee_peer_prefs)") + sr.pv.unset("$xavp(caller_usr_prefs)") + sr.pv.unset("$xavp(callee_usr_prefs)") + sr.pv.unset("$xavp(caller_real_prefs)") + sr.pv.unset("$xavp(callee_real_prefs)") + sr.log("info", "---cleaned---") end function TestNGCPRealPrefs:test_caller_load() local keys = {"uno"} local xavp = { - domain = NGCPXAvp:new("caller", "domain", {}), - user = NGCPXAvp:new("caller", "user", {}), - real = NGCPXAvp:new("caller", "real", {}) + domain = NGCPDomainPrefs:xavp("caller"), + user = NGCPUserPrefs:xavp("caller"), + real = NGCPRealPrefs:xavp("caller") } xavp.domain("uno",1) - assertEquals(sr.pv.get("$xavp(domain[0]=>uno)"),1) + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>uno)"),1) xavp.user("uno",2) - assertEquals(sr.pv.get("$xavp(user[0]=>uno)"),2) + assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>uno)"),2) local real_keys = self.real:caller_load(keys) assertEquals(real_keys, keys) assertEquals(xavp.real("uno"),2) @@ -68,14 +76,14 @@ TestNGCPRealPrefs = {} --class function TestNGCPRealPrefs:test_caller_load1() local keys = {"uno", "dos"} local xavp = { - domain = NGCPXAvp:new("caller", "domain", {}), - user = NGCPXAvp:new("caller", "user", {}), - real = NGCPXAvp:new("caller", "real", {}) + domain = NGCPDomainPrefs:xavp("caller"), + user = NGCPUserPrefs:xavp("caller"), + real = NGCPRealPrefs:xavp("caller") } xavp.domain("uno",1) - assertEquals(sr.pv.get("$xavp(domain[0]=>uno)"),1) + assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>uno)"),1) xavp.user("dos",2) - assertEquals(sr.pv.get("$xavp(user[0]=>dos)"),2) + assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>dos)"),2) local real_keys = self.real:caller_load(keys) assertEquals(real_keys, keys) assertEquals(xavp.real("uno"),1) @@ -85,14 +93,14 @@ TestNGCPRealPrefs = {} --class function TestNGCPRealPrefs:test_callee_load() local keys = {"uno"} local xavp = { - domain = NGCPXAvp:new("callee", "domain", {}), - user = NGCPXAvp:new("callee", "user", {}), - real = NGCPXAvp:new("callee", "real", {}) + domain = NGCPDomainPrefs:xavp("callee"), + user = NGCPUserPrefs:xavp("callee"), + real = NGCPRealPrefs:xavp("callee") } xavp.domain("uno",1) - assertEquals(sr.pv.get("$xavp(domain[1]=>uno)"),1) + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>uno)"),1) xavp.user("uno",2) - assertEquals(sr.pv.get("$xavp(user[1]=>uno)"),2) + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>uno)"),2) local real_keys = self.real:callee_load(keys) assertEquals(real_keys, keys) assertEquals(xavp.real("uno"),2) @@ -101,81 +109,103 @@ TestNGCPRealPrefs = {} --class function TestNGCPRealPrefs:test_callee_load1() local keys = {"uno", "dos"} local xavp = { - domain = NGCPXAvp:new("callee", "domain", {}), - user = NGCPXAvp:new("callee", "user", {}), - real = NGCPXAvp:new("callee", "real", {}) + domain = NGCPDomainPrefs:xavp("callee"), + user = NGCPUserPrefs:xavp("callee"), + real = NGCPRealPrefs:xavp("callee") } xavp.domain("uno",1) - assertEquals(sr.pv.get("$xavp(domain[1]=>uno)"),1) + assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>uno)"),1) xavp.user("dos",2) - assertEquals(sr.pv.get("$xavp(user[1]=>dos)"),2) + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>dos)"),2) local real_keys = self.real:callee_load(keys) assertEquals(real_keys, keys) assertEquals(xavp.real("uno"),1) assertEquals(xavp.real("dos"),2) end + function TestNGCPRealPrefs:test_set() + assertFalse(sr.pv.get("$xavp(callee_real_prefs=>dummy)")) + assertFalse(sr.pv.get("$xavp(callee_real_prefs)")) + assertFalse(sr.pv.get("$xavp(callee_real_prefs=>testid)")) + assertFalse(sr.pv.get("$xavp(callee_real_prefs=>foo)")) + + local callee_xavp = NGCPRealPrefs:xavp("callee") + assertEquals(sr.pv.get("$xavp(callee_real_prefs=>dummy)"),'callee') + + callee_xavp("testid", 1) + assertEquals(sr.pv.get("$xavp(callee_real_prefs=>testid)"), 1) + callee_xavp("foo","foo") + assertEquals(sr.pv.get("$xavp(callee_real_prefs=>foo)"),"foo") + end + function TestNGCPRealPrefs:test_clean() - local xavp = NGCPXAvp:new('callee','real',{}) - xavp("testid",1) - xavp("foo","foo") - assertEquals(sr.pv.get("$xavp(real[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(real[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(real[0]=>dummy)"),"caller") + local callee_xavp = NGCPRealPrefs:xavp("callee") + assertEquals(sr.pv.get("$xavp(callee_real_prefs=>dummy)"),'callee') + + callee_xavp("testid",1) + assertEquals(sr.pv.get("$xavp(callee_real_prefs=>testid)"),1) + callee_xavp("foo","foo") + assertEquals(sr.pv.get("$xavp(callee_real_prefs=>foo)"),"foo") + assertFalse(sr.pv.get("$xavp(caller_real_prefs=>dummy)")) + self.real:clean() - assertFalse(sr.pv.get("$xavp(real[0]=>dummy)")) - assertFalse(sr.pv.get("$xavp(real[1]=>dummy)")) - assertFalse(sr.pv.get("$xavp(real)")) + + assertFalse(sr.pv.get("$xavp(caller_real_prefs=>dummy)")) + assertFalse(sr.pv.get("$xavp(callee_real_prefs=>dummy)")) end function TestNGCPRealPrefs:test_callee_clean() - local callee_xavp = NGCPXAvp:new('callee','real',{}) + local callee_xavp = NGCPRealPrefs:xavp("callee") + local caller_xavp = NGCPRealPrefs:xavp("caller") + callee_xavp("testid",1) callee_xavp("foo","foo") - local caller_xavp = NGCPXAvp:new('caller','real',{}) + caller_xavp("other",1) caller_xavp("otherfoo","foo") - assertEquals(sr.pv.get("$xavp(real[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(real[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(real[0]=>dummy)"),"caller") - assertEquals(sr.pv.get("$xavp(real[0]=>other)"),1) - assertEquals(sr.pv.get("$xavp(real[0]=>otherfoo)"),"foo") - assertEquals(sr.pv.get("$xavp(real[1]=>dummy)"),"callee") + + assertEquals(sr.pv.get("$xavp(callee_real_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_real_prefs=>foo)"),"foo") + assertEquals(sr.pv.get("$xavp(caller_real_prefs=>dummy)"),"caller") + assertEquals(sr.pv.get("$xavp(caller_real_prefs=>other)"),1) + assertEquals(sr.pv.get("$xavp(caller_real_prefs=>otherfoo)"),"foo") + assertEquals(sr.pv.get("$xavp(callee_real_prefs=>dummy)"),"callee") + self.real:clean('callee') - assertEquals(sr.pv.get("$xavp(real[0]=>dummy)"),'caller') - assertFalse(sr.pv.get("$xavp(real[1]=>testid)")) - assertFalse(sr.pv.get("$xavp(real[1]=>foo)")) - assertEquals(sr.pv.get("$xavp(real[0]=>other)"),1) - assertEquals(sr.pv.get("$xavp(real[0]=>otherfoo)"),"foo") - assertEquals(sr.pv.get("$xavp(real[1]=>dummy)"),"callee") + + assertEquals(sr.pv.get("$xavp(caller_real_prefs=>dummy)"),'caller') + assertFalse(sr.pv.get("$xavp(callee_real_prefs=>testid)")) + assertFalse(sr.pv.get("$xavp(callee_real_prefs=>foo)")) + assertEquals(sr.pv.get("$xavp(caller_real_prefs=>other)"),1) + assertEquals(sr.pv.get("$xavp(caller_real_prefs=>otherfoo)"),"foo") + assertFalse(sr.pv.get("$xavp(callee_real_prefs=>dummy)")) end function TestNGCPRealPrefs:test_caller_clean() - local callee_xavp = NGCPXAvp:new('callee','real',{}) + local callee_xavp = NGCPRealPrefs:xavp("callee") + local caller_xavp = NGCPRealPrefs:xavp("caller") + callee_xavp("testid",1) callee_xavp("foo","foo") - local caller_xavp = NGCPXAvp:new('caller','real',{}) + caller_xavp("other",1) caller_xavp("otherfoo","foo") - assertEquals(sr.pv.get("$xavp(real[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(real[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(real[0]=>dummy)"),"caller") - assertEquals(sr.pv.get("$xavp(real[0]=>other)"),1) - assertEquals(sr.pv.get("$xavp(real[0]=>otherfoo)"),"foo") - assertEquals(sr.pv.get("$xavp(real[1]=>dummy)"),"callee") + + assertEquals(sr.pv.get("$xavp(callee_real_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_real_prefs=>foo)"),"foo") + assertEquals(sr.pv.get("$xavp(caller_real_prefs=>dummy)"),"caller") + assertEquals(sr.pv.get("$xavp(caller_real_prefs=>other)"),1) + assertEquals(sr.pv.get("$xavp(caller_real_prefs=>otherfoo)"),"foo") + assertEquals(sr.pv.get("$xavp(callee_real_prefs=>dummy)"),"callee") + self.real:clean('caller') - assertEquals(sr.pv.get("$xavp(real[0]=>dummy)"),'caller') - assertFalse(sr.pv.get("$xavp(real[0]=>other)")) - assertFalse(sr.pv.get("$xavp(real[0]=>otherfoo)")) - assertEquals(sr.pv.get("$xavp(real[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(real[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(real[1]=>dummy)"),"callee") + + assertFalse(sr.pv.get("$xavp(caller_real_prefs=>dummy)")) + assertFalse(sr.pv.get("$xavp(caller_real_prefs=>other)")) + assertFalse(sr.pv.get("$xavp(caller_real_prefs=>otherfoo)")) + assertEquals(sr.pv.get("$xavp(callee_real_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_real_prefs=>foo)"),"foo") + assertEquals(sr.pv.get("$xavp(callee_real_prefs=>dummy)"),"callee") end -- class TestNGCPRealPrefs - ----- Control test output: -lu = LuaUnit -lu:setOutputType( "TAP" ) -lu:setVerbosity( 1 ) -lu:run() --EOF \ No newline at end of file diff --git a/tests/ngcp_up.lua b/tests/ngcp_up.lua index 9ac8bf9..7dd27de 100644 --- a/tests/ngcp_up.lua +++ b/tests/ngcp_up.lua @@ -1,10 +1,15 @@ #!/usr/bin/env lua5.1 require('luaunit') -require 'mocks.sr' require 'ngcp.utils' require 'tests_v.up_vars' - -sr = srMock:new() +require('lemock') + +if not sr then + require 'mocks.sr' + sr = srMock:new() +else + argv = {} +end local mc = nil UPFetch = { @@ -49,7 +54,15 @@ TestNGCPUserPrefs = {} --class end function TestNGCPUserPrefs:tearDown() - sr.pv.vars = {} + sr.pv.unset("$xavp(caller_dom_prefs)") + sr.pv.unset("$xavp(callee_dom_prefs)") + sr.pv.unset("$xavp(caller_peer_prefs)") + sr.pv.unset("$xavp(callee_peer_prefs)") + sr.pv.unset("$xavp(caller_usr_prefs)") + sr.pv.unset("$xavp(callee_usr_prefs)") + sr.pv.unset("$xavp(caller_real_prefs)") + sr.pv.unset("$xavp(callee_real_prefs)") + sr.log("info", "---cleaned---") end function TestNGCPUserPrefs:test_init() @@ -73,10 +86,10 @@ TestNGCPUserPrefs = {} --class local keys = self.d:caller_load("ae736f72-21d1-4ea6-a3ea-4d7f56b3887c") mc:verify() - assertEquals(sr.pv.get("$xavp(user[0]=>account_id)"),2) - assertEquals(sr.pv.get("$xavp(user[0]=>cli)"),"4311001") - assertEquals(sr.pv.get("$xavp(user[0]=>cc)"),"43") - assertEquals(sr.pv.get("$xavp(user[0]=>ac)"),"1") + assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>account_id)"),2) + assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>cli)"),"4311001") + assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>cc)"),"43") + assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>ac)"),"1") assertItemsEquals(keys, {"account_id", "cli", "cc", "ac"}) end @@ -96,74 +109,67 @@ TestNGCPUserPrefs = {} --class local keys = self.d:callee_load("ae736f72-21d1-4ea6-a3ea-4d7f56b3887c") mc:verify() - assertEquals(sr.pv.get("$xavp(user[1]=>account_id)"),2) - assertEquals(sr.pv.get("$xavp(user[1]=>cli)"),"4311001") - assertEquals(sr.pv.get("$xavp(user[1]=>cc)"),"43") - assertEquals(sr.pv.get("$xavp(user[1]=>ac)"),"1") + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>account_id)"),2) + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>cli)"),"4311001") + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>cc)"),"43") + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>ac)"),"1") assertItemsEquals(keys, {"account_id", "cli", "cc", "ac"}) end function TestNGCPUserPrefs:test_clean() - local xavp = NGCPXAvp:new('callee','user',{}) + local xavp = NGCPUserPrefs:xavp('callee') xavp("testid",1) xavp("foo","foo") - assertEquals(sr.pv.get("$xavp(user[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(user[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(user[0]=>dummy)"),"caller") + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>foo)"),"foo") + assertFalse(sr.pv.get("$xavp(caller_usr_prefs=>dummy)"),"caller") self.d:clean() - assertFalse(sr.pv.get("$xavp(user[0]=>dummy)")) - assertFalse(sr.pv.get("$xavp(user[1]=>dummy)")) - assertFalse(sr.pv.get("$xavp(user)")) + assertFalse(sr.pv.get("$xavp(caller_usr_prefs)")) + assertFalse(sr.pv.get("$xavp(callee_usr_prefs)")) end function TestNGCPUserPrefs:test_callee_clean() - local callee_xavp = NGCPXAvp:new('callee','user',{}) + local callee_xavp = NGCPUserPrefs:xavp('callee') callee_xavp("testid",1) callee_xavp("foo","foo") - local caller_xavp = NGCPXAvp:new('caller','user',{}) + local caller_xavp = NGCPUserPrefs:xavp('caller') caller_xavp("other",1) caller_xavp("otherfoo","foo") - assertEquals(sr.pv.get("$xavp(user[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(user[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(user[0]=>dummy)"),"caller") - assertEquals(sr.pv.get("$xavp(user[0]=>other)"),1) - assertEquals(sr.pv.get("$xavp(user[0]=>otherfoo)"),"foo") - assertEquals(sr.pv.get("$xavp(user[1]=>dummy)"),"callee") + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>foo)"),"foo") + assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>dummy)"),"caller") + assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>other)"),1) + assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>otherfoo)"),"foo") + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>dummy)"),"callee") self.d:clean('callee') - assertEquals(sr.pv.get("$xavp(user[0]=>dummy)"),'caller') - assertFalse(sr.pv.get("$xavp(user[1]=>testid)")) - assertFalse(sr.pv.get("$xavp(user[1]=>foo)")) - assertEquals(sr.pv.get("$xavp(user[0]=>other)"),1) - assertEquals(sr.pv.get("$xavp(user[0]=>otherfoo)"),"foo") - assertEquals(sr.pv.get("$xavp(user[1]=>dummy)"),"callee") + assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>dummy)"),'caller') + assertFalse(sr.pv.get("$xavp(callee_usr_prefs=>testid)")) + assertFalse(sr.pv.get("$xavp(callee_usr_prefs=>foo)")) + assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>other)"),1) + assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>otherfoo)"),"foo") + assertFalse(sr.pv.get("$xavp(callee_usr_prefs=>dummy)")) end function TestNGCPUserPrefs:test_caller_clean() - local callee_xavp = NGCPXAvp:new('callee','user',{}) + local callee_xavp = NGCPUserPrefs:xavp('callee') callee_xavp("testid",1) callee_xavp("foo","foo") - local caller_xavp = NGCPXAvp:new('caller','user',{}) + local caller_xavp = NGCPUserPrefs:xavp('caller') caller_xavp("other",1) caller_xavp("otherfoo","foo") - assertEquals(sr.pv.get("$xavp(user[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(user[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(user[0]=>dummy)"),"caller") - assertEquals(sr.pv.get("$xavp(user[0]=>other)"),1) - assertEquals(sr.pv.get("$xavp(user[0]=>otherfoo)"),"foo") - assertEquals(sr.pv.get("$xavp(user[1]=>dummy)"),"callee") + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>foo)"),"foo") + assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>dummy)"),"caller") + assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>other)"),1) + assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>otherfoo)"),"foo") + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>dummy)"),"callee") self.d:clean('caller') - assertEquals(sr.pv.get("$xavp(user[0]=>dummy)"),'caller') - assertFalse(sr.pv.get("$xavp(user[0]=>other)")) - assertFalse(sr.pv.get("$xavp(user[0]=>otherfoo)")) - assertEquals(sr.pv.get("$xavp(user[1]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(user[1]=>foo)"),"foo") - assertEquals(sr.pv.get("$xavp(user[1]=>dummy)"),"callee") + assertFalse(sr.pv.get("$xavp(caller_usr_prefs=>dummy)")) + assertFalse(sr.pv.get("$xavp(caller_usr_prefs=>other)")) + assertFalse(sr.pv.get("$xavp(caller_usr_prefs=>otherfoo)")) + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>testid)"),1) + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>foo)"),"foo") + assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>dummy)"),"callee") end -- class TestNGCPUserPrefs - ----- Control test output: -lu = LuaUnit -lu:setOutputType( "TAP" ) -lu:setVerbosity( 1 ) -lu:run() --EOF \ No newline at end of file diff --git a/tests/ngcp_xavp.lua b/tests/ngcp_xavp.lua index 4b64fc5..af036e5 100644 --- a/tests/ngcp_xavp.lua +++ b/tests/ngcp_xavp.lua @@ -1,9 +1,14 @@ #!/usr/bin/env lua5.1 require('luaunit') -require 'mocks.sr' require 'ngcp.xavp' -sr = srMock:new() +if not sr then + require 'mocks.sr' + sr = srMock:new() +else + argv = {} +end + vals = { { id = 1, @@ -37,60 +42,73 @@ vals = { } } TestNGCPXAvp = {} --class - function TestNGCPXAvp:setUp() - self.xavp = NGCPXAvp:new("caller", "peer", vals) - end - - function TestNGCPXAvp:tearDown() - sr.pv.vars = {} + function TestNGCPXAvp:test_create() + local xavp = NGCPXAvp:new("caller", "peer", {}) + assertEquals(sr.pv.get("$xavp(caller_peer=>dummy)"),"caller") + xavp = NGCPXAvp:new("callee", "peer", {}) + assertEquals(sr.pv.get("$xavp(callee_peer=>dummy)"),"callee") end function TestNGCPXAvp:test_xavp_id() - assertEquals(self.xavp.level, 0) - assertEquals(self.xavp.group, "peer") + local xavp = NGCPXAvp:new("caller", "peer", vals) + assertEquals(xavp.level, "caller") + assertEquals(xavp.group, "peer") + assertEquals(xavp.name, "caller_peer") + assertItemsEquals(xavp.keys, {"account_id","whatever","elsewhere"}) end function TestNGCPXAvp:test_xavp_get() - sr.pv.sets("$xavp(peer[0]=>testid)", "value") - assertEquals(self.xavp("testid"), "value") - sr.pv.sets("$xavp(peer[0]=>testid)", "1") - assertItemsEquals(self.xavp("testid"), "1") + xavp = NGCPXAvp:new("caller", "peer", vals) + sr.pv.sets("$xavp(caller_peer=>testid)", "value") + assertEquals(xavp("testid"), "value") + sr.pv.sets("$xavp(caller_peer=>testid)", "1") + assertItemsEquals(xavp("testid"), "1") end function TestNGCPXAvp:test_xavp_set() + local xavp = NGCPXAvp:new("caller", "peer", vals) local vals = {1,"2",3,nil} for i=1,#vals do - self.xavp("testid",vals[i]) - assertEquals(self.xavp("testid"), vals[i]) - assertEquals(sr.pv.get("$xavp(peer[0]=>testid)"),vals[i]) + xavp("testid",vals[i]) + assertEquals(xavp("testid"), vals[i]) + assertEquals(sr.pv.get("$xavp(caller_peer=>testid)"),vals[i]) end end function TestNGCPXAvp:test_clean() - self.xavp("testid", 1) - assertEquals(sr.pv.get("$xavp(peer[0]=>testid)"),1) - assertEquals(sr.pv.get("$xavp(peer[0]=>dummy)"),"caller") - assertEquals(sr.pv.get("$xavp(peer[1]=>dummy)"),"callee") - self.xavp:clean() - assertFalse(self.xavp("testid")) - assertFalse(sr.pv.get("$xavp(peer[0]=>testid)")) - assertEquals(sr.pv.get("$xavp(peer[0]=>dummy)"),"caller") - assertEquals(sr.pv.get("$xavp(peer[1]=>dummy)"),"callee") + xavp = NGCPXAvp:new("caller", "peer", vals) + xavp("testid", 1) + assertEquals(sr.pv.get("$xavp(caller_peer=>testid)"),1) + assertEquals(sr.pv.get("$xavp(caller_peer=>dummy)"),"caller") + xavp:clean() + assertFalse(xavp("testid")) + assertFalse(sr.pv.get("$xavp(caller_peer=>testid)")) + assertFalse(sr.pv.get("$xavp(caller_peer)")) + end + + function TestNGCPXAvp:test_clean_all() + local xavp_caller = NGCPXAvp:new("caller", "peer", {}) + assertEquals(sr.pv.get("$xavp(caller_peer=>dummy)"),"caller") + local xavp_callee = NGCPXAvp:new("callee", "peer", {}) + assertEquals(sr.pv.get("$xavp(callee_peer=>dummy)"),"callee") + + xavp_caller:clean() + assertFalse(sr.pv.get("$xavp(caller_peer=>dummy)")) + assertEquals(sr.pv.get("$xavp(callee_peer=>dummy)"),"callee") + + xavp_callee:clean() + assertFalse(sr.pv.get("$xavp(callee_peer=>dummy)")) + assertFalse(sr.pv.get("$xavp(caller_peer=>dummy)")) end + function TestNGCPXAvp:test_keys() - assertItemsEquals(self.xavp.keys, {"account_id","whatever","elsewhere"}) - self.xavp("testid", 1) - assertItemsEquals(self.xavp.keys, {"account_id","whatever","elsewhere","testid"}) - self.xavp:clean() - assertItemsEquals(self.xavp.keys, {"account_id","whatever","elsewhere","testid"}) + local xavp = NGCPXAvp:new("caller", "peer", vals) + xavp("testid", 1) + assertItemsEquals(xavp.keys, {"account_id","whatever","elsewhere","testid"}) + xavp:clean() + assertItemsEquals(xavp.keys, {"account_id","whatever","elsewhere","testid"}) end -- class TestNGCPXAvp - ----- Control test output: -lu = LuaUnit -lu:setOutputType( "TAP" ) -lu:setVerbosity( 1 ) -lu:run() --EOF \ No newline at end of file diff --git a/tests/test_all.lua b/tests/test_all.lua new file mode 100644 index 0000000..e581696 --- /dev/null +++ b/tests/test_all.lua @@ -0,0 +1,13 @@ +require 'tests.utils' +require 'tests.mocks' +require 'tests.ngcp_xavp' +require 'tests.ngcp_dp' +require 'tests.ngcp_up' +require 'tests.ngcp_pp' +require 'tests.ngcp_rp' +require 'tests.ngcp' +---- Control test output: +lu = LuaUnit +lu:setOutputType( "TAP" ) +lu:setVerbosity( 1 ) +lu:run() \ No newline at end of file diff --git a/tests/test_kamailio.lua b/tests/test_kamailio.lua new file mode 100644 index 0000000..266fa34 --- /dev/null +++ b/tests/test_kamailio.lua @@ -0,0 +1,11 @@ +require 'tests.utils' +require 'tests.ngcp_xavp' +require 'tests.ngcp_dp' +require 'tests.ngcp_up' +require 'tests.ngcp_pp' +require 'tests.ngcp_rp' +---- Control test output: +lu = LuaUnit +lu:setOutputType( "TAP" ) +lu:setVerbosity( 1 ) +lu:run() \ No newline at end of file diff --git a/tests/utils.lua b/tests/utils.lua index 2c10c71..b14d66d 100644 --- a/tests/utils.lua +++ b/tests/utils.lua @@ -1,6 +1,5 @@ #!/usr/bin/env lua5.1 require('luaunit') -require 'mocks.sr' require 'ngcp.utils' TestUtils = {} --class @@ -109,9 +108,4 @@ TestStack = {} assertEquals(tostring(s), "{2,1}") end -- class TestStack ----- Control test output: -lu = LuaUnit -lu:setOutputType( "TAP" ) -lu:setVerbosity( 1 ) -lu:run() --EOF \ No newline at end of file