spec/stanzacmp_spec.lua

Tue, 10 Jul 2018 11:08:59 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Tue, 10 Jul 2018 11:08:59 +0100
changeset 93
3f9bda0887d5
child 95
a1e7ad9336db
permissions
-rw-r--r--

Add tests for stanzacmp

93
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local stanzacmp = require "scansion.stanzacmp";
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 local verse = require "verse";
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 local st = require "util.stanza";
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 local function yes(s1, s2)
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 if not stanzacmp.stanzas_match(s1, s2) then
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 print("s1", s1)
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 print("s2", s2)
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 print("literal", tostring(s1) == tostring(s2));
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 assert(false, "No match, but they should.");
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 end
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 end
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 local function no(s1, s2)
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 if stanzacmp.stanzas_match(s1, s2) then
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 print("s1", s1)
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 print("s2", s2)
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 assert(false, "Match, but they should not.");
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 end
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 end
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 describe("stanzacmp", function ()
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 it("should work", function ()
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 local s1 = st.message({ to = "foo", from = "bar"});
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 local s2 = st.message({ to = "foo", from = "bar"});
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 yes(s1, s2);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 yes(s2, s1);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 s1.attr.to = nil;
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 yes(s1, s2);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 no(s2, s1);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 s1.attr.to = "foo";
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 yes(s1, s2);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
38 s2:tag("blah", { xmlns = "foobar" });
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
39
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
40 yes(s1, s2);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
41 no(s2, s1);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
42
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
43 s1:tag("blah", { xmlns = "foobar" });
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
44 yes(s1, s2);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
45 yes(s2, s1);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
47 s1:tag("a");
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
48 no(s1, s2);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
49 s2:tag("a");
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
50 yes(s1, s2);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
51 s2:up():up();
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
52 s2:tag("extension", { xmlns = "blah" });
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
53 yes(s1, s2);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
54 s2:tag("b");
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
55 yes(s1, s2);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
56 s1:up():up();
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
57 s1:tag("extension", { xmlns = "blah" });
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
58 no(s1, s2);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
59 s1:tag("b");
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
60 yes(s1, s2);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
61 s1:tag("c", { n = "1" });
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
62 no(s1, s2);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
63 end);
3f9bda0887d5 Add tests for stanzacmp
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
64 end);

mercurial