author | convert-repo |
Wed, 11 Dec 2019 04:28:36 +0000 | |
changeset 1116 | b51ace366efc |
parent 1072 | a44c741ee5ef |
permissions | -rw-r--r-- |
828 | 1 |
" |
2 |
A custom code generation and refactoring support for Smalltalk/X |
|
3 |
Copyright (C) 2013-2015 Jakub Nesveda |
|
1072 | 4 |
Copyright (C) 2015 Jan Vrany |
828 | 5 |
|
6 |
This library is free software; you can redistribute it and/or |
|
7 |
modify it under the terms of the GNU Lesser General Public |
|
8 |
License as published by the Free Software Foundation; either |
|
9 |
version 2.1 of the License. |
|
10 |
||
11 |
This library is distributed in the hope that it will be useful, |
|
12 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
14 |
Lesser General Public License for more details. |
|
15 |
||
16 |
You should have received a copy of the GNU Lesser General Public |
|
17 |
License along with this library; if not, write to the Free Software |
|
18 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
19 |
" |
|
833
297eb38e4eee
Package jn:refactoring_custom renamed to stx:goodies/smallsense/refactoring_custom
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
830
diff
changeset
|
20 |
"{ Package: 'stx:goodies/smallsense/refactoring_custom' }" |
641
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
21 |
|
830
1a88f5e65fe2
Classes moved to namespace SmallSense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
828
diff
changeset
|
22 |
"{ NameSpace: SmallSense }" |
803
95cdac772759
Fixed failing tests caused by new STX release
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
765
diff
changeset
|
23 |
|
641
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
24 |
CustomCodeGenerator subclass:#CustomTestCaseMethodCodeGenerator |
703
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
25 |
instanceVariableNames:'testMethodSelectors' |
641
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
26 |
classVariableNames:'' |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
27 |
poolDictionaries:'' |
656
a95284467938
move all code generators to category Interface-Refactoring-Custom-Generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
642
diff
changeset
|
28 |
category:'Interface-Refactoring-Custom-Generators' |
641
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
29 |
! |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
30 |
|
828 | 31 |
!CustomTestCaseMethodCodeGenerator class methodsFor:'documentation'! |
32 |
||
33 |
copyright |
|
34 |
" |
|
35 |
A custom code generation and refactoring support for Smalltalk/X |
|
36 |
Copyright (C) 2013-2015 Jakub Nesveda |
|
1072 | 37 |
Copyright (C) 2015 Jan Vrany |
828 | 38 |
|
39 |
This library is free software; you can redistribute it and/or |
|
40 |
modify it under the terms of the GNU Lesser General Public |
|
41 |
License as published by the Free Software Foundation; either |
|
42 |
version 2.1 of the License. |
|
43 |
||
44 |
This library is distributed in the hope that it will be useful, |
|
45 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
46 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
47 |
Lesser General Public License for more details. |
|
48 |
||
49 |
You should have received a copy of the GNU Lesser General Public |
|
50 |
License along with this library; if not, write to the Free Software |
|
51 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
52 |
" |
|
53 |
! ! |
|
641
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
54 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
55 |
!CustomTestCaseMethodCodeGenerator class methodsFor:'accessing-presentation'! |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
56 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
57 |
description |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
58 |
"Returns more detailed description of the receiver" |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
59 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
60 |
^ 'Creates test method for TestCase from method selection' |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
61 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
62 |
"Created: / 24-08-2014 / 16:16:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
63 |
! |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
64 |
|
670
f49ac58dd32c
Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
661
diff
changeset
|
65 |
group |
f49ac58dd32c
Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
661
diff
changeset
|
66 |
"Returns a collection strings describing a group to which |
f49ac58dd32c
Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
661
diff
changeset
|
67 |
receiver belongs. A groups may be nested hence the array of |
f49ac58dd32c
Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
661
diff
changeset
|
68 |
strings. For example for subgroup 'Accessors' in group 'Generators' |
f49ac58dd32c
Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
661
diff
changeset
|
69 |
this method should return #('Generators' 'Accessors')." |
f49ac58dd32c
Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
661
diff
changeset
|
70 |
|
f49ac58dd32c
Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
661
diff
changeset
|
71 |
"/ By default return an empty array which means the item will appear |
f49ac58dd32c
Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
661
diff
changeset
|
72 |
"/ in top-level group. |
f49ac58dd32c
Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
661
diff
changeset
|
73 |
^ #('Testing') |
f49ac58dd32c
Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
661
diff
changeset
|
74 |
|
f49ac58dd32c
Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
661
diff
changeset
|
75 |
"Created: / 05-08-2014 / 14:14:20 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
f49ac58dd32c
Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
661
diff
changeset
|
76 |
! |
f49ac58dd32c
Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
661
diff
changeset
|
77 |
|
641
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
78 |
label |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
79 |
"Returns show label describing the receiver. This label |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
80 |
is used in UI as menu item/tree item label." |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
81 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
82 |
^ 'Test method' |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
83 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
84 |
"Created: / 24-08-2014 / 16:14:16 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
85 |
! ! |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
86 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
87 |
!CustomTestCaseMethodCodeGenerator class methodsFor:'queries'! |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
88 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
89 |
availableInContext:aCustomContext |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
90 |
"Returns true if the generator/refactoring is available in given |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
91 |
context, false otherwise. |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
92 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
93 |
Called by the UI to figure out what generators / refactorings |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
94 |
are available at given point. See class CustomContext for details." |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
95 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
96 |
^ aCustomContext selectedMethods notEmptyOrNil |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
97 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
98 |
"Created: / 24-08-2014 / 16:18:25 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
99 |
! |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
100 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
101 |
availableInPerspective:aCustomPerspective |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
102 |
"Returns true if the generator/refactoring is available in given |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
103 |
perspective, false otherwise. |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
104 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
105 |
Called by the UI to figure out what generators / refactorings |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
106 |
to show" |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
107 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
108 |
^ aCustomPerspective isMethodPerspective |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
109 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
110 |
"Created: / 24-08-2014 / 16:16:49 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
111 |
! ! |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
112 |
|
703
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
113 |
!CustomTestCaseMethodCodeGenerator methodsFor:'accessing'! |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
114 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
115 |
testMethodSelector:aSelector |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
116 |
"Returns how the test case method will be called for particular selector |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
117 |
belonging to method to be tested." |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
118 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
119 |
^ testMethodSelectors at:aSelector asSymbol ifAbsent: [ |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
120 |
self createTestMethodSelectorFor: aSelector asSymbol |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
121 |
]. |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
122 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
123 |
"Created: / 15-10-2014 / 08:19:56 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
124 |
! |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
125 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
126 |
testMethodSelector:aSelector put:aTestMethodName |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
127 |
"Sets test method name - see testMethodName:." |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
128 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
129 |
testMethodSelectors at:aSelector asSymbol put:aTestMethodName |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
130 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
131 |
"Created: / 15-10-2014 / 08:21:12 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
132 |
! ! |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
133 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
134 |
!CustomTestCaseMethodCodeGenerator methodsFor:'converting'! |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
135 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
136 |
createTestMethodSelectorFor:aMethodSelector |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
137 |
"Returns test method selector created from method selector to be tested" |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
138 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
139 |
|testSelector| |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
140 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
141 |
testSelector := 'test_'. |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
142 |
aMethodSelector asString do:[:character | |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
143 |
character isUppercase ifTrue:[ |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
144 |
testSelector := testSelector , '_'. |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
145 |
]. |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
146 |
testSelector := testSelector , character asString toLowerCase |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
147 |
]. |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
148 |
testSelector replaceAll:$: with:$_. |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
149 |
^testSelector |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
150 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
151 |
"Created: / 15-10-2014 / 09:04:20 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
152 |
! ! |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
153 |
|
765
d706c98adeb5
better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
756
diff
changeset
|
154 |
!CustomTestCaseMethodCodeGenerator methodsFor:'executing - private'! |
641
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
155 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
156 |
buildInContext: aCustomContext |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
157 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
158 |
aCustomContext selectedMethods do:[ :method | |
804
14025d247548
Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
803
diff
changeset
|
159 |
| class className | |
641
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
160 |
|
765
d706c98adeb5
better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
756
diff
changeset
|
161 |
class := method mclass owningClassOrYourself. |
641
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
162 |
|
717
63e0da20b676
add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
703
diff
changeset
|
163 |
className := class theNonMetaclass name. |
641
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
164 |
(className endsWith: 'Tests') ifFalse: [ |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
165 |
| testClass | |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
166 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
167 |
className := className, 'Tests'. |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
168 |
testClass := Smalltalk classNamed: className. |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
169 |
testClass notNil ifTrue: [ |
703
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
170 |
| testSelector | |
641
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
171 |
|
703
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
172 |
testSelector := self testMethodSelector: method selector. |
717
63e0da20b676
add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
703
diff
changeset
|
173 |
(testClass includesSelector: testSelector asSymbol) ifFalse: [ |
689
488503cd3baa
fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
688
diff
changeset
|
174 |
model createMethod |
661
b327c8833f1a
same package in generated test cases as in tested classes - CustomTestCaseCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
656
diff
changeset
|
175 |
package: method package; |
641
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
176 |
class: testClass; |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
177 |
protocol: 'tests'; |
642
55cebe41a90b
add methodDefinitionTemplate to generated test method to CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
641
diff
changeset
|
178 |
source: (testSelector, ' |
55cebe41a90b
add methodDefinitionTemplate to generated test method to CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
641
diff
changeset
|
179 |
"/ something ', (method methodDefinitionTemplate asString), '. |
641
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
180 |
self assert: 1 = 2. |
689
488503cd3baa
fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
688
diff
changeset
|
181 |
'); |
488503cd3baa
fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
688
diff
changeset
|
182 |
compile |
641
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
183 |
]. |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
184 |
]. |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
185 |
]. |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
186 |
]. |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
187 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
188 |
"Created: / 24-08-2014 / 16:24:04 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
765
d706c98adeb5
better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
756
diff
changeset
|
189 |
"Modified: / 29-11-2014 / 15:01:58 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
804
14025d247548
Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
803
diff
changeset
|
190 |
"Modified (format): / 25-01-2015 / 15:18:05 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
765
d706c98adeb5
better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
756
diff
changeset
|
191 |
! |
703
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
192 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
193 |
configureInContext:aCustomContext |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
194 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
195 |
aCustomContext selectedMethods do:[:selectedMethod | |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
196 |
| selector | |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
197 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
198 |
selector := selectedMethod selector asSymbol. |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
199 |
(testMethodSelectors includesKey: selector) ifFalse: [ |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
200 |
testMethodSelectors |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
201 |
at: selector |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
202 |
put: (self createTestMethodSelectorFor: selector). |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
203 |
]. |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
204 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
205 |
dialog |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
206 |
addSelectorNameEntryOn:(DictionaryAdaptor new |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
207 |
subject:testMethodSelectors; |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
208 |
aspect:selector) |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
209 |
labeled:selector asString |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
210 |
validateBy:nil. |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
211 |
]. |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
212 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
213 |
dialog addButtons. |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
214 |
dialog open. |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
215 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
216 |
"Created: / 15-10-2014 / 08:59:16 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
217 |
! ! |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
218 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
219 |
!CustomTestCaseMethodCodeGenerator methodsFor:'initialization'! |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
220 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
221 |
initialize |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
222 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
223 |
super initialize. |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
224 |
testMethodSelectors := Dictionary new. |
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
225 |
|
300ac48af954
add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
689
diff
changeset
|
226 |
"Created: / 15-10-2014 / 08:22:21 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
641
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
227 |
! ! |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
228 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
229 |
!CustomTestCaseMethodCodeGenerator class methodsFor:'documentation'! |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
230 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
231 |
version_HG |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
232 |
|
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
233 |
^ '$Changeset: <not expanded> $' |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
234 |
! ! |
7d609c00bdac
add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
235 |