RegressionTests__CachedValueTest.st
author Jan Vrany <jan.vrany@labware.com>
Mon, 08 Mar 2021 11:25:35 +0000
branchjv
changeset 2594 e5f39c0a5bd6
parent 1567 e17701a073f9
permissions -rwxr-xr-x
Improve UTF8 read/write tests in `ChangeSetTests`

"{ Package: 'stx:goodies/regression' }"

"{ NameSpace: RegressionTests }"

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


!CachedValueTest methodsFor:'test'!

test01_validityDuration
        |cv didCompute|

        didCompute := false.
        cv := CachedValue compute:[didCompute := true. Date today dayOfWeek] validityDuration:(0.5 seconds).
        self assert:(cv isValid not).
        self assert:(didCompute not).
        self assert:(cv value = Date today dayOfWeek).
        self assert:(cv isValid).
        self assert:(didCompute).

        Delay waitForSeconds:1.
        didCompute := false.
        self assert:(cv isValid not).
        self assert:(didCompute not).
        self assert:(cv value = Date today dayOfWeek).
        self assert:(cv isValid).
        self assert:(didCompute).
!

test02_expirationTime
        |cv exceptionRaised|

        cv := CachedValue value:123 expirationTime:(Timestamp now + 0.5 seconds).
        self assert:(cv isValid).
        Delay waitForSeconds:1.
        self assert:(cv isValid not).

        exceptionRaised := false.
        CachedValue::ValueExpiredException handle:[:ex |
            exceptionRaised := true.
        ] do:[
            cv value
        ].
        self assert:exceptionRaised.
! !

!CachedValueTest class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
! !