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

"{ Package: 'exept:regression' }"

"{ NameSpace: RegressionTests }"

TestCase subclass:#ExceptionTest
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'tests-Regression'
!

!ExceptionTest class methodsFor:'documentation'!

documentation
"
    documentation to be added.

    [author:]
        Stefan Vogel (stefan@zwerg)

    [instance variables:]

    [class variables:]

    [see also:]

"
! !

!ExceptionTest methodsFor:'initialize / release'!

setUp
    "common setup - invoked before testing."

    super setUp
!

tearDown
    "common cleanup - invoked after testing."

    super tearDown
! !

!ExceptionTest methodsFor:'tests'!

test1

    |result zero|

    result := OrderedCollection new.
    zero := 0.

    [ 0 // zero ] on:ZeroDivide do:[:ex|
        self assert:(ex signal == ZeroDivide).
        self assert:(ex originator == 0).
        result add:#Error 
    ].
    self assert:(result size == 1).
    self assert:(result first == #Error).


    "
     self run:#test1
     self new test1
    "
!

test10

    |result zero|

    result := OrderedCollection new.
    zero := 0.

    [
        [
            Warning handle:[:ex | result add:#Warning ] do:[ 2 // zero ].
        ] on:ZeroDivide do:[:ex |
            result add:#Error.
            ex reject.
            [
                self warn:ex description.
            ] on:Warning do:[:ex| result add:#Warning2]
        ]
    ] on:ZeroDivide do:[:ex |
        result add:#Error2
    ].

    self assert:(result size == 2).
    self assert:(result first == #Error).
    self assert:(result second == #Error2)

    "
     self run:#test10
     self new test10
    "
!

test2

    |result zero|

    result := OrderedCollection new.
    zero := 0.

    self should:[
        [ 0 // zero ] on:ZeroDivide do:[:ex|
            result add:#Error.
            0 // zero
        ].
    ] raise:ZeroDivide.
    self assert:(result size == 1).
    self assert:(result first == #Error).


    "
     self run:#test2
     self new test2
    "
!

test3

    |result zero|

    result := OrderedCollection new.
    zero := 0.

    self should:[
        [ 0 // zero ] on:ZeroDivide do:[:ex|
            result add:#Error.
            [ 0 // zero ] on:ZeroDivide do:[:ex|
                result add:#Error1.
                ex reject.
            ].
        ].
    ] raise:ZeroDivide.
    self assert:(result size == 2).
    self assert:(result first == #Error).
    self assert:(result second == #Error1).


    "
     self run:#test3
     self new test3
    "
! !

!ExceptionTest class methodsFor:'documentation'!

version
    ^ '$Header$'
! !