author | convert-repo |
Wed, 11 Dec 2019 04:28:36 +0000 | |
changeset 1116 | b51ace366efc |
parent 1072 | a44c741ee5ef |
permissions | -rw-r--r-- |
829
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
1 |
" |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
2 |
A custom code generation and refactoring support for Smalltalk/X |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
3 |
Copyright (C) 2013-2015 Jakub Nesveda |
1072 | 4 |
Copyright (C) 2015 Jan Vrany |
829
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
5 |
|
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
6 |
This library is free software; you can redistribute it and/or |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
7 |
modify it under the terms of the GNU Lesser General Public |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
8 |
License as published by the Free Software Foundation; either |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
9 |
version 2.1 of the License. |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
10 |
|
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
11 |
This library is distributed in the hope that it will be useful, |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
12 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
13 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
14 |
Lesser General Public License for more details. |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
15 |
|
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
16 |
You should have received a copy of the GNU Lesser General Public |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
17 |
License along with this library; if not, write to the Free Software |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
18 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
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' }" |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
21 |
|
830
1a88f5e65fe2
Classes moved to namespace SmallSense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
829
diff
changeset
|
22 |
"{ NameSpace: SmallSense }" |
803
95cdac772759
Fixed failing tests caused by new STX release
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
778
diff
changeset
|
23 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
24 |
CustomCodeGeneratorOrRefactoringTestCase subclass:#CustomSubclassResponsibilityCodeGeneratorTests |
804
14025d247548
Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
803
diff
changeset
|
25 |
instanceVariableNames:'mockSuperClass mockClass' |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
26 |
classVariableNames:'' |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
27 |
poolDictionaries:'' |
734
f8b10fc1ab0e
update TestCase categories with respect to their tested subjects ( classes )
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
688
diff
changeset
|
28 |
category:'Interface-Refactoring-Custom-Generators-Tests' |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
29 |
! |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
30 |
|
829
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
31 |
!CustomSubclassResponsibilityCodeGeneratorTests class methodsFor:'documentation'! |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
32 |
|
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
33 |
copyright |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
34 |
" |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
35 |
A custom code generation and refactoring support for Smalltalk/X |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
36 |
Copyright (C) 2013-2015 Jakub Nesveda |
1072 | 37 |
Copyright (C) 2015 Jan Vrany |
829
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
38 |
|
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
39 |
This library is free software; you can redistribute it and/or |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
40 |
modify it under the terms of the GNU Lesser General Public |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
41 |
License as published by the Free Software Foundation; either |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
42 |
version 2.1 of the License. |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
43 |
|
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
44 |
This library is distributed in the hope that it will be useful, |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
45 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
46 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
47 |
Lesser General Public License for more details. |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
48 |
|
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
49 |
You should have received a copy of the GNU Lesser General Public |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
50 |
License along with this library; if not, write to the Free Software |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
51 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
52 |
" |
59bfd92fcef0
Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
804
diff
changeset
|
53 |
! ! |
760
f7fa71358c9b
removed method CustomSubContext >> addSelectedClass: to simplify the API
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
734
diff
changeset
|
54 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
55 |
!CustomSubclassResponsibilityCodeGeneratorTests methodsFor:'accessing'! |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
56 |
|
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
57 |
generatorOrRefactoring |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
58 |
|
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
59 |
^ CustomSubclassResponsibilityCodeGenerator new |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
60 |
|
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
61 |
"Created: / 29-08-2014 / 21:41:14 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
62 |
! ! |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
63 |
|
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
64 |
!CustomSubclassResponsibilityCodeGeneratorTests methodsFor:'initialization & release'! |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
65 |
|
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
66 |
setUp |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
67 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
68 |
super setUp. |
688
6bd18ba5e56c
completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
654
diff
changeset
|
69 |
mockSuperClass := model createClassImmediate: 'MockSuperClassForTestCase' superClassName: 'Object'. |
6bd18ba5e56c
completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
654
diff
changeset
|
70 |
mockClass := model createClassImmediate: 'MockClassForTestCase' superClassName: (mockSuperClass new className). |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
71 |
|
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
72 |
"Created: / 14-04-2014 / 17:16:28 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
73 |
"Modified: / 29-08-2014 / 21:39:57 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
74 |
! ! |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
75 |
|
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
76 |
!CustomSubclassResponsibilityCodeGeneratorTests methodsFor:'tests'! |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
77 |
|
778
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
78 |
test_determine_is_class_abstract_model_class |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
79 |
| expectedIsAbstract actualIsAbstract class | |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
80 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
81 |
class := model createClass |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
82 |
name: #DummyClass01; |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
83 |
compile; |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
84 |
yourself. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
85 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
86 |
expectedIsAbstract := false. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
87 |
generatorOrRefactoring determineIsClassAbstract: class. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
88 |
actualIsAbstract := class isAbstract. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
89 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
90 |
self assert: expectedIsAbstract = actualIsAbstract |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
91 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
92 |
"Created: / 14-12-2014 / 23:46:38 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
93 |
! |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
94 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
95 |
test_determine_is_class_abstract_real_abstract_class_wrapped_with_model_class |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
96 |
| expectedIsAbstract actualIsAbstract class realClass | |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
97 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
98 |
realClass := model createClassImmediate: #DummyClass01. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
99 |
model createMethodImmediate: realClass class source: 'isAbstract ^ true'. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
100 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
101 |
class := model classNamed: #DummyClass01. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
102 |
expectedIsAbstract := true. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
103 |
generatorOrRefactoring determineIsClassAbstract: class. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
104 |
actualIsAbstract := class isAbstract. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
105 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
106 |
self assert: expectedIsAbstract = actualIsAbstract |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
107 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
108 |
"Created: / 14-12-2014 / 23:45:11 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
109 |
! |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
110 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
111 |
test_determine_is_class_abstract_real_class |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
112 |
| expectedIsAbstract actualIsAbstract | |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
113 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
114 |
expectedIsAbstract := false. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
115 |
generatorOrRefactoring determineIsClassAbstract: self class. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
116 |
actualIsAbstract := self class isAbstract. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
117 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
118 |
self assert: expectedIsAbstract = actualIsAbstract |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
119 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
120 |
"Modified: / 14-12-2014 / 23:35:29 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
121 |
! |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
122 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
123 |
test_determine_is_class_abstract_real_class_wrapped_with_model_class |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
124 |
| expectedIsAbstract actualIsAbstract class | |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
125 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
126 |
class := model classNamed: self class name. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
127 |
expectedIsAbstract := false. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
128 |
generatorOrRefactoring determineIsClassAbstract: class. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
129 |
actualIsAbstract := class isAbstract. |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
130 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
131 |
self assert: expectedIsAbstract = actualIsAbstract |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
132 |
|
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
133 |
"Created: / 14-12-2014 / 23:38:39 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
134 |
! |
aa278bcb1d92
fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
760
diff
changeset
|
135 |
|
546
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
136 |
test_none_subclass_responsibility |
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
137 |
|
760
f7fa71358c9b
removed method CustomSubContext >> addSelectedClass: to simplify the API
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
734
diff
changeset
|
138 |
context selectedClasses: (Array with: mockClass). |
546
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
139 |
|
688
6bd18ba5e56c
completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
654
diff
changeset
|
140 |
model createMethodImmediate: mockSuperClass protocol: 'instance-protocol' source: 'instanceMethod: aParam |
546
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
141 |
^ self'. |
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
142 |
|
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
143 |
self assert: (mockClass includesSelector: #instanceMethod:) not. |
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
144 |
self assert: (mockClass class includesSelector: #instanceMethod:) not. |
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
145 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
146 |
generatorOrRefactoring executeInContext: context. |
546
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
147 |
|
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
148 |
self assert: (mockClass includesSelector: #instanceMethod:) not. |
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
149 |
self assert: (mockClass class includesSelector: #instanceMethod:) not. |
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
150 |
|
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
151 |
"Created: / 13-05-2014 / 21:49:38 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
760
f7fa71358c9b
removed method CustomSubContext >> addSelectedClass: to simplify the API
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
734
diff
changeset
|
152 |
"Modified: / 25-11-2014 / 20:12:33 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
546
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
153 |
! |
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
154 |
|
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
155 |
test_subclass_responsibility_class_method |
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
156 |
| expectedSource | |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
157 |
|
760
f7fa71358c9b
removed method CustomSubContext >> addSelectedClass: to simplify the API
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
734
diff
changeset
|
158 |
context selectedClasses: (Array with: mockClass). |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
159 |
|
688
6bd18ba5e56c
completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
654
diff
changeset
|
160 |
model createMethodImmediate: mockSuperClass class protocol: 'class-protocol' source: 'classMethod: aParam |
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
161 |
self subclassResponsibility'. |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
162 |
|
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
163 |
self assert: (mockClass includesSelector: #classMethod:) not. |
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
164 |
self assert: (mockClass class includesSelector: #classMethod:) not. |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
165 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
166 |
generatorOrRefactoring executeInContext: context. |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
167 |
|
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
168 |
self assert: (mockClass includesSelector: #classMethod:) not. |
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
169 |
self assert: (mockClass class includesSelector: #classMethod:). |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
170 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
171 |
expectedSource := 'classMethod:aParam |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
172 |
self shouldImplement'. |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
173 |
|
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
174 |
self assertMethodSource: expectedSource atSelector: #classMethod: forClass: mockClass class. |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
175 |
|
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
176 |
"Created: / 15-04-2014 / 22:05:19 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
760
f7fa71358c9b
removed method CustomSubContext >> addSelectedClass: to simplify the API
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
734
diff
changeset
|
177 |
"Modified: / 25-11-2014 / 20:12:27 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
178 |
! |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
179 |
|
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
180 |
test_subclass_responsibility_instance_method |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
181 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
182 |
|expectedSource| |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
183 |
|
760
f7fa71358c9b
removed method CustomSubContext >> addSelectedClass: to simplify the API
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
734
diff
changeset
|
184 |
context selectedClasses: (Array with: mockClass). |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
185 |
|
688
6bd18ba5e56c
completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
654
diff
changeset
|
186 |
model createMethodImmediate: mockSuperClass protocol: 'instance-protocol' source: 'instanceMethod: aParam |
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
187 |
self subclassResponsibility'. |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
188 |
|
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
189 |
self assert: (mockClass includesSelector: #instanceMethod:) not. |
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
190 |
self assert: (mockClass class includesSelector: #instanceMethod:) not. |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
191 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
192 |
generatorOrRefactoring executeInContext: context. |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
193 |
|
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
194 |
self assert: (mockClass includesSelector: #instanceMethod:). |
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
195 |
self assert: (mockClass class includesSelector: #instanceMethod:) not. |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
196 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
197 |
expectedSource := 'instanceMethod:aParam |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
198 |
self shouldImplement'. |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
199 |
|
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
200 |
self assertMethodSource: expectedSource atSelector: #instanceMethod: forClass: mockClass. |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
201 |
|
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
202 |
"Created: / 14-04-2014 / 18:10:52 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
760
f7fa71358c9b
removed method CustomSubContext >> addSelectedClass: to simplify the API
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
734
diff
changeset
|
203 |
"Modified: / 25-11-2014 / 20:12:12 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
204 |
! ! |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
205 |
|
760
f7fa71358c9b
removed method CustomSubContext >> addSelectedClass: to simplify the API
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
734
diff
changeset
|
206 |
!CustomSubclassResponsibilityCodeGeneratorTests class methodsFor:'documentation'! |
f7fa71358c9b
removed method CustomSubContext >> addSelectedClass: to simplify the API
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
734
diff
changeset
|
207 |
|
f7fa71358c9b
removed method CustomSubContext >> addSelectedClass: to simplify the API
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
734
diff
changeset
|
208 |
version_HG |
f7fa71358c9b
removed method CustomSubContext >> addSelectedClass: to simplify the API
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
734
diff
changeset
|
209 |
|
f7fa71358c9b
removed method CustomSubContext >> addSelectedClass: to simplify the API
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
734
diff
changeset
|
210 |
^ '$Changeset: <not expanded> $' |
f7fa71358c9b
removed method CustomSubContext >> addSelectedClass: to simplify the API
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
734
diff
changeset
|
211 |
! ! |
f7fa71358c9b
removed method CustomSubContext >> addSelectedClass: to simplify the API
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
734
diff
changeset
|
212 |