spec/util_serialization_spec.lua
author Kim Alvefur <zash@zash.se>
Sun, 23 Sep 2018 16:30:35 +0200
changeset 9345 83e4596c2824
child 9346 e767da06399d
permissions -rw-r--r--
util.serialization: Add brief initial tests
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9345
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     1
local serialization = require "util.serialization";
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
local envload = require "util.envload";
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     3
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
describe("util.serialization", function ()
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
	describe("serialize", function ()
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     6
		it("makes a string", function ()
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
			assert.is_string(serialization.serialize({}));
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     8
			assert.is_string(serialization.serialize(nil));
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     9
			assert.is_string(serialization.serialize(1));
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
			assert.is_string(serialization.serialize(true));
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
			assert.is_string(serialization.serialize(function () end));
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
		end);
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    13
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
		it("roundtrips", function ()
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    15
			local function test(data)
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    16
				local serialized = serialization.serialize(data);
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    17
				assert.is_string(serialized);
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    18
				local chunk, err = envload.envload("return ("..serialized..");");
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    19
				assert.is_function(chunk, err);
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    20
				assert.same(data, chunk());
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    21
			end
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    22
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    23
			test({});
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    24
			test({hello="world"});
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    25
			test("foobar")
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    26
			test("\0\1\2\3");
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    27
			test("nödåtgärd");
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    28
			test({1,2,3,4});
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    29
			test({foo={[100]={{"bar"},{baz=1}}}});
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    30
		end);
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    31
	end);
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    32
end);
83e4596c2824 util.serialization: Add brief initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    33