CustomNewClassGeneratorTests.st
author Jakub Nesveda <jakubnesveda@seznam.cz>
Thu, 13 Nov 2014 00:14:52 +0100
changeset 743 79617bd3dbe1
parent 736 cbb808f1f9ff
child 803 95cdac772759
permissions -rw-r--r--
fix broken tests - CustomDialog >> isAborted behaves like true when actually nil
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
736
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     1
"{ Package: 'jn:refactoring_custom' }"
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     2
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     3
CustomCodeGeneratorOrRefactoringTestCase subclass:#CustomNewClassGeneratorTests
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     4
	instanceVariableNames:''
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     5
	classVariableNames:''
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     6
	poolDictionaries:''
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     7
	category:'Interface-Refactoring-Custom-Generators-Tests'
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     8
!
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     9
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    10
!CustomNewClassGeneratorTests methodsFor:'accessing'!
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    11
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    12
generatorOrRefactoring
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    13
    |generator|
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    14
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    15
    generator := mock mockOf: CustomNewClassGenerator.
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    16
    generator class compileMockMethod: 'description ^ ''some description''. '.
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    17
    ^ generator
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    18
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    19
    "Modified: / 09-11-2014 / 00:36:28 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    20
! !
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    21
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    22
!CustomNewClassGeneratorTests methodsFor:'tests'!
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    23
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    24
test_available_in_context
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    25
    
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    26
    self assert: (generatorOrRefactoring class availableInContext: context)
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    27
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    28
    "Modified: / 09-11-2014 / 00:17:07 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    29
!
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    30
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    31
test_available_in_perspective
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    32
    
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    33
    self assert: (generatorOrRefactoring class availableInPerspective: CustomPerspective classPerspective)
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    34
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    35
    "Modified (comment): / 09-11-2014 / 00:18:00 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    36
!
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    37
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    38
test_is_abstract
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    39
    
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    40
    self assert: CustomNewClassGenerator isAbstract
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    41
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    42
    "Modified (comment): / 09-11-2014 / 00:30:43 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    43
!
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    44
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    45
test_new_class_generated
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    46
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    47
    generatorOrRefactoring
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    48
        compileMockMethod: 'buildForClass: aClass ^ self';
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    49
        newClassName: #DummyClass01.
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    50
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    51
    generatorOrRefactoring executeInContext: context.  
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    52
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    53
    self assertClassExists: #DummyClass01.
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    54
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    55
    "Created: / 09-11-2014 / 00:32:14 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    56
!
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    57
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    58
test_new_class_generated_with_dialog
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    59
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    60
    dialog := mock mockOf: CustomDialog.
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    61
    dialog compileMockMethod: 'requestClassName: aLabel initialAnswer: anAnswer
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    62
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    63
        self assert: aLabel = ''some label''.
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    64
        self assert: anAnswer = ''DummyClass01''.
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    65
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    66
        ^ anAnswer. '.
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    67
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    68
    generatorOrRefactoring
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    69
        compileMockMethod: 'buildForClass: aClass ^ aClass superclassName: #CustomCodeGenerator';
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    70
        compileMockMethod: 'newClassNameLabel ^ ''some label''. ';
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    71
        compileMockMethod: 'defaultClassName ^ ''DummyClass01''. ';
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    72
        dialog: dialog.
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    73
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    74
    context := CustomBrowserContext new.
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    75
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    76
    generatorOrRefactoring executeInContext: context.  
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    77
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    78
    self assertClassExists: #DummyClass01.
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    79
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    80
    "Created: / 09-11-2014 / 00:48:03 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
743
79617bd3dbe1 fix broken tests - CustomDialog >> isAborted behaves like true when actually nil
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 736
diff changeset
    81
    "Modified: / 12-11-2014 / 23:41:08 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
736
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    82
!
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    83
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    84
test_new_class_generated_with_subclass_responsibility
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    85
    | expectedSource |
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    86
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    87
    generatorOrRefactoring
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    88
        compileMockMethod: 'buildForClass: aClass ^ aClass superclassName: #CustomCodeGenerator';
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    89
        newClassName: #DummyClass01.
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    90
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    91
    generatorOrRefactoring executeInContext: context.  
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    92
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    93
    self assertClassExists: #DummyClass01.
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    94
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    95
    expectedSource := 'buildInContext:aCustomContext
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    96
    self shouldImplement'.
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    97
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    98
    self assertMethodSource: expectedSource atSelector: #buildInContext: forClass: (Smalltalk at: #DummyClass01).
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    99
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   100
    "Created: / 09-11-2014 / 00:41:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   101
! !
cbb808f1f9ff tests for CustomNewClassGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   102