| local json = require("json") |
| local lunit = require("lunit") |
| local math = require("math") |
| local testutil = require("testutil") |
| |
| local setmetatable = setmetatable |
| |
| module("lunit-encoderfunc", lunit.testcase, package.seeall) |
| |
| local function build_call(name, parameters) |
| return json.util.buildCall(name, unpack(parameters, parameters.n)) |
| end |
| |
| function test_param_counts() |
| local encoder = json.encode.getEncoder() |
| assert(encoder(build_call('noparam', {}))) |
| assert(encoder(build_call('oneparam', {1}))) |
| assert(encoder(build_call('multiparam', {1,2}))) |
| end |
| |
| function test_output() |
| local encoder = json.encode.getEncoder() |
| assert_equal('b64("hello")', encoder(build_call('b64', {'hello'}))) |
| assert_equal('add(1,2)', encoder(build_call('add', {1,2}))) |
| assert_equal('dood([b64("hello"),add(1,2)])', |
| encoder(build_call('dood', { { |
| build_call('b64', {'hello'}), |
| build_call('add', {1,2}) |
| } }))) |
| end |