1 # This file is part of NIT ( http://www.nitlanguage.org ).
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
7 # http://www.apache.org/licenses/LICENSE-2.0
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.
15 module test_commands_parser
is test
18 import doc
::commands
::tests
::test_commands_catalog
19 import doc
::commands
::commands_parser
21 class TestCommandsParser
22 super TestCommandsCatalog
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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"
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
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