Remove creation of avps. Fix default creation.

ngcp3.0
Victor Seva 12 years ago
parent 6888a74fcf
commit 0abf856f7d

@ -41,11 +41,25 @@ NGCPDomainPrefs_MT.__tostring = function ()
return NGCPDomainPrefs._load(self,"callee",uuid)
end
function NGCPDomainPrefs:_get_defaults(level)
local defaults = self.config:get_defaults('dom')
local keys = {}
local k,_
if defaults then
self:xavp(level, defaults)
for k,_ in pairs(defaults) do
table.insert(keys, k)
end
end
return keys
end
function NGCPDomainPrefs:_load(level, uuid)
local con = assert (self.config:getDBConnection())
local con = self.config:getDBConnection()
local query = "SELECT * FROM " .. self.db_table .. " WHERE domain ='" .. uuid .."'"
local cur = assert (con:execute(query))
local keys = {}
local cur = con:execute(query)
local keys = self:_get_defaults(level)
local result = {}
local row = cur:fetch({}, "a")
@ -59,9 +73,10 @@ NGCPDomainPrefs_MT.__tostring = function ()
else
sr.log("dbg", string.format("no results for query:%s", query))
end
NGCPDomainPrefs:xavp(level, result)
cur:close()
con:close()
self:xavp(level, result)
return keys
end

