refactoring_custom/SmallSense__CustomTestCaseMethodCodeGeneratorTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sun, 14 Jun 2015 09:46:51 +0100
changeset 833 297eb38e4eee
parent 830 SmallSense__CustomTestCaseMethodCodeGeneratorTests.st@1a88f5e65fe2
child 1072 a44c741ee5ef
permissions -rw-r--r--
Package jn:refactoring_custom renamed to stx:goodies/smallsense/refactoring_custom
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
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
     4
Copyright (C) 2013-now  Jan Vrany
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' }"
717
63e0da20b676 add create immediate private class in CustomNamespace
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: 765
diff changeset
    23
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    24
CustomCodeGeneratorOrRefactoringTestCase subclass:#CustomTestCaseMethodCodeGeneratorTests
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    25
	instanceVariableNames:''
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    26
	classVariableNames:''
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    27
	poolDictionaries:''
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    28
	category:'Interface-Refactoring-Custom-Generators-Tests'
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    29
!
63e0da20b676 add create immediate private class in CustomNamespace
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
!CustomTestCaseMethodCodeGeneratorTests 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
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
    37
Copyright (C) 2013-now  Jan Vrany
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
! !
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
    54
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    55
!CustomTestCaseMethodCodeGeneratorTests methodsFor:'accessing'!
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    56
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    57
generatorOrRefactoring
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    58
    ^ CustomTestCaseMethodCodeGenerator new
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    59
! !
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    60
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    61
!CustomTestCaseMethodCodeGeneratorTests methodsFor:'tests'!
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    62
765
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    63
test_generate_test_method_for_class
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    64
    | expectedSource method class testClass |
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    65
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    66
    class := model createClassImmediate: #MockClassForTestCase01 superClassName: #Object.
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    67
    testClass := model createClassImmediate: #MockClassForTestCase01Tests.
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    68
    method := model createMethodImmediate: class source: 'selector_01 ^ 1'.
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    69
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    70
    context selectedMethods: (Array with: method).  
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    71
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    72
    expectedSource := 'test_selector_01
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    73
    "/ something selector_01.    
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    74
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    75
    self assert:1 = 2.'.
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    76
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    77
    generatorOrRefactoring executeInContext: context.  
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    78
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    79
    self assertMethodSource:expectedSource atSelector:#test_selector_01 forClass:testClass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    80
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    81
    "Created: / 29-11-2014 / 15:04:16 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    82
!
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
    83
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    84
test_generate_test_method_for_private_class
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 803
diff changeset
    85
    | expectedSource privateClass method testClass |
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    86
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 803
diff changeset
    87
    model createClassImmediate: #MockClassForTestCase01 superClassName: #Object.
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    88
    privateClass := model createClassImmediate: #PrivateClass01 superClassName: #MockClassForTestCase01 privateIn: #MockClassForTestCase01.
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    89
    testClass := model createClassImmediate: #MockClassForTestCase01Tests.
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    90
    method := model createMethodImmediate: privateClass source: 'selector_01 ^ 1'.
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    91
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    92
    context selectedMethods: (Array with: method).  
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    93
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    94
    expectedSource := 'test_selector_01
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    95
    "/ something selector_01.    
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    96
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    97
    self assert:1 = 2.'.
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    98
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    99
    generatorOrRefactoring executeInContext: context.  
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   100
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   101
    self assertMethodSource:expectedSource atSelector:#test_selector_01 forClass:testClass
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   102
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   103
    "Created: / 31-10-2014 / 00:30:29 / 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
   104
    "Modified: / 25-01-2015 / 15:54:08 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   105
! !
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   106