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_term
is test
18 intrude import commands
::commands_main
19 import commands
::test_commands_catalog
21 # Nitunit test suite specific to commands
23 super TestCommandsCatalog
28 fun test_mentity_full_name
is test
do
29 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
30 parser
.execute
("test_prog::Character", true)
33 fun test_mentity_name
is test
do
34 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
35 parser
.execute
("Character", true)
38 fun test_mentity_empty
is test
do
39 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
40 parser
.execute
("", true)
43 fun test_mentity_not_found
is test
do
44 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
45 parser
.execute
("Caracter", true)
48 fun test_mentity_conflict
is test
do
49 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
50 parser
.execute
("+", true)
55 fun test_comment
is test
do
56 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
57 parser
.execute
("doc: Character", true)
60 fun test_comment_short
is test
do
61 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
62 parser
.execute
("doc: Character | only-synopsis", true)
65 fun test_comment_no_fallback
is test
do
66 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
67 parser
.execute
("doc: Character | no-fallback", true)
72 fun test_ancestors
is test
do
73 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
74 parser
.execute
("ancestors: Warrior | parents: true", true)
77 fun test_ancestors_without_parents
is test
do
78 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
79 parser
.execute
("ancestors: Warrior | parents: false", true)
82 fun test_parents
is test
do
83 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
84 parser
.execute
("parents: Warrior", true)
87 fun test_children
is test
do
88 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
89 parser
.execute
("children: Career", true)
92 fun test_descendants
is test
do
93 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
94 parser
.execute
("descendants: Career", true)
97 fun test_descendants_without_children
is test
do
98 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
99 parser
.execute
("descendants: Career | children: false", true)
104 fun test_lin
is test
do
105 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
106 parser
.execute
("lin: init | limit: 2", true)
109 fun test_lin_no_lin
is test
do
110 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
111 parser
.execute
("lin: test_prog", true)
116 fun test_search
is test
do
117 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
118 parser
.execute
("search: Caracter | limit: 2", true)
121 fun test_search_no_query
is test
do
122 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
123 parser
.execute
("search: | limit: 1", true)
128 fun test_features
is test
do
129 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
130 parser
.execute
("defs: Character | limit: 3", true)
135 fun test_code
is test
do
136 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
137 parser
.execute
("code: Character", true)
142 fun test_init
is test
do
143 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
144 parser
.execute
("new: Elf | limit: 2", true)
147 fun test_call
is test
do
148 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
149 parser
.execute
("call: endurance_bonus", true)
152 fun test_return
is test
do
153 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
154 parser
.execute
("return: Int | limit: 3", true)
157 fun test_param
is test
do
158 var parser
= new CommandParser(test_model
, test_main
, test_builder
)
159 parser
.execute
("param: Career | limit: 3", true)
164 fun test_term_catalog
is test
do
165 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
166 parser
.execute
("catalog:", true)
169 fun test_term_catalog_search
is test
do
170 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
171 parser
.execute
("search: Caracter | limit: 3", true)
174 fun test_term_catalog_stats
is test
do
175 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
176 parser
.execute
("stats:", true)
179 fun test_term_catalog_tags
is test
do
180 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
181 parser
.execute
("tags:", true)
184 fun test_term_catalog_tag
is test
do
185 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
186 parser
.execute
("tag: game", true)
189 fun test_term_catalog_maintain
is test
do
190 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
191 parser
.execute
("maintain: Alexandre Terrasa", true)
194 fun test_term_catalog_contrib
is test
do
195 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
196 parser
.execute
("contrib: Alexandre Terrasa", true)
201 fun test_term_ini_desc
is test
do
202 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
203 parser
.execute
("ini-desc: test_prog", true)
206 fun test_term_ini_git
is test
do
207 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
208 parser
.execute
("ini-git: test_prog", true)
211 fun test_term_ini_clone
is test
do
212 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
213 parser
.execute
("git-clone: test_prog", true)
216 fun test_term_ini_issues
is test
do
217 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
218 parser
.execute
("ini-issues: test_prog", true)
221 fun test_term_ini_maintainer
is test
do
222 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
223 parser
.execute
("ini-maintainer: test_prog", true)
226 fun test_term_ini_contributors
is test
do
227 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
228 parser
.execute
("ini-contributors: test_prog", true)
231 fun test_term_ini_license
is test
do
232 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
233 parser
.execute
("ini-license: test_prog", true)
238 fun test_term_mains
is test
do
239 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
240 parser
.execute
("mains: test_prog", true)
243 fun test_term_main_compile
is test
do
244 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
245 parser
.execute
("main-compile: test_prog::test_prog", true)
248 fun test_term_man_synopsis
is test
do
249 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
250 parser
.execute
("main-run: test_prog::test_prog", true)
253 fun test_term_man_options
is test
do
254 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
255 parser
.execute
("main-opts: test_prog::test_prog", true)
258 fun test_term_testing
is test
do
259 var parser
= new CommandParser(test_model
, test_main
, test_builder
, test_catalog
)
260 parser
.execute
("testing: test_prog", true)
264 redef class nitc
::Location
265 # Avoid location diffs
266 redef fun to_s
do return "test_location"
270 redef class CmdMainCompile
271 redef fun test_path
(file
) do
272 if file
== null then return null
273 return file
.filename
.basename
278 redef class CmdTesting
279 redef fun test_path
(mentity
) do
280 var file
= mentity
.location
.file
281 if file
== null then return null
282 return file
.filename
.basename