Annotate

tests/test_util_multitable.lua @ 8706:e2919978673e

net.http: Fix parameter order to http request callbacks Commit e3b9dc9dd940 changed the parameter order in 2013, but did not update the names of the parameters in the callback function. Due to this inconsistency, 12df41a5a4b1 accidentally reversed the order when fixing the variable names without fixing where they are used. Additionally the documentation was incorrect (since 2013), and this has also now been fixed.
author Matthew Wild <mwild1@gmail.com>
date Wed, 04 Apr 2018 18:27:44 +0100
parent 7511:ef6505962351
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1523
841d61be198f Remove version number from copyright headers
Matthew Wild <mwild1@gmail.com>
parents: 896
diff changeset
1 -- Prosody IM
2923
b7049746bd29 Update copyright headers for 2010
Matthew Wild <mwild1@gmail.com>
parents: 1523
diff changeset
2 -- Copyright (C) 2008-2010 Matthew Wild
b7049746bd29 Update copyright headers for 2010
Matthew Wild <mwild1@gmail.com>
parents: 1523
diff changeset
3 -- Copyright (C) 2008-2010 Waqas Hussain
5776
bd0ff8ae98a8 Remove all trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 3540
diff changeset
4 --
797
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 -- This project is MIT/X11 licensed. Please see the
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 -- COPYING file in the source package for more information.
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 --
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 function new(new, multitable)
7472
8965ad0aed2c test_util_multitable: make mt variable local [luacheck]
Anton Shestakov <av6@dwimlabs.net>
parents: 5776
diff changeset
11 local mt = new();
797
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 assert_table(mt, "Multitable is a table");
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 assert_function(mt.add, "Multitable has method add");
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 assert_function(mt.get, "Multitable has method get");
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 assert_function(mt.remove, "Multitable has method remove");
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 get(mt.get, multitable);
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 end
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 function get(get, multitable)
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 local function has_items(list, ...)
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 local should_have = {};
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 if select('#', ...) > 0 then
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 assert_table(list, "has_items: list is table", 3);
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 else
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 assert_is_not(list and #list > 0, "No items, and no list");
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 return true, "has-all";
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 end
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 for n=1,select('#', ...) do should_have[select(n, ...)] = true; end
7511
ef6505962351 test_util_multitable: remove unused one-letter loop variable [luacheck]
Anton Shestakov <av6@dwimlabs.net>
parents: 7472
diff changeset
30 for _, item in ipairs(list) do
797
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 if not should_have[item] then return false, "too-many"; end
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 should_have[item] = nil;
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 end
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34 if next(should_have) then
3540
bc139431830b Monster whitespace commit (beware the whitespace monster).
Waqas Hussain <waqas20@gmail.com>
parents: 2923
diff changeset
35 return false, "not-enough";
797
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 end
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37 return true, "has-all";
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
38 end
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
39 local function assert_has_all(message, list, ...)
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
40 return assert_equal(select(2, has_items(list, ...)), "has-all", message or "List has all expected items, and no more", 2);
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
41 end
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
42
7472
8965ad0aed2c test_util_multitable: make mt variable local [luacheck]
Anton Shestakov <av6@dwimlabs.net>
parents: 5776
diff changeset
43 local mt = multitable.new();
5776
bd0ff8ae98a8 Remove all trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 3540
diff changeset
44
797
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
45 local trigger1, trigger2, trigger3 = {}, {}, {};
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46 local item1, item2, item3 = {}, {}, {};
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
47
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
48 assert_has_all("Has no items with trigger1", mt:get(trigger1));
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
49
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
50
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
51 mt:add(1, 2, 3, item1);
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
52
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
53 assert_has_all("Has item1 for 1, 2, 3", mt:get(1, 2, 3), item1);
5776
bd0ff8ae98a8 Remove all trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 3540
diff changeset
54
797
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
55 -- Doesn't support nil
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
56 --[[ mt:add(nil, item1);
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
57 mt:add(nil, item2);
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
58 mt:add(nil, item3);
5776
bd0ff8ae98a8 Remove all trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 3540
diff changeset
59
797
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
60 assert_has_all("Has all items with (nil)", mt:get(nil), item1, item2, item3);
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
61 ]]
6ea01e05b004 Add tests for util.multitable
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
62 end