CustomClassQueryTests.st
author Jakub Nesveda <jakubnesveda@seznam.cz>
Sun, 25 Jan 2015 13:39:42 +0100
changeset 803 95cdac772759
parent 734 f8b10fc1ab0e
child 829 59bfd92fcef0
permissions -rw-r--r--
Fixed failing tests caused by new STX release * RBParser cannot parse expressions like #NameSpace::Class - changed to #'NameSpace::Class' * AddClassChange has renamed variables instanceVariableNames -> instanceVariableString, classVariableNames -> classVariableString
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
571
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     1
"{ Package: 'jn:refactoring_custom' }"
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     2
803
95cdac772759 Fixed failing tests caused by new STX release
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 734
diff changeset
     3
"{ NameSpace: Smalltalk }"
95cdac772759 Fixed failing tests caused by new STX release
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 734
diff changeset
     4
571
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     5
TestCase subclass:#CustomClassQueryTests
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
     6
	instanceVariableNames:'classQuery model mockSuperClass mockClass'
571
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     7
	classVariableNames:''
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     8
	poolDictionaries:''
734
f8b10fc1ab0e update TestCase categories with respect to their tested subjects ( classes )
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
     9
	category:'Interface-Refactoring-Custom-Helpers-Tests'
571
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    10
!
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    11
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    12
!CustomClassQueryTests methodsFor:'initialization & release'!
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    13
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    14
setUp
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    15
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    16
    classQuery := CustomClassQuery new.
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    17
    model := CustomNamespace new.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    18
    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: 686
diff changeset
    19
    mockClass := model createClassImmediate: 'MockClassForTestCase' superClassName: (mockSuperClass new className).
571
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    20
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    21
    "Modified: / 09-10-2014 / 09:33:36 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
571
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    22
!
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    23
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    24
tearDown
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    25
705
1eb0878dc85c rename undoChanges to redoChanges, because it actually does undo, in CustomLocalChangeManager, CustomNamespace, CustomRefactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
    26
    model undoChanges
571
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    27
705
1eb0878dc85c rename undoChanges to redoChanges, because it actually does undo, in CustomLocalChangeManager, CustomNamespace, CustomRefactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
    28
    "Modified: / 19-10-2014 / 14:56:20 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
571
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    29
! !
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    30
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    31
!CustomClassQueryTests methodsFor:'tests'!
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    32
686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    33
test_method_from_superclass_not_found_01
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    34
    | method |                                                                              
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    35
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    36
    method := classQuery methodForSuperclassSelector: 'someNonExistingMethod:withParam:' class: Object.
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    37
    self assert: method isNil.
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    38
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    39
    "Created: / 07-10-2014 / 19:54:22 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    40
!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    41
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    42
test_method_from_superclass_not_found_02
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    43
    | method |                                                                              
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    44
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    45
    method := classQuery methodForSuperclassSelector: 'someNonExistingMethod:withParam:' class: self class.
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    46
    self assert: method isNil.
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    47
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    48
    "Created: / 07-10-2014 / 19:54:33 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    49
!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 571
diff changeset
    50
571
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    51
test_method_from_superclass_retrieved
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    52
    | method |
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    53
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    54
    self assert: (classQuery methodForSuperclassSelector: 'initialize' class: Object) isNil.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    55
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    56
    "/ Instance method
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    57
    model createMethodImmediate: mockSuperClass protocol: 'instance-protocol' source: 'instanceMethod: aParam
571
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    58
    self shouldImplement'.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    59
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    60
    method := classQuery methodForSuperclassSelector: #instanceMethod: class: mockClass.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    61
    self assert: 'instance-protocol' = method category.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    62
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    63
    self assert: 'instanceMethod:aParam' = method methodDefinitionTemplate.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    64
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    65
    "/ Class method
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    66
    model createMethodImmediate: mockSuperClass class protocol: 'class-protocol' source: 'classMethod: aParam
571
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    67
    self shouldImplement'.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    68
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    69
    method := classQuery methodForSuperclassSelector: 'classMethod:' class: mockClass class.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    70
    self assert: 'class-protocol' = method category.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    71
    self assert: 'classMethod:aParam' = method methodDefinitionTemplate.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    72
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    73
    "Created: / 14-04-2014 / 18:12:57 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    74
    "Modified: / 15-06-2014 / 16:17:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    75
! !
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    76