@ -22,20 +22,24 @@ NGCPConfig_MT = { __index = NGCPConfig }
db_pass = "somepasswd",
db_database = "kamailio",
default = {
sst_enable = "yes",
sst_expires = 300,
sst_min_timer = 90,
sst_max_timer = 7200,
sst_refresh_method = "UPDATE_FALLBACK_INVITE",
outbound_from_user = "npn",
inbound_upn = "from_user",
inbound_npn = "from_user",
inbound_uprn = "from_user",
ip_header = "P-NGCP-Src-Ip",
account_id = 0,
ext_subscriber_id = "",
ext_contract_id = "",
ringtimeout = 180,
all = {
sst_enable = "yes",
sst_expires = 300,
sst_min_timer = 90,
sst_max_timer = 7200,
sst_refresh_method = "UPDATE_FALLBACK_INVITE",
outbound_from_user = "npn",
inbound_upn = "from_user",
inbound_npn = "from_user",
inbound_uprn = "from_user",
ip_header = "P-NGCP-Src-Ip",
},
real = {
account_id = 0,
ext_subscriber_id = "",
ext_contract_id = "",
ringtimeout = 180,
}
}
}
setmetatable( t, NGCPConfig_MT )
@ -45,8 +49,24 @@ NGCPConfig_MT = { __index = NGCPConfig }
function NGCPConfig:getDBConnection()
local env = assert (luasql.mysql())
sr.log("dbg","connecting to mysql")
return assert (env:connect( self.db_database,
self.db_username, self.db_pass, self.db_host, self.db_port))
return env:connect( self.db_database,
self.db_username, self.db_pass, self.db_host, self.db_port)
end
function NGCPConfig:get_defaults(vtype)
local k,v
local defs = table.deepcopy(self.default.all)
if (vtype == 'dom' or vtype == 'usr') then
vtype = 'real'
end
if self.default.vtype then
for k,v in pairs(default.vtype) do
defs[k] = v
end
end
return defs
end
-- class
@ -81,82 +101,22 @@ end
peer = NGCPPeerPrefs:new(t.config),
real = NGCPRealPrefs:new(),
}
t.vars = {
caller_peer_load = {
caller_peer_prefs = {
}
},
callee_peer_load = {
callee_peer_prefs = {
}
},
caller_usr_load = {
caller_usr_prefs = {
},
caller_real_prefs = {
}
},
callee_usr_load = {
callee_usr_prefs = {
},
callee_real_prefs = {
}
}
}
return t
end
function NGCP:_set_vars(indx)
local _,k,v, default, xvap, var
for k,var in pairs(self.vars[indx]) do
for _,v in pairs(var) do
if not v[3] then
default = self.config.default[v[2]]
else
default = v[3]
end
if v[2] then
xavp = k .. "=>" .. v[2]
else
xavp = nil
end
NGCPPrefs.set_avp(v[1], xavp, default)
end
end
end
-- value 0 is like null?
-- if 0 => use dom pref if not 0
function NGCP._set_dom_priority(var, xavp, pref)
local avp = NGCPAvp:new(var)
local value
if avp() == 0 then
value = xavp(pref)
if not value and value ~= 0 then
avp:clean()
avp(value)
end
end
end
function NGCP:caller_peer_load(peer)
local _,v, default, xvap
local _,v, xvap
local keys = self.prefs.peer:caller_load(peer)
local vars = self.vars.caller_peer_load
self.prefs.real:caller_peer_load(keys)
self:_set_vars("caller_peer_load")
return keys
end
function NGCP:callee_peer_load(peer)
local _,v, default, xvap
local _,v, xvap
local keys = self.prefs.peer:callee_load(peer)
local vars = self.vars.callee_peer_load
self.prefs.real:callee_peer_load(keys)
self:_set_vars("callee_peer_load")
return keys
end
@ -172,15 +132,8 @@ end
table.add(unique_keys, v)
end
self.prefs.real:caller_usr_load(unique_keys)
self:_set_vars("caller_usr_load")
local xavp = NGCPXAvp:new('caller', 'dom')
-- if 0 => use dom pref if not 0
NGCP._set_dom_priority("caller_concurrent_max", xavp, "concurrent_max")
NGCP._set_dom_priority("caller_concurrent_max_out", xavp, "concurrent_max_out")
NGCP._set_dom_priority("caller_concurrent_max_per_account", xavp, "concurrent_max_per_account")
NGCP._set_dom_priority("caller_concurrent_max_per_account_out", xavp, "concurrent_max_per_account_out")
return unique_keys
end
@ -196,11 +149,6 @@ end
table.add(unique_keys, v)
end
self.prefs.real:callee_usr_load(unique_keys)
self:_set_vars("callee_usr_load")
-- if 0 => use dom pref if not 0
NGCP._set_dom_priority("callee_concurrent_max", xavp, "concurrent_max")
NGCP._set_dom_priority("callee_concurrent_max_per_account", xavp, "concurrent_max_per_account")
return unique_keys
end
@ -235,81 +183,15 @@ end
end
end
function NGCP:_str_var(vtype, group)
local _, v, var, vars_index, avp
local output = "{"
vars_index = vtype .. "_" .. group .. "_load"
if self.vars[vars_index] then
for _,v in pairs(self.vars[vars_index]) do
for _,var in pairs(v) do
avp = NGCPAvp:new(var[1])
output = output .. tostring(avp) .. ","
end
end
end
output = output .. "}\n"
return output
end
function NGCP:log_var(level, vtype, group)
local vtypes, groups
local _,vt,gr
if not level then
level = "dbg"
end
if not vtype then
vtypes = {"caller", "callee"}
else
vtypes = { vtype }
end
if not group then
groups = { "peer", "usr"}
else
groups = { group }
end
for _,vt in pairs(vtypes) do
for _,gr in pairs(groups) do
sr.log(level, self:_str_var(vt, gr))
end
end
end
function NGCP:clean_vars(vtype, group)
local _, v, var, vars_index, avp
vars_index = vtype .. "_" .. group .. "_load"
if self.vars[vars_index] then
for _,v in pairs(self.vars[vars_index]) do
for _,var in pairs(v) do
avp = NGCPAvp:new(var[1])
avp:clean()
end
end
end
end
function NGCP:clean(vtype, group)
local _,k,v
if not group then
for k,v in pairs(self.prefs) do
v:clean(vtype)
if not vtype then
self:clean_vars('caller', k)
self:clean_vars('callee', k)
else
self:clean_vars(vtype, k)
end
end
else
if self.prefs[group] then
self.prefs[group]:clean(vtype)
if not vtype then
self:clean_vars('caller', group)
self:clean_vars('callee', group)
else
self:clean_vars(vtype, group)
end
else
error(string.format("unknown group:%s", group))
end

@ -43,11 +43,25 @@ NGCPPeerPrefs_MT.__tostring = function ()
end
end
function NGCPPeerPrefs:_get_defaults(level)
local defaults = self.config:get_defaults('peer')
local keys = {}
local k,_
if defaults then
self:xavp(level, defaults)
for k,_ in pairs(defaults) do
table.insert(keys, k)
end
end
return keys
end
function NGCPPeerPrefs:_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 keys = self:_get_defaults(level)
local result = {}
local row = cur:fetch({}, "a")

