1#######################################################
2#
3# Test every(), some(), and none()
4#
5#######################################################
6
7body common control
8{
9      inputs => { "../../default.cf.sub" };
10      bundlesequence  => { default("$(this.promise_filename)") };
11      version => "1.0";
12}
13
14#######################################################
15
16bundle agent test
17{
18  methods:
19      "pretest";
20      "collect";
21}
22
23bundle common pretest
24{
25  vars:
26      "test" slist => {
27                        1,2,3,
28                        "one", "two", "three",
29                        "long string",
30                        "four", "fix", "six",
31                        "one", "two", "three",
32      };
33
34      "empty" slist => { };
35
36      "d1" data => parsejson('
37[1,2,3,
38 "one", "two", "three",
39 "long string",
40 "four", "fix", "six",
41 "one", "two", "three"]');
42
43      "d2" data => parsejson('
44{ "one": 1, "two": 2, "three": 3,
45  "x": "y", "a": "b", "p": "q" }');
46
47      "dempty" data => parsejson('[]');
48
49      "collected" slist => classesmatching(".*", "collect");
50      "collected_sorted" slist => sort(collected, "lex");
51
52  classes:
53      "every1" meta => { "collect" }, expression => every(".*", "test");
54      "every2" meta => { "collect" }, expression => every(".", "test");
55
56      "some1" meta => { "collect" }, expression => some("long string", "test");
57      "some2" meta => { "collect" }, expression => some("none", "test");
58
59      "none1" meta => { "collect" }, expression => none("jebadiah", "test");
60      "none2" meta => { "collect" }, expression => none("2", "test");
61
62      "every_empty" meta => { "collect" }, expression => every(".*", "empty");
63      "some_empty" meta => { "collect" }, expression => some(".*", "empty");
64      "none_empty" meta => { "collect" }, expression => none(".*", "empty");
65
66      "everyd11" meta => { "collect" }, expression => every(".*", d1);
67      "everyd12" meta => { "collect" }, expression => every(".", d1);
68
69      "somed11" meta => { "collect" }, expression => some("long string", d1);
70      "somed12" meta => { "collect" }, expression => some("none", d1);
71
72      "noned11" meta => { "collect" }, expression => none("jebadiah", d1);
73      "noned12" meta => { "collect" }, expression => none("2", d1);
74
75      "everyd21" meta => { "collect" }, expression => every(".*", d2);
76      "everyd22" meta => { "collect" }, expression => every(".", d2);
77
78      "somed21" meta => { "collect" }, expression => some("long string", d2);
79      "somed22" meta => { "collect" }, expression => some("none", d2);
80
81      "noned21" meta => { "collect" }, expression => none("jebadiah", d2);
82      "noned22" meta => { "collect" }, expression => none("2", d2);
83
84      "every_dempty" meta => { "collect" }, expression => every(".*", dempty);
85      "some_dempty" meta => { "collect" }, expression => some(".*", dempty);
86      "none_dempty" meta => { "collect" }, expression => none(".*", dempty);
87
88      # with inline JSON
89      "inline_every_empty" meta => { "collect" }, expression => every(".*", '[]');
90      "inline_some_data" meta => { "collect" }, expression => every(".*", '[ "foo", "bar" ]');
91      "inline_none_data" meta => { "collect" }, expression => none("jebadiah", '[ "foo", "bar" ]');
92
93}
94
95bundle common collect
96{
97  vars:
98      "collected" slist => { @(pretest.collected_sorted) };
99}
100
101bundle agent check
102{
103  methods:
104      "check"  usebundle => dcs_check_state(collect,
105                                           "$(this.promise_filename).expected.json",
106                                           $(this.promise_filename));
107}
108