Mercurial > prosody-hg
annotate spec/util_serialization_spec.lua @ 9342:83e4596c2824
util.serialization: Add brief initial tests
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 23 Sep 2018 16:30:35 +0200 |
| parents | |
| children | e767da06399d |
| rev | line source |
|---|---|
|
9342
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 |