@ -14,23 +14,5 @@ NGCPPrefs_MT = { __index = NGCPPrefs }
xavp = NGCPXAvp.init(v,group)
end
end
function NGCPPrefs.set_avp(avp_name, xavp_name, default)
local xavp
local avp = NGCPAvp:new(avp_name)
if xavp_name then
xavp = sr.pv.get("$xavp(" .. xavp_name .. ")")
else
avp:clean()
return
end
if default and not xavp then
avp(default)
else
avp(xavp)
end
end
-- class
--EOF

@ -41,11 +41,25 @@ NGCPUserPrefs_MT.__tostring = function ()
return NGCPUserPrefs._load(self,"callee",uuid)
end
function NGCPUserPrefs:_get_defaults(level)
local defaults = self.config:get_defaults('usr')
local keys = {}
local k,_
if defaults then
self:xavp(level, defaults)
for k,_ in pairs(defaults) do
table.insert(keys, k)
end
end
return keys
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 keys = self:_get_defaults(level)
local result = {}
local row = cur:fetch({}, "a")
@ -59,7 +73,7 @@ NGCPUserPrefs_MT.__tostring = function ()
else
sr.log("dbg", string.format("no results for query:%s", query))
end
NGCPUserPrefs:xavp(level,result)
self:xavp(level,result)
cur:close()
con:close()
return keys

