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