summaryrefslogtreecommitdiff
path: root/test/test-supple.request.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/test-supple.request.lua')
-rw-r--r--test/test-supple.request.lua66
1 files changed, 66 insertions, 0 deletions
diff --git a/test/test-supple.request.lua b/test/test-supple.request.lua
index 5413cd8..6ed5f5b 100644
--- a/test/test-supple.request.lua
+++ b/test/test-supple.request.lua
@@ -12,6 +12,7 @@
local luacov = require 'luacov'
local request = require 'supple.request'
+local objects = require 'supple.objects'
local testnames = {}
@@ -34,7 +35,72 @@ function suite.serialise_error()
local err = request.error("m","tb")
assert(err == [[error=true,message="m",traceback="tb"]],
"Error did not serialise properly")
+end
+
+function suite.serialise_request_simple()
+ local req = request.request("TAG", "METH", "arg1", true)
+ local tab = assert(loadstring("return {" .. req .. "}"))()
+ assert(tab.object == "TAG", "object tag not passed")
+ assert(tab.method == "METH", "method name not passed")
+ assert(tab.args.n == 2, "argument count not passed")
+ assert(tab.args[1] == "arg1", "arg1 not passed")
+ assert(tab.args[2] == true, "arg2 not passed")
+end
+
+function suite.serialise_request_simple_table()
+ local argtab = {}
+ local req = request.request("TAG", "METH", argtab)
+ local tab = assert(loadstring("return {" .. req .. "}"))()
+ assert(tab.object == "TAG", "object tag not passed")
+ assert(tab.method == "METH", "method name not passed")
+ assert(tab.args.n == 1, "argument count not passed")
+ -- Best check that the received arg unwraps nicely
+ assert(objects.receive(tab.args[1]) == argtab, "arg did not unwrap")
+end
+
+function suite.serialise_request_table_with_index()
+ local argtab = setmetatable({}, { __index = {} })
+ local req = request.request("TAG", "METH", argtab)
+ local tab = assert(loadstring("return {" .. req .. "}"))()
+ assert(tab.object == "TAG", "object tag not passed")
+ assert(tab.method == "METH", "method name not passed")
+ assert(tab.args.n == 1, "argument count not passed")
+ assert(tab.args[1].methods[1] == "__index", "metamethod didn't pass")
+ -- Best check that the received arg unwraps nicely
+ assert(objects.receive(tab.args[1]) == argtab, "arg did not unwrap")
+end
+
+function suite.serialise_response_simple()
+ local req = request.response("foo",12)
+ local tab = assert(loadstring("return {" .. req .. "}"))()
+ assert(tab.error == false, "error wasn't false")
+ assert(type(tab.results) == "table", "results were missing")
+ assert(tab.results.n == 2, "Result count not passed")
+ assert(tab.results[1] == "foo", "result 1 not passed")
+ assert(tab.results[2] == 12, "result 2 not passed")
+end
+
+function suite.serialise_response_table()
+ local argtab = {}
+ local req = request.response(argtab)
+ local tab = assert(loadstring("return {" .. req .. "}"))()
+ assert(tab.error == false, "error wasn't false")
+ assert(type(tab.results) == "table", "results were missing")
+ assert(tab.results.n == 1, "Result count not passed")
+ assert(type(tab.results[1]) == "table", "result 1 not passed")
+ assert(objects.receive(tab.results[1]) == argtab,
+ "arg did not unwrap")
+end
+function suite.deserialise()
+ local argtab = {}
+ local req = request.response(argtab)
+ local tab = request.deserialise(req)
+ assert(tab.error == false, "error wasn't false")
+ assert(type(tab.results) == "table", "results were missing")
+ assert(tab.results.n == 1, "Result count not passed")
+ assert(type(tab.results[1]) == "table", "result 1 not passed")
+ assert(tab.results[1] == argtab, "arg did not unwrap")
end
local count_ok = 0