RegressionTests__ExceptionTest.st
author Stefan Vogel <sv@exept.de>
Tue, 06 Apr 2004 15:30:39 +0200
changeset 241 5b8a5dd10628
child 349 8aeec57e44db
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     1
"{ Package: 'exept:regression' }"
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     2
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     4
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     5
TestCase subclass:#ExceptionTest
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     9
	category:'tests-Regression'
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    10
!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    11
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    12
!ExceptionTest class methodsFor:'documentation'!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    13
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    14
documentation
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    15
"
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    16
    documentation to be added.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    17
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    18
    [author:]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    19
        Stefan Vogel (stefan@zwerg)
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    20
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    21
    [instance variables:]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    22
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    23
    [class variables:]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    24
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    25
    [see also:]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    26
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    27
"
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    28
! !
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    29
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    30
!ExceptionTest methodsFor:'initialize / release'!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    31
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    32
setUp
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    33
    "common setup - invoked before testing."
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    34
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    35
    super setUp
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    36
!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    37
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    38
tearDown
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    39
    "common cleanup - invoked after testing."
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    40
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    41
    super tearDown
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    42
! !
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    43
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    44
!ExceptionTest methodsFor:'tests'!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    45
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    46
test1
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    47
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    48
    |result zero|
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    49
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    50
    result := OrderedCollection new.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    51
    zero := 0.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    52
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    53
    [ 0 // zero ] on:ZeroDivide do:[:ex|
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    54
        self assert:(ex signal == ZeroDivide).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    55
        self assert:(ex originator == 0).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    56
        result add:#Error 
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    57
    ].
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    58
    self assert:(result size == 1).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    59
    self assert:(result first == #Error).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    60
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    61
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    62
    "
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    63
     self run:#test1
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    64
     self new test1
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    65
    "
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    66
!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    67
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    68
test10
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    69
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    70
    |result zero|
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    71
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    72
    result := OrderedCollection new.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    73
    zero := 0.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    74
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    75
    [
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    76
        [
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    77
            Warning handle:[:ex | result add:#Warning ] do:[ 2 // zero ].
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    78
        ] on:ZeroDivide do:[:ex |
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    79
            result add:#Error.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    80
            ex reject.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    81
            [
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    82
                self warn:ex description.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    83
            ] on:Warning do:[:ex| result add:#Warning2]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    84
        ]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    85
    ] on:ZeroDivide do:[:ex |
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    86
        result add:#Error2
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    87
    ].
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    88
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    89
    self assert:(result size == 2).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    90
    self assert:(result first == #Error).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    91
    self assert:(result second == #Error2)
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    92
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    93
    "
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    94
     self run:#test10
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    95
     self new test10
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    96
    "
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    97
!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    98
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    99
test2
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   100
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   101
    |result zero|
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   102
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   103
    result := OrderedCollection new.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   104
    zero := 0.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   105
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   106
    self should:[
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   107
        [ 0 // zero ] on:ZeroDivide do:[:ex|
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   108
            result add:#Error.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   109
            0 // zero
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   110
        ].
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   111
    ] raise:ZeroDivide.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   112
    self assert:(result size == 1).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   113
    self assert:(result first == #Error).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   114
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   115
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   116
    "
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   117
     self run:#test2
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   118
     self new test2
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   119
    "
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   120
!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   121
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   122
test3
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   123
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   124
    |result zero|
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   125
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   126
    result := OrderedCollection new.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   127
    zero := 0.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   128
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   129
    self should:[
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   130
        [ 0 // zero ] on:ZeroDivide do:[:ex|
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   131
            result add:#Error.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   132
            [ 0 // zero ] on:ZeroDivide do:[:ex|
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   133
                result add:#Error1.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   134
                ex reject.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   135
            ].
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   136
        ].
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   137
    ] raise:ZeroDivide.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   138
    self assert:(result size == 2).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   139
    self assert:(result first == #Error).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   140
    self assert:(result second == #Error1).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   141
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   142
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   143
    "
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   144
     self run:#test3
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   145
     self new test3
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   146
    "
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   147
! !
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   148
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   149
!ExceptionTest class methodsFor:'documentation'!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   150
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   151
version
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   152
    ^ '$Header$'
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   153
! !