diff --git a/ngcp/avp.lua b/ngcp/avp.lua index 6bfaca9..04ebade 100644 --- a/ngcp/avp.lua +++ b/ngcp/avp.lua @@ -1,5 +1,3 @@ -#!/usr/bin/env lua5.1 - -- class NGCPAvp NGCPAvp = { __class__ = 'NGCPAvp' diff --git a/ngcp/pref.lua b/ngcp/pref.lua index a49c6f8..e6fbbca 100644 --- a/ngcp/pref.lua +++ b/ngcp/pref.lua @@ -1,4 +1,4 @@ -#!/usr/bin/env lua5.1 +require 'ngcp.avp' require 'ngcp.xavp' -- class NGCPPrefs @@ -15,5 +15,22 @@ NGCPPrefs_MT = { __index = NGCPPrefs } 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 \ No newline at end of file diff --git a/tests/ngcp_pref.lua b/tests/ngcp_pref.lua new file mode 100644 index 0000000..8b2ac56 --- /dev/null +++ b/tests/ngcp_pref.lua @@ -0,0 +1,26 @@ +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 \ No newline at end of file diff --git a/tests/test_all.lua b/tests/test_all.lua index e581696..b43bdb7 100644 --- a/tests/test_all.lua +++ b/tests/test_all.lua @@ -1,6 +1,8 @@ require 'tests.utils' require 'tests.mocks' +require 'tests.ngcp_avp' require 'tests.ngcp_xavp' +require 'tests.ngcp_pref' require 'tests.ngcp_dp' require 'tests.ngcp_up' require 'tests.ngcp_pp' diff --git a/tests/test_kamailio.lua b/tests/test_kamailio.lua index 266fa34..017c5a7 100644 --- a/tests/test_kamailio.lua +++ b/tests/test_kamailio.lua @@ -1,5 +1,7 @@ require 'tests.utils' +require 'tests.ngcp_avp' require 'tests.ngcp_xavp' +require 'tests.ngcp_pref' require 'tests.ngcp_dp' require 'tests.ngcp_up' require 'tests.ngcp_pp'