@ -18,7 +18,6 @@ local mc,env
TestNGCP = {} --class
function TestNGCP:setUp()
sr.log("dbg", "TestNGCP:setUp")
mc = lemock.controller()
env = mc:mock()
self.con = mc:mock()
@ -41,7 +40,6 @@ TestNGCP = {} --class
end
function TestNGCP:tearDown()
sr.log("dbg", "TestNGCP:tearDown")
sr.pv.unset("$xavp(caller_dom_prefs)")
sr.pv.unset("$xavp(callee_dom_prefs)")
sr.pv.unset("$xavp(caller_peer_prefs)")
@ -55,6 +53,22 @@ TestNGCP = {} --class
function TestNGCP:test_config()
assertTrue(self.ngcp.config)
assertEquals(self.ngcp.config.default.all.sst_enable, "yes")
end
function TestNGCP:test_config_get_defaults_all()
local defaults = NGCPConfig.get_defaults(self.ngcp.config, 'peer')
assertItemsEquals(defaults, self.ngcp.config.default.all)
end
function TestNGCP:test_config_get_defaults_real()
local defaults = NGCPConfig.get_defaults(self.ngcp.config, 'usr')
local real_defaults = table.deepcopy(self.ngcp.config.default.all)
local k,v
for k,v in pairs(self.ngcp.config.default.real) do
real_defaults[k] = v
end
assertItemsEquals(defaults, real_defaults)
end
function TestNGCP:test_prefs_init()
@ -111,12 +125,9 @@ TestNGCP = {} --class
assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>dummy)"), "caller")
assertEquals(sr.pv.get("$xavp(caller_real_prefs=>account_id)"), 2)
assertEquals(sr.pv.get("$avp(s:caller_account_id)"), 2)
assertEquals(sr.pv.get("$xavp(caller_real_prefs=>cli)"), "4311001")
assertEquals(sr.pv.get("$xavp(caller_real_prefs=>cc)"), "43")
assertEquals(sr.pv.get("$avp(s:caller_cc)"), "43")
assertEquals(sr.pv.get("$xavp(caller_real_prefs=>ac)"), "1")
assertEquals(sr.pv.get("$avp(s:caller_ac)"), "1")
assertEquals(sr.pv.get("$xavp(caller_real_prefs=>no_nat_sipping)"), "no")
end
@ -242,15 +253,7 @@ TestNGCP = {} --class
assertEquals(sr.pv.get("$avp(s:callee_cfb)"),nil)
assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>dummy)"),"caller")
assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>dummy)"),"callee")
assertFalse(sr.pv.get("$xavp(user)"))
end
function TestNGCP:test_clean_vars()
local avp = NGCPAvp:new('caller_account_id')
avp("foofighters")
assertEquals(sr.pv.get("$avp(s:caller_account_id)"),"foofighters")
self.ngcp:clean()
assertEquals(sr.pv.get("$avp(s:caller_account_id)"),nil)
assertIsNil(sr.pv.get("$xavp(user)"))
end
function TestNGCP:test_clean_caller_groups()
@ -268,24 +271,6 @@ TestNGCP = {} --class
assertError(self.ngcp.clean, self.ngcp, "caller", "whatever")
end
function TestNGCP:test_clean_caller_groups_vars()
local groups = {"peer", "usr", "dom", "real"}
local _,v
local avp = NGCPAvp:new('caller_account_id')
avp("foofighters")
assertEquals(sr.pv.get("$avp(s:caller_account_id)"),"foofighters")
for _,v in pairs(groups) do
xavp = self.ngcp.prefs[v]:xavp("caller")
xavp(string.format("test_%s", v), v)
assertEquals(sr.pv.get(string.format("$xavp(caller_%s_prefs=>test_%s)", v, v)), v)
assertEquals(sr.pv.get(string.format("$xavp(caller_%s_prefs=>dummy)", v)), "caller")
self.ngcp:clean("caller", v)
assertEquals(sr.pv.get(string.format("$xavp(caller_%s_prefs=>dummy)", v)), "caller")
end
assertEquals(sr.pv.get("$avp(s:caller_account_id)"),nil)
assertError(self.ngcp.clean, self.ngcp, "caller", "whatever")
end
function TestNGCP:test_clean_callee_groups()
local groups = {"peer", "usr", "dom", "real"}
@ -302,25 +287,6 @@ TestNGCP = {} --class
assertError(self.ngcp.clean, self.ngcp, "callee", "whatever")
end
function TestNGCP:test_clean_callee_groups_vars()
local groups = {"peer", "usr", "dom", "real"}
local _,v, xavp
local avp = NGCPAvp:new('callee_cfb')
avp("foofighters")
assertEquals(sr.pv.get("$avp(s:callee_cfb)"),"foofighters")
for _,v in pairs(groups) do
xavp = self.ngcp.prefs[v]:xavp("callee")
xavp(string.format("test_%s", v), v)
assertEquals(sr.pv.get(string.format("$xavp(callee_%s_prefs=>test_%s)", v, v)), v)
assertEquals(sr.pv.get(string.format("$xavp(callee_%s_prefs=>dummy)", v)), "callee")
self.ngcp:clean("callee", v)
assertEquals(sr.pv.get(string.format("$xavp(callee_%s_prefs=>dummy)", v)), "callee")
end
assertEquals(sr.pv.get("$avp(s:callee_cfb)"),nil)
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")
@ -336,27 +302,14 @@ TestNGCP = {} --class
assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>dummy)"),"callee")
self.ngcp:clean('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)"))
assertIsNil(sr.pv.get("$xavp(callee_dom_prefs=>testid)"))
assertIsNil(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")
assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>dummy)"), "callee")
end
function TestNGCP:test_callee_clean_2()
sr.pv.seti("$xavp(caller_usr_prefs=>force_outbound_calls_to_peer)", 1)
sr.pv.seti("$xavp(caller_real_prefs=>force_outbound_calls_to_peer)", 1)
sr.pv.seti("$avp(caller_force_outbound_calls_to_peer)", 1)
assertEquals(sr.pv.get("$avp(caller_force_outbound_calls_to_peer)"), 1)
TestNGCP:test_callee_usr_load()
self.ngcp:clean('callee', 'usr')
assertEquals(sr.pv.get("$avp(caller_force_outbound_calls_to_peer)"), 1)
end
function TestNGCP:test_caller_clean()
local avp = NGCPAvp:new('caller_force_outbound_calls_to_peer')
avp("foofighters")
assertEquals(sr.pv.get("$avp(s:caller_force_outbound_calls_to_peer)"),"foofighters")
local callee_xavp = NGCPXAvp:new('callee','peer_prefs')
callee_xavp("testid",1)
callee_xavp("foo","foo")
@ -376,123 +329,10 @@ TestNGCP = {} --class
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")
assertEquals(sr.pv.get("$avp(s:caller_force_outbound_calls_to_peer)"),nil)
end
function TestNGCP:test_caller_peer_clean_vars()
self:test_caller_peer_load()
self.ngcp:clean('caller', 'peer')
if self.ngcp.vars['caller_peer_load'] then
for _,v in pairs(self.ngcp.vars['caller_peer_load']) do
for _,var in pairs(v) do
assertEquals(sr.pv.get("$avp(s:".. var[1] .. ")"), nil)
end
end
end
end
function TestNGCP:test_callee_peer_clean_vars()
self:test_callee_peer_load()
self.ngcp:clean('callee', 'peer')
if self.ngcp.vars['callee_peer_load'] then
for _,v in pairs(self.ngcp.vars['callee_peer_load']) do
for _,var in pairs(v) do
assertEquals(sr.pv.get("$avp(s:".. var[1] .. ")"), nil)
end
end
end
end
function TestNGCP:test_caller_usr_clean_vars()
self:test_caller_usr_load()
self.ngcp:clean('caller', 'usr')
assertEquals(sr.pv.get("$avp(s:caller_account_id)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_lock)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_allowed_clis)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_user_cli)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_cc)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_ac)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_emergency_cli)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_emergency_prefix)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_emergency_suffix)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_block_out_mode)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_block_out_list)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_adm_block_out_mode)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_adm_block_out_list)"), nil)
assertEquals(sr.pv.get("$avp(s:allowed_ips_grp)"), nil)
assertEquals(sr.pv.get("$avp(s:man_allowed_ips_grp)"), nil)
assertEquals(sr.pv.get("$avp(s:ignore_allowed_ips)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_ncos_id)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_adm_ncos_id)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_dom_ncos_id)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_dom_adm_ncos_id)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_block_override)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_adm_block_override)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_peer_auth_user)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_peer_auth_pass)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_peer_auth_realm)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_ext_subscriber_id)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_ext_contract_id)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_prepaid)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_ipv46_for_rtpproxy)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_use_rtpproxy)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_force_outbound_calls_to_peer)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_concurrent_max)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_concurrent_max_out)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_concurrent_max_per_account)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_concurrent_max_out_per_account)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_sst_enable)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_sst_expires)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_sst_min_timer)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_sst_max_timer)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_sst_refresh_method)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_reject_emergency)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_inbound_upn)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_inbound_uprn)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_extension_in_npn)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_allow_out_foreign_domain)"), nil)
assertEquals(sr.pv.get("$avp(s:rewrite_caller_in_dpid)"), nil)
assertEquals(sr.pv.get("$avp(s:rewrite_caller_out_dpid)"), nil)
assertEquals(sr.pv.get("$avp(s:rewrite_callee_in_dpid)"), nil)
assertEquals(sr.pv.get("$avp(s:rewrite_callee_out_dpid)"), nil)
assertEquals(sr.pv.get("$avp(s:caller_ip_header)"), nil)
end
function TestNGCP:test_tostring()
assertEquals(tostring(self.ngcp), 'caller_usr_prefs:{dummy="caller"}\ncallee_usr_prefs:{dummy="callee"}\ncaller_real_prefs:{dummy="caller"}\ncallee_real_prefs:{dummy="callee"}\ncaller_peer_prefs:{dummy="caller"}\ncallee_peer_prefs:{dummy="callee"}\ncaller_dom_prefs:{dummy="caller"}\ncallee_dom_prefs:{dummy="callee"}\n')
end
function TestNGCP:test_log_var()
self:test_caller_usr_load()
self.ngcp:log_var()
self.ngcp:log_var(nil, nil, "peer")
self.ngcp:log_var("info", "caller")
end
function TestNGCP:test_str_var()
self:test_caller_usr_load()
assertEquals(self.ngcp:_str_var("caller", "usr"), "{$avp(s:caller_account_id):2,$avp(s:caller_cc):43,$avp(s:caller_ac):1,$avp(s:caller_emergency_cli):nil,$avp(s:caller_emergency_prefix):nil,$avp(s:caller_emergency_suffix):nil,$avp(s:caller_ext_subscriber_id):nil,$avp(s:caller_ext_contract_id):nil,$avp(s:caller_ring_group_dest):nil,$avp(s:caller_ring_group_policy):nil,$avp(s:caller_ip_header):P-NGCP-Src-Ip,}\n")
end
-- class TestNGCP
--EOF

@ -10,27 +10,30 @@ if not sr then
else
argv = {}
end
local mc = nil
local mc,env,con
TestNGCPDomainPrefs = {} --class
function TestNGCPDomainPrefs:setUp()
mc = lemock.controller()
self.config = mc:mock()
self.mysql = mc:mock()
self.env = mc:mock()
self.con = mc:mock()
env = mc:mock()
con = mc:mock()
self.cur = mc:mock()
package.loaded.luasql = nil
package.preload['luasql.mysql'] = function ()
luasql = {}
luasql.mysql = mysql
return mysql
luasql.mysql = function ()
return env
end
end
require 'ngcp.dp'
self.config = NGCPConfig:new()
self.config.getDBConnection = function ()
return con
end
self.d = NGCPDomainPrefs:new(self.config)
self.dp_vars = DPFetch:new()
end
@ -62,15 +65,25 @@ TestNGCPDomainPrefs = {} --class
assertEquals(self.d:callee_load(), {})
end
function TestNGCPDomainPrefs:get_defaults()
local keys_expected = {"sst_enable", "sst_refresh_method"}
local defaults = NGCPConfig.get_defaults(self.d.config, 'dom')
local k,_
for k,_ in pairs(defaults) do
table.add(keys_expected, k)
end
return keys_expected
end
function TestNGCPDomainPrefs:test_caller_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)
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"))
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()
con:close()
mc:replay()
local keys = self.d:caller_load("192.168.51.56")
@ -78,18 +91,17 @@ TestNGCPDomainPrefs = {} --class
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"})
assertItemsEquals(keys, TestNGCPDomainPrefs:get_defaults())
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)
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"))
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()
con:close()
mc:replay()
local keys = self.d:callee_load("192.168.51.56")
@ -97,7 +109,7 @@ TestNGCPDomainPrefs = {} --class
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"})
assertItemsEquals(keys, TestNGCPDomainPrefs:get_defaults())
end
function TestNGCPDomainPrefs:test_clean()

