Merge: nitc: check pkg-config packages availability later
[nit.git] / src / doc / commands / tests / test_commands_parser.nit
1 # This file is part of NIT ( http://www.nitlanguage.org ).
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 module test_commands_parser is test
16
17 import test_commands
18 import doc::commands::tests::test_commands_catalog
19 import doc::commands::commands_parser
20
21 class TestCommandsParser
22 super TestCommandsCatalog
23 test
24
25 # CmdEntity
26
27 fun test_cmd_parser_comment is test do
28 var parser = new CommandParser(test_view, test_builder)
29 var cmd = parser.parse("doc: test_prog::Character")
30 assert cmd isa CmdComment
31 assert parser.error == null
32 assert cmd.mdoc != null
33 end
34
35 # CmdInheritance
36
37 fun test_cmd_parser_parents is test do
38 var parser = new CommandParser(test_view, test_builder)
39 var cmd = parser.parse("parents: test_prog::Warrior")
40 assert cmd isa CmdParents
41 assert parser.error == null
42 assert cmd.results.as(not null).length == 1
43 end
44
45 fun test_cmd_parser_ancestors is test do
46 var parser = new CommandParser(test_view, test_builder)
47 var cmd = parser.parse("ancestors: test_prog::Warrior")
48 assert cmd isa CmdAncestors
49 assert parser.error == null
50 assert cmd.results.as(not null).length == 2
51 end
52
53 fun test_cmd_parser_ancestors_without_parents is test do
54 var parser = new CommandParser(test_view, test_builder)
55 var cmd = parser.parse("ancestors: test_prog::Warrior | parents: false")
56 assert cmd isa CmdAncestors
57 assert parser.error == null
58 assert cmd.results.as(not null).length == 1
59 end
60
61 fun test_cmd_parser_children is test do
62 var parser = new CommandParser(test_view, test_builder)
63 var cmd = parser.parse("children: test_prog::Career")
64 assert cmd isa CmdChildren
65 assert parser.error == null
66 assert cmd.results.as(not null).length == 3
67 end
68
69 fun test_cmd_parser_descendants is test do
70 var parser = new CommandParser(test_view, test_builder)
71 var cmd = parser.parse("descendants: Object")
72 assert cmd isa CmdDescendants
73 assert parser.error == null
74 assert cmd.results.as(not null).length == 20
75 end
76
77 fun test_cmd_parser_descendants_without_children is test do
78 var parser = new CommandParser(test_view, test_builder)
79 var cmd = parser.parse("descendants: Object | children: false")
80 assert cmd isa CmdDescendants
81 assert parser.error == null
82 assert cmd.results.as(not null).length == 8
83 end
84
85 # CmdSearch
86
87 fun test_cmd_parser_search is test do
88 var parser = new CommandParser(test_view, test_builder)
89 var cmd = parser.parse("search: Caracter")
90 assert cmd isa CmdSearch
91 assert parser.error == null
92 assert cmd.results != null
93 end
94
95 fun test_cmd_parser_search_limit is test do
96 var parser = new CommandParser(test_view, test_builder)
97 var cmd = parser.parse("search: Caracter | limit: 2")
98 assert cmd isa CmdSearch
99 assert parser.error == null
100 assert cmd.results.as(not null).length == 2
101 end
102
103 # CmdFeatures
104
105 fun test_cmd_parser_features is test do
106 var parser = new CommandParser(test_view, test_builder)
107 var cmd = parser.parse("defs: test_prog::Character")
108 assert cmd isa CmdFeatures
109 assert parser.error == null
110 assert cmd.results != null
111 end
112
113 fun test_cmd_parser_features_limit is test do
114 var parser = new CommandParser(test_view, test_builder)
115 var cmd = parser.parse("defs: test_prog::Character | limit: 2")
116 assert cmd isa CmdFeatures
117 assert parser.error == null
118 assert cmd.results.as(not null).length == 2
119 end
120
121 # CmdLinearization
122
123 fun test_cmd_parser_lin is test do
124 var parser = new CommandParser(test_view, test_builder)
125 var cmd = parser.parse("lin: test_prog::Character")
126 assert cmd isa CmdLinearization
127 assert parser.error == null
128 assert cmd.results != null
129 end
130
131 fun test_cmd_parser_lin_limit is test do
132 var parser = new CommandParser(test_view, test_builder)
133 var cmd = parser.parse("lin: test_prog::Character | limit: 2")
134 assert cmd isa CmdLinearization
135 assert parser.error == null
136 assert cmd.results.as(not null).length == 2
137 end
138
139 # CmdCode
140
141 fun test_cmd_parser_code is test do
142 var parser = new CommandParser(test_view, test_builder)
143 var cmd = parser.parse("code: test_prog::Character")
144 assert cmd isa CmdEntityCode
145 assert parser.error == null
146 assert cmd.node != null
147 end
148
149 # CmdModel
150
151 fun test_cmd_parser_mentities is test do
152 var parser = new CommandParser(test_view, test_builder)
153 var cmd = parser.parse("list: modules")
154 assert cmd isa CmdModelEntities
155 assert parser.error == null
156 assert cmd.results != null
157 end
158
159 fun test_cmd_parser_results_mentities is test do
160 var parser = new CommandParser(test_view, test_builder)
161 var cmd = parser.parse("random: modules")
162 assert cmd isa CmdRandomEntities
163 assert parser.error == null
164 assert cmd.results != null
165 end
166
167 # CmdGraph
168
169 fun test_cmd_parser_uml is test do
170 var parser = new CommandParser(test_view, test_builder)
171 var cmd = parser.parse("uml: test_prog::Career")
172 assert cmd isa CmdUML
173 assert parser.error == null
174 assert cmd.uml != null
175 end
176
177 fun test_cmd_parser_inh_graph is test do
178 var parser = new CommandParser(test_view, test_builder)
179 var cmd = parser.parse("graph: test_prog::Career")
180 assert cmd isa CmdInheritanceGraph
181 assert parser.error == null
182 assert cmd.graph != null
183 end
184
185 fun test_cmd_parser_inh_graph_opts is test do
186 var parser = new CommandParser(test_view, test_builder)
187 var cmd = parser.parse("graph: test_prog::Career | cdepth: 2, pdepth: 5")
188 assert cmd isa CmdInheritanceGraph
189 assert parser.error == null
190 assert cmd.graph != null
191 assert cmd.cdepth == 2
192 assert cmd.pdepth == 5
193 end
194
195 # CmdUsage
196
197 fun test_cmd_parser_new is test do
198 var parser = new CommandParser(test_view, test_builder)
199 var cmd = parser.parse("new: test_prog::Career")
200 assert cmd isa CmdNew
201 assert parser.error == null
202 assert cmd.results != null
203 end
204
205 fun test_cmd_parser_call is test do
206 var parser = new CommandParser(test_view, test_builder)
207 var cmd = parser.parse("call: strength_bonus")
208 assert cmd isa CmdCall
209 assert parser.error == null
210 assert cmd.results != null
211 end
212
213 fun test_cmd_parser_return is test do
214 var parser = new CommandParser(test_view, test_builder)
215 var cmd = parser.parse("return: test_prog::Career")
216 assert cmd isa CmdReturn
217 assert parser.error == null
218 assert cmd.results != null
219 end
220
221 fun test_cmd_parser_param is test do
222 var parser = new CommandParser(test_view, test_builder)
223 var cmd = parser.parse("param: test_prog::Career")
224 assert cmd isa CmdParam
225 assert parser.error == null
226 assert cmd.results != null
227 end
228
229 # CmdCatalog
230
231 fun test_parser_catalog_search is test do
232 var parser = new CommandParser(test_view, test_builder)
233 var cmd = parser.parse("search: Caracter")
234 assert cmd isa CmdSearch
235 assert parser.error == null
236 assert cmd.results != null
237 end
238
239 fun test_cmd_parser_catalog_packages is test do
240 var parser = new CommandParser(test_view, test_builder, test_catalog)
241 var cmd = parser.parse("catalog:")
242 assert cmd isa CmdCatalogPackages
243 assert parser.error == null
244 assert cmd.results != null
245 end
246
247 fun test_cmd_parser_catalog_stats is test do
248 var parser = new CommandParser(test_view, test_builder, test_catalog)
249 var cmd = parser.parse("stats:")
250 assert cmd isa CmdCatalogStats
251 assert parser.error == null
252 assert cmd.stats != null
253 end
254
255 fun test_cmd_parser_catalog_tags is test do
256 var parser = new CommandParser(test_view, test_builder, test_catalog)
257 var cmd = parser.parse("tags:")
258 assert cmd isa CmdCatalogTags
259 assert parser.error == null
260 assert cmd.packages_count_by_tags != null
261 end
262
263 fun test_cmd_parser_catalog_tag is test do
264 var parser = new CommandParser(test_view, test_builder, test_catalog)
265 var cmd = parser.parse("tag: test")
266 assert cmd isa CmdCatalogTag
267 assert parser.error == null
268 assert cmd.tag == "test"
269 assert cmd.results != null
270 end
271
272 fun test_cmd_parser_catalog_person is test do
273 var parser = new CommandParser(test_view, test_builder, test_catalog)
274 var cmd = parser.parse("person: Alexandre Terrasa")
275 assert cmd isa CmdCatalogPerson
276 assert parser.error == null
277 assert cmd.person.as(not null).name == "Alexandre Terrasa"
278 end
279
280 fun test_cmd_parser_catalog_contributing is test do
281 var parser = new CommandParser(test_view, test_builder, test_catalog)
282 var cmd = parser.parse("contrib: Alexandre Terrasa")
283 assert cmd isa CmdCatalogContributing
284 assert parser.error == null
285 assert cmd.person.as(not null).name == "Alexandre Terrasa"
286 assert cmd.results != null
287 end
288
289 fun test_cmd_parser_catalog_maintaining is test do
290 var parser = new CommandParser(test_view, test_builder, test_catalog)
291 var cmd = parser.parse("maintain: Alexandre Terrasa")
292 assert cmd isa CmdCatalogMaintaining
293 assert parser.error == null
294 assert cmd.person.as(not null).name == "Alexandre Terrasa"
295 assert cmd.results != null
296 end
297 end