CustomTestCaseMethodCodeGenerator.st
author Jakub Nesveda <jakubnesveda@seznam.cz>
Wed, 19 Nov 2014 20:52:39 +0100
changeset 756 1dcd0b55815e
parent 717 63e0da20b676
child 765 d706c98adeb5
permissions -rw-r--r--
added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
641
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     1
"{ Package: 'jn:refactoring_custom' }"
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     2
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     3
CustomCodeGenerator subclass:#CustomTestCaseMethodCodeGenerator
703
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
     4
	instanceVariableNames:'testMethodSelectors'
641
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     5
	classVariableNames:''
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     6
	poolDictionaries:''
656
a95284467938 move all code generators to category Interface-Refactoring-Custom-Generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 642
diff changeset
     7
	category:'Interface-Refactoring-Custom-Generators'
641
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     8
!
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     9
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    10
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    11
!CustomTestCaseMethodCodeGenerator class methodsFor:'accessing-presentation'!
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    12
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    13
description
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    14
    "Returns more detailed description of the receiver"
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    15
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    16
    ^ 'Creates test method for TestCase from method selection'
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    17
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    18
    "Created: / 24-08-2014 / 16:16:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    19
!
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    20
670
f49ac58dd32c Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 661
diff changeset
    21
group
f49ac58dd32c Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 661
diff changeset
    22
    "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
    23
     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
    24
     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
    25
     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
    26
f49ac58dd32c Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 661
diff changeset
    27
    "/ 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
    28
    "/ 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
    29
    ^ #('Testing')
f49ac58dd32c Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 661
diff changeset
    30
f49ac58dd32c Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 661
diff changeset
    31
    "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
    32
!
f49ac58dd32c Fixes / improvements in testcase generatoris, update to new API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 661
diff changeset
    33
641
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    34
label
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    35
    "Returns show label describing the receiver. This label
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    36
     is used in UI as menu item/tree item label."
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    37
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    38
    ^ 'Test method'
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    39
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    40
    "Created: / 24-08-2014 / 16:14:16 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    41
! !
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    42
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    43
!CustomTestCaseMethodCodeGenerator class methodsFor:'queries'!
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    44
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    45
availableInContext:aCustomContext
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    46
    "Returns true if the generator/refactoring is available in given
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    47
     context, false otherwise.
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    48
     
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    49
     Called by the UI to figure out what generators / refactorings
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    50
     are available at given point. See class CustomContext for details."
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    51
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    52
    ^ aCustomContext selectedMethods notEmptyOrNil
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    53
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    54
    "Created: / 24-08-2014 / 16:18:25 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    55
!
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    56
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    57
availableInPerspective:aCustomPerspective
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    58
    "Returns true if the generator/refactoring is available in given
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    59
     perspective, false otherwise.
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    60
     
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    61
     Called by the UI to figure out what generators / refactorings
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    62
     to show"
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    63
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    64
    ^ aCustomPerspective isMethodPerspective
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    65
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    66
    "Created: / 24-08-2014 / 16:16:49 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    67
! !
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    68
703
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    69
!CustomTestCaseMethodCodeGenerator methodsFor:'accessing'!
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    70
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    71
testMethodSelector:aSelector 
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    72
    "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
    73
     belonging to method to be tested."
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    74
    
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    75
    ^ testMethodSelectors at:aSelector asSymbol ifAbsent: [ 
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    76
        self createTestMethodSelectorFor: aSelector asSymbol  
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    77
    ].
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    78
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    79
    "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
    80
!
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    81
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    82
testMethodSelector:aSelector put:aTestMethodName 
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    83
    "Sets test method name - see testMethodName:."
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    84
    
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    85
    testMethodSelectors at:aSelector asSymbol put:aTestMethodName
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    86
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    87
    "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
    88
