RegressionTests__CachedValueTest.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 1447 2351db93aa5b
child 1567 e17701a073f9
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 704
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
704
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#CachedValueTest
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:'subProcesses'
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'tests-Regression'
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!CachedValueTest methodsFor:'test'!
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
test01_validityDuration
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
        |cv didCompute|
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
        didCompute := false.
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
        cv := CachedValue compute:[didCompute := true. Date today dayOfWeek] validityDuration:(0.5 seconds).
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
        self assert:(cv isValid not).
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
        self assert:(didCompute not).
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
        self assert:(cv value = Date today dayOfWeek).
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
        self assert:(cv isValid).
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
        self assert:(didCompute).
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
        Delay waitForSeconds:1.
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
        didCompute := false.
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
        self assert:(cv isValid not).
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
        self assert:(didCompute not).
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
        self assert:(cv value = Date today dayOfWeek).
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
        self assert:(cv isValid).
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
        self assert:(didCompute).
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
!
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
test02_expirationTime
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
        |cv exceptionRaised|
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
        cv := CachedValue value:123 expirationTime:(Timestamp now + 0.5 seconds).
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
        self assert:(cv isValid).
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
        Delay waitForSeconds:1.
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
        self assert:(cv isValid not).
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
        exceptionRaised := false.
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
        CachedValue::ValueExpiredException handle:[:ex |
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
            exceptionRaised := true.
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
        ] do:[
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
            cv value
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
        ].
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
        self assert:exceptionRaised.
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
! !
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
!CachedValueTest class methodsFor:'documentation'!
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
version
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    ^ '$Header$'
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
!
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
version_CVS
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    ^ '$Header$'
42bc8a45415b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
! !