CustomClassQueryTests.st
author Jakub Nesveda <jakubnesveda@seznam.cz>
Sun, 19 Oct 2014 15:10:29 +0200
changeset 705 1eb0878dc85c
parent 688 6bd18ba5e56c
child 734 f8b10fc1ab0e
permissions -rw-r--r--
rename undoChanges to redoChanges, because it actually does undo, in CustomLocalChangeManager, CustomNamespace, CustomRefactoryBuilder
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
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     3
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
     4
	instanceVariableNames:'classQuery model mockSuperClass mockClass'
571
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     5
	classVariableNames:''
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     6
	poolDictionaries:''
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     7
	category:'Interface-Refactoring-Custom-Tests'
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     8
!
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     9
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    10
!CustomClassQueryTests methodsFor:'initialization & release'!
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
setUp
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
    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
    15
    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
    16
    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
    17
    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
    18
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    19
    "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
    20
!
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    21
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    22
tearDown
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    23
705
1eb0878dc85c rename undoChanges to redoChanges, because it actually does undo, in CustomLocalChangeManager, CustomNamespace, CustomRefactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
    24
    model undoChanges
571
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
    "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
    27
! !
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    28
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    29
!CustomClassQueryTests methodsFor:'tests'!
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    30
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
    31
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
    32
    | 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
    33
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 := 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
    35
    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
    36
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
    "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
    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
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
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
    41
    | 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
    42
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 := 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
    44
    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
    45
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
    "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
    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
571
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    49
test_method_from_superclass_retrieved
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    50
    | method |
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    51
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    52
    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
    53
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    54
    "/ 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
    55
    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
    56
    self shouldImplement'.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    57
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    58
    method := classQuery methodForSuperclassSelector: #instanceMethod: class: mockClass.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    59
    self assert: 'instance-protocol' = method category.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    60
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    61
    self assert: 'instanceMethod:aParam' = method methodDefinitionTemplate.
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
    "/ 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
    64
    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
    65
    self shouldImplement'.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    66
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    67
    method := classQuery methodForSuperclassSelector: 'classMethod:' class: mockClass class.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    68
    self assert: 'class-protocol' = method category.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    69
    self assert: 'classMethod:aParam' = method methodDefinitionTemplate.
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    70
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    71
    "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
    72
    "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
    73
! !
25a316ce0c9c extracted method methodForSuperclassSelector from class CustomSubclassResponsibilityCodeGenerator to CustomClassQuery
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    74