@ -10,26 +10,30 @@ if not sr then
else
argv = {}
end
local mc = nil
local mc,env,con
TestNGCPPeerPrefs = {} --class
function TestNGCPPeerPrefs:setUp()
mc = lemock.controller()
self.config = mc:mock()
self.mysql = mc:mock()
self.env = mc:mock()
self.con = mc:mock()
env = mc:mock()
con = mc:mock()
self.cur = mc:mock()
package.loaded.luasql = nil
package.preload['luasql.mysql'] = function ()
luasql = {}
luasql.mysql = mysql
return mysql
luasql.mysql = function ()
return env
end
end
require 'ngcp.pp'
require 'ngcp.dp'
self.config = NGCPConfig:new()
self.config.getDBConnection = function ()
return con
end
self.d = NGCPPeerPrefs:new(self.config)
self.pp_vars = PPFetch:new()
@ -52,6 +56,17 @@ TestNGCPPeerPrefs = {} --class
assertEquals(self.d.db_table, "peer_preferences")
end
function TestNGCPPeerPrefs:get_defaults()
local keys_expected = {"sst_enable", "sst_refresh_method"}
local defaults = NGCPConfig.get_defaults(self.d.config, 'peer')
local k,_
for k,_ in pairs(defaults) do
table.add(keys_expected, k)
end
return keys_expected
end
function TestNGCPPeerPrefs:test_caller_load_empty()
assertTrue(self.d.config)
assertEquals(self.d:caller_load(), {})
@ -64,13 +79,12 @@ TestNGCPPeerPrefs = {} --class
function TestNGCPPeerPrefs:test_caller_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)
con:execute("SELECT * FROM peer_preferences WHERE uuid = '2'") ;mc :returns(self.cur)
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()
con:close()
mc:replay()
local keys = self.d:caller_load("2")
@ -79,17 +93,17 @@ TestNGCPPeerPrefs = {} --class
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")
assertItemsEquals(keys, TestNGCPPeerPrefs:get_defaults())
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)
con:execute("SELECT * FROM peer_preferences WHERE uuid = '2'") ;mc :returns(self.cur)
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()
con:close()
mc:replay()
local keys = self.d:callee_load("2")
@ -98,6 +112,7 @@ TestNGCPPeerPrefs = {} --class
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")
assertItemsEquals(keys, TestNGCPPeerPrefs:get_defaults())
end
function TestNGCPPeerPrefs:test_clean()

@ -2,25 +2,5 @@ require('luaunit')
require 'ngcp.pref'
TestNGCPPrefs = {} --class
function TestNGCPPrefs:tearDown()
sr.pv.vars = {}
end
function TestNGCPPrefs:test_set_avp_empty()
sr.pv.sets("$avp(s:loquesea)", "one")
assertEquals(sr.pv.get("$avp(s:loquesea)"),"one")
NGCPPrefs.set_avp("loquesea")
assertEquals(sr.pv.get("$avp(s:loquesea)"), nil)
end
function TestNGCPPrefs:test_set_avp_val()
sr.pv.sets("$avp(s:loquesea)", "one")
sr.pv.sets("$xavp(callee_peer_prefs=>hola)", "two")
assertEquals(sr.pv.get("$avp(s:loquesea)"),"one")
assertEquals(sr.pv.get("$xavp(callee_peer_prefs[0]=>hola)"),"two")
NGCPPrefs.set_avp("loquesea", "callee_peer_prefs=>hola")
assertEquals(sr.pv.get("$avp(s:loquesea)"), "two")
end
-- class TestNGCP
--EOF

@ -10,26 +10,30 @@ if not sr then
else
argv = {}
end
local mc = nil
local mc,env,con
TestNGCPUserPrefs = {} --class
function TestNGCPUserPrefs:setUp()
mc = lemock.controller()
self.config = mc:mock()
self.mysql = mc:mock()
self.env = mc:mock()
self.con = mc:mock()
env = mc:mock()
con = mc:mock()
self.cur = mc:mock()
package.loaded.luasql = nil
package.preload['luasql.mysql'] = function ()
luasql = {}
luasql.mysql = mysql
return mysql
luasql.mysql = function ()
return env
end
end
require 'ngcp.up'
require 'ngcp.dp'
self.config = NGCPConfig:new()
self.config.getDBConnection = function ()
return con
end
self.d = NGCPUserPrefs:new(self.config)
self.up_vars = UPFetch:new()
@ -62,17 +66,27 @@ TestNGCPUserPrefs = {} --class
assertEquals(self.d.db_table, "usr_preferences")
end
function TestNGCPUserPrefs:get_defaults()
local keys_expected = {"account_id", "cli", "cc", "ac"}
local defaults = NGCPConfig.get_defaults(self.d.config, 'usr')
local k,_
for k,_ in pairs(defaults) do
table.add(keys_expected, k)
end
return keys_expected
end
function TestNGCPUserPrefs:test_caller_load()
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)
con:execute("SELECT * FROM usr_preferences WHERE uuid ='ae736f72-21d1-4ea6-a3ea-4d7f56b3887c'") ;mc :returns(self.cur)
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()
con:close()
mc:replay()
local keys = self.d:caller_load("ae736f72-21d1-4ea6-a3ea-4d7f56b3887c")
@ -82,20 +96,19 @@ TestNGCPUserPrefs = {} --class
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"})
assertItemsEquals(keys, TestNGCPUserPrefs:get_defaults())
end
function TestNGCPUserPrefs:test_callee_load()
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)
con:execute("SELECT * FROM usr_preferences WHERE uuid ='ae736f72-21d1-4ea6-a3ea-4d7f56b3887c'") ;mc :returns(self.cur)
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()
con:close()
mc:replay()
local keys = self.d:callee_load("ae736f72-21d1-4ea6-a3ea-4d7f56b3887c")
@ -105,7 +118,7 @@ TestNGCPUserPrefs = {} --class
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"})
assertItemsEquals(keys, TestNGCPUserPrefs:get_defaults())
end
function TestNGCPUserPrefs:test_clean()

Loading…
Cancel
Save