refactoring_custom/SmallSense__CustomSubclassResponsibilityCodeGeneratorTests.st
author convert-repo
Wed, 11 Dec 2019 04:28:36 +0000
changeset 1116 b51ace366efc
parent 1072 a44c741ee5ef
permissions -rw-r--r--
update tags
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
a44c741ee5ef Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 833
diff changeset
     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
a44c741ee5ef Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 833
diff changeset
    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