CustomSubContextTests.st
author Jakub Nesveda <jakubnesveda@seznam.cz>
Tue, 25 Nov 2014 20:55:16 +0100
changeset 761 afbac76f54d3
parent 756 1dcd0b55815e
child 803 95cdac772759
permissions -rw-r--r--
fixed problem with different model in a generator and in the context In order to be sure that we are working on the same model parameter context in executeInContext: is shallow-copied with model from generator. Also conversion to RBClass/RBMethods in CustomSubContext has been moved from setters to getters which allows coverting them with proper model.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
756
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     1
"{ Package: 'jn:refactoring_custom' }"
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     2
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     3
TestCase subclass:#CustomSubContextTests
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     4
	instanceVariableNames:'model context'
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     5
	classVariableNames:''
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     6
	poolDictionaries:''
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     7
	category:'Interface-Refactoring-Custom-Tests'
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     8
!
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     9
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    10
!CustomSubContextTests methodsFor:'initialization & release'!
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    11
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    12
setUp
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    13
    super setUp.
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    14
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    15
    model := CustomNamespace new.
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    16
    context := CustomSubContext new
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    17
        model: model;
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    18
        yourself
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    19
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    20
    "Modified: / 19-11-2014 / 19:59:15 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    21
! !
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    22
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    23
!CustomSubContextTests methodsFor:'tests'!
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    24
761
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    25
test_selected_classes_as_rb_class
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    26
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    27
    |expectedClasses actualClasses modelClass|
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    28
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    29
    modelClass := model classNamed: self class name.
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    30
    expectedClasses := Array with: modelClass.
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    31
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    32
    context selectedClasses: (Array with: self class).
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    33
    actualClasses := context selectedClasses.
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    34
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    35
    self assert: expectedClasses = actualClasses
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    36
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    37
    "Created: / 25-11-2014 / 20:31:01 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    38
!
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    39
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    40
test_selected_classes_existing_rb_class
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    41
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    42
    |expectedClasses actualClasses modelClass|
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    43
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    44
    modelClass := model classNamed: self class name.
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    45
    expectedClasses := Array with: modelClass.
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    46
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    47
    context selectedClasses: (Array with: modelClass).
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    48
    actualClasses := context selectedClasses.
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    49
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    50
    self assert: expectedClasses = actualClasses
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    51
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    52
    "Created: / 25-11-2014 / 20:37:54 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    53
!
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    54
756
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    55
test_selected_methods_as_rb_method
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    56
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    57
    |expectedMethods realMethod actualMethods modelClass modelMethod|
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    58
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    59
    modelClass := model classNamed: self class name.
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    60
    modelMethod := modelClass compiledMethodAt: #test_selected_methods_as_rb_method.
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    61
    expectedMethods := Array with: modelMethod.
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    62
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    63
    realMethod := self class compiledMethodAt: #test_selected_methods_as_rb_method.
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    64
    context selectedMethods: (Array with: realMethod).
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    65
    actualMethods := context selectedMethods.
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    66
761
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    67
    "Cannot test collection equality, because each contains different RBMethod instance
756
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    68
    self assert: expectedMethods = actualMethods"
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    69
    self assert: (expectedMethods size) = (actualMethods size).
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    70
    self assert: (expectedMethods first selector) = (actualMethods first selector).
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    71
    self assert: (expectedMethods first isKindOf: RBMethod).    
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    72
    self deny: expectedMethods first isMethod
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    73
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    74
    "Modified: / 19-11-2014 / 20:29:40 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
761
afbac76f54d3 fixed problem with different model in a generator and in the context
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 756
diff changeset
    75
    "Modified (comment): / 25-11-2014 / 20:30:37 / 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:
diff changeset
    76
!
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    77
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    78
test_selected_methods_existing_rb_method
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    79
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    80
    |expectedMethods actualMethods modelClass modelMethod|
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    81
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    82
    modelClass := model classNamed: self class name.
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    83
    modelMethod := modelClass compiledMethodAt: #test_selected_methods_as_rb_method.
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    84
    expectedMethods := Array with: modelMethod.
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    85
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    86
    context selectedMethods: (Array with: modelMethod).
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    87
    actualMethods := context selectedMethods.
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    88
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    89
    self assert: expectedMethods = actualMethods
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    90
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    91
    "Created: / 19-11-2014 / 20:30:39 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    92
! !
1dcd0b55815e added convert to RBMethod when real methods are passed into CustomSubContext >> selectedMethods:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    93