RegressionTests__CacheDictionaryTest.st
author Claus Gittinger <cg@exept.de>
Thu, 17 May 2018 23:12:08 +0200
changeset 1933 7d58854e2de3
parent 1931 bdc99c92a5a6
child 1939 9a6e4956515f
permissions -rw-r--r--
initial checkin class: RegressionTests::CacheDictionaryTest added: #testAdd #testAddRemove class: RegressionTests::CacheDictionaryTest class

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

"{ NameSpace: RegressionTests }"

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


!CacheDictionaryTest methodsFor:'testing'!

testAdd
    "(self run: #testAdd)"

    | dict |
    dict := CacheDictionary new:4.
    self assert: (dict isEmpty).

    dict add:(1->'one').
    self assert: (dict size == 1).

    dict add:(2->'two').
    self assert: (dict size == 2).

    dict add:(3->'three').
    self assert: (dict size == 3).

    dict add:(4->'four').
    self assert: (dict size == 4).

    dict add:(5->'five').
    self assert: (dict size == 5).

    dict add:(6->'six').
    self assert: (dict size == 6).

    dict add:(7->'seven').
    self assert: (dict size == 7).

    dict add:(8->'eight').
    self assert: (dict size == 7).

    dict add:(9->'nine').
    self assert: (dict size == 7).
!

testAddRemove
    "(self run: #testAddRemove)"

    | dict notThere wasRemoved toRemove keysBefore keysAfter|

    dict := CacheDictionary new:4.
    self assert: (dict isEmpty).

    1 to:50 do:[:i | dict at:i put:i printString].
    self assert: (dict size == 7).

    self assert:(dict includesKey:17) not.
    
    notThere := false.    
    wasRemoved := (dict removeKey:17 ifAbsent:[ notThere := true. nil ]) notNil.
    self assert:notThere.
    self assert:wasRemoved not.
    self assert:(dict size == 7).

    toRemove := dict keys first.
    self assert:(dict includesKey:toRemove).
    notThere := false.    
    wasRemoved := (dict removeKey:toRemove ifAbsent:[ notThere := true. nil ]) notNil.
    self assert:notThere not.
    self assert:wasRemoved.
    self assert:(dict size == 6).

    keysBefore := dict keys copy.
    self assert:(dict size == keysBefore size).
    dict add:(99->'99').
    keysAfter := dict keys copy.
    self assert:(dict size == keysAfter size).
! !

!CacheDictionaryTest class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
! !