! !
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    89
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    90
!CustomTestCaseMethodCodeGenerator methodsFor:'converting'!
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    91
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    92
createTestMethodSelectorFor:aMethodSelector 
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    93
    "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
    94
    
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    95
    |testSelector|
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    96
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    97
    testSelector := 'test_'.
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    98
    aMethodSelector asString do:[:character | 
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
    99
        character isUppercase ifTrue:[
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   100
            testSelector := testSelector , '_'.
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   101
        ].
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   102
        testSelector := testSelector , character asString toLowerCase
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   103
    ].
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   104
    testSelector replaceAll:$: with:$_.
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   105
    ^testSelector
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   106
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   107
    "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
   108
! !
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   109
641
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   110
!CustomTestCaseMethodCodeGenerator methodsFor:'executing'!
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   111
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   112
buildInContext: aCustomContext
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   113
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   114
    aCustomContext selectedMethods do:[ :method | 
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 703
diff changeset
   115
        | class className testClass |
641
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   116
756
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   117
        class := method modelClass realClass owningClassOrYourself.
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   118
        "/ TODO implement these missing methods in RBMethod
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   119
        "/ and replace it with:
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   120
        "/ class := method mclass owningClassOrYourself.
641
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   121
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 703
diff changeset
   122
        className := class theNonMetaclass name.
641
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   123
        (className endsWith: 'Tests') ifFalse: [ 
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   124
            | testClass |
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   125
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   126
            className := className, 'Tests'.
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   127
            testClass := Smalltalk classNamed: className.
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   128
            testClass notNil ifTrue: [ 
703
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   129
                | testSelector |
641
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   130
703
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   131
                testSelector := self testMethodSelector: method selector. 
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 703
diff changeset
   132
                (testClass includesSelector: testSelector asSymbol) ifFalse: [
689
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   133
                    model createMethod
661
b327c8833f1a same package in generated test cases as in tested classes - CustomTestCaseCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 656
diff changeset
   134
                        package: method package;
641
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   135
                        class: testClass;
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   136
                        protocol: 'tests';
642
55cebe41a90b add methodDefinitionTemplate to generated test method to CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 641
diff changeset
   137
                        source: (testSelector, '                            
55cebe41a90b add methodDefinitionTemplate to generated test method to CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 641
diff changeset
   138
                            "/ something ', (method methodDefinitionTemplate asString), '.    
641
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   139
                            self assert: 1 = 2.
689
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   140
                        ');
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   141
                        compile
641
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   142
                ].
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   143
            ].
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   144
        ].
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   145
    ].
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   146
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   147
    "Created: / 24-08-2014 / 16:24:04 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
756
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   148
    "Modified: / 19-11-2014 / 09:55:20 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
703
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   149
! !
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
!CustomTestCaseMethodCodeGenerator methodsFor:'executing - private'!
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
configureInContext:aCustomContext
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   154
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   155
    aCustomContext selectedMethods do:[:selectedMethod |
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   156
        | selector |
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   157
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   158
        selector := selectedMethod selector asSymbol.
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   159
        (testMethodSelectors includesKey: selector) ifFalse: [ 
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   160
            testMethodSelectors 
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   161
                at: selector 
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   162
                put: (self createTestMethodSelectorFor: selector).
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   163
        ].
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   164
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   165
        dialog 
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   166
            addSelectorNameEntryOn:(DictionaryAdaptor new
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   167
                                        subject:testMethodSelectors; 
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   168
                                        aspect:selector)
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   169
            labeled:selector asString
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   170
            validateBy:nil.
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   171
    ].
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   172
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   173
    dialog addButtons.
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   174
    dialog open.
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   175
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   176
    "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
   177
! !
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   178
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   179
!CustomTestCaseMethodCodeGenerator methodsFor:'initialization'!
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   180
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   181
initialize
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   182
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   183
    super initialize.
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   184
    testMethodSelectors := Dictionary new.
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   185
300ac48af954 add CustomDialog >> addSelectorNameEntryOn: labeled: validateBy:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 689
diff changeset
   186
    "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
   187
! !
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   188
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   189
!CustomTestCaseMethodCodeGenerator class methodsFor:'documentation'!
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   190
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   191
version_HG
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   192
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   193
    ^ '$Changeset: <not expanded> $'
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   194
! !
7d609c00bdac add CustomTestCaseMethodCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   195