"{ 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)
! !