author | Jakub Nesveda <jakubnesveda@seznam.cz> |
Tue, 28 Oct 2014 09:39:46 +0100 | |
changeset 711 | 605ab7fc9cd1 |
parent 688 | 6bd18ba5e56c |
child 734 | f8b10fc1ab0e |
permissions | -rw-r--r-- |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
1 |
"{ Package: 'jn:refactoring_custom' }" |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
2 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
3 |
CustomCodeGeneratorOrRefactoringTestCase subclass:#CustomSubclassResponsibilityCodeGeneratorTests |
571
25a316ce0c9c
extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
557
diff
changeset
|
4 |
instanceVariableNames:'codeGenerator mockSuperClass mockClass builder' |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
5 |
classVariableNames:'' |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
6 |
poolDictionaries:'' |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
7 |
category:'Interface-Refactoring-Custom-Tests' |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
8 |
! |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
9 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
10 |
!CustomSubclassResponsibilityCodeGeneratorTests methodsFor:'accessing'! |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
11 |
|
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
12 |
generatorOrRefactoring |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
13 |
|
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
14 |
^ CustomSubclassResponsibilityCodeGenerator new |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
15 |
|
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
16 |
"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
|
17 |
! ! |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
18 |
|
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
19 |
!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
|
20 |
|
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
21 |
setUp |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
22 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
23 |
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
|
24 |
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
|
25 |
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
|
26 |
|
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
27 |
"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
|
28 |
"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
|
29 |
! ! |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
30 |
|
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
31 |
!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
|
32 |
|
546
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
33 |
test_none_subclass_responsibility |
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
34 |
|
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
35 |
context addSelectedClass: mockClass. |
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
36 |
|
688
6bd18ba5e56c
completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
654
diff
changeset
|
37 |
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
|
38 |
^ self'. |
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
39 |
|
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
40 |
self assert: (mockClass includesSelector: #instanceMethod:) not. |
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
41 |
self assert: (mockClass class includesSelector: #instanceMethod:) not. |
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
42 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
43 |
generatorOrRefactoring executeInContext: context. |
546
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
44 |
|
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
45 |
self assert: (mockClass includesSelector: #instanceMethod:) not. |
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
46 |
self assert: (mockClass class includesSelector: #instanceMethod:) not. |
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
47 |
|
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
48 |
"Created: / 13-05-2014 / 21:49:38 / 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
|
49 |
"Modified: / 29-08-2014 / 21:40:53 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
546
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
50 |
! |
7402ead9f354
fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
534
diff
changeset
|
51 |
|
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
52 |
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
|
53 |
| expectedSource | |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
54 |
|
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
55 |
context addSelectedClass: mockClass. |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
56 |
|
688
6bd18ba5e56c
completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
654
diff
changeset
|
57 |
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
|
58 |
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
|
59 |
|
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
60 |
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
|
61 |
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
|
62 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
63 |
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
|
64 |
|
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
65 |
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
|
66 |
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
|
67 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
68 |
expectedSource := 'classMethod:aParam |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
69 |
self shouldImplement'. |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
70 |
|
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
71 |
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
|
72 |
|
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
73 |
"Created: / 15-04-2014 / 22:05:19 / 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
|
74 |
"Modified (format): / 29-08-2014 / 22:15:19 / 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
|
75 |
! |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
76 |
|
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
77 |
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
|
78 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
79 |
|expectedSource| |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
80 |
|
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
81 |
context addSelectedClass: mockClass. |
525
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
82 |
|
688
6bd18ba5e56c
completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
654
diff
changeset
|
83 |
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
|
84 |
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
|
85 |
|
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
86 |
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
|
87 |
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
|
88 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
89 |
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
|
90 |
|
527
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
91 |
self assert: (mockClass includesSelector: #instanceMethod:). |
76b08d1b692f
Added code generator which generates method stubs for subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
525
diff
changeset
|
92 |
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
|
93 |
|
654
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
94 |
expectedSource := 'instanceMethod:aParam |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
95 |
self shouldImplement'. |
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
96 |
|
39e40ece4ae9
all tests pass - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
572
diff
changeset
|
97 |
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
|
98 |
|
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
99 |
"Created: / 14-04-2014 / 18:10:52 / 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
|
100 |
"Modified: / 29-08-2014 / 22:21:00 / 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
|
101 |
! ! |
06b14d49f485
work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
102 |