tests/RGSliceTest.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 02 Sep 2015 09:18:30 +0100
changeset 4 90637b709fa9
parent 0 43cb9f3e345e
permissions -rw-r--r--
Added RGAbstractContainer>>addElements:

"{ Package: 'stx:goodies/ring/tests' }"

"{ NameSpace: Smalltalk }"

TestCase subclass:#RGSliceTest
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'Ring-Core-Containers-Tests'
!

RGSliceTest comment:'SUnit tests for slices'
!

!RGSliceTest methodsFor:'testing'!

testAddingClasses
    | newSlice newClass newTrait  |
    
    newSlice:= RGSlice named: 'Foo'.
    newClass:= RGClassDefinition named: #OrderedCollection.
    newTrait:=  RGTraitDefinition named: #TSortable.
    
    newSlice addClassNamed: #SortedCollection;
             addClass: newClass;
             addTrait: newTrait.
    
    self assert: (newSlice classes size = 3).
    self assert: (newSlice traits size = 1).
    self assert: (newSlice includesClassNamed: #OrderedCollection).
    self assert: ((newSlice classNamed: #OrderedCollection) == newClass).
    self assert: ((newSlice traitNamed: #TSortable) == newTrait).
    self assert: (newClass isIncludedInContainer: newSlice).
    self assert: (newTrait isIncludedInContainer: newSlice).
    self assert: (newSlice allClasses size = 3).
    self assert: (newSlice allTraits size = 1).
    self assert: (newClass parent = newSlice).
    self assert: (newClass rootEnvironment = newSlice environment)
!

testNestingContainers
    | newSlice newSlice2 newClass newTrait newClass2 |
    
    newSlice:= RGSlice named: #Root.
    newSlice2:= RGSlice named: #Child.
    newSlice2 environment: newSlice.
    
    newSlice addClassNamed: #OrderedCollection.
    newClass:= newSlice classNamed: #OrderedCollection.
    newSlice addTraitNamed: #TSortable.
    newTrait:= newSlice traitNamed: #TSortable.
    newSlice2 addClassNamed: #SortedCollection.
    newClass2:= newSlice classNamed: #SortedCollection.
    
    self assert: (newSlice classes size = 2).
    self assert: (newSlice2 classes size = 1).
    self assert: (newSlice2 environment = newSlice).
    self assert: (newSlice2 rootEnvironment = newSlice environment)
!

testNewSlice
    | newSlice |
    
    newSlice:= RGSlice named: 'Foo'.
    
    self assert: (newSlice isSlice).
    self assert: (newSlice classes isEmpty).
    self assert: (newSlice environment == Smalltalk globals)
! !