--- a/ReadStreamTest.st Tue Dec 18 20:23:31 2001 +0100
+++ b/ReadStreamTest.st Tue Dec 18 20:24:03 2001 +0100
@@ -38,29 +38,15 @@
!ReadStreamTest methodsFor:'helpers'!
-checkPositionFor:testCollection
- "check for correct common behavior of Stream reading"
-
- |stream|
-
- stream := self streamClass on:testCollection.
- self assert:(stream size == testCollection size).
- testCollection size to:1 by:-1 do:[:pos |
- stream position:(pos + startPosition - 1).
- self assert:(stream atEnd not).
- self assert:(stream peek == (testCollection at:pos)).
- self assert:(stream position == (pos + startPosition - 1)).
- self assert:(stream next == (testCollection at:pos)).
- self assert:(stream position == (pos + startPosition))
- ]
-!
-
checkReadStreamFor:testCollection
"check for correct common behavior of Stream reading"
|stream|
- stream := self streamClass on:testCollection.
+ "The stream is opened in a way so that it can be used for both
+ ReadStreams and ReadWriteStreams. Do not use #on:!!"
+
+ stream := self streamClass with:testCollection.
stream reset. "for ReadWriteStreams"
self assert:(stream size == testCollection size).
self assert:(stream isEmpty not).
@@ -87,7 +73,7 @@
!ReadStreamTest methodsFor:'setup'!
setUp
- self streamClass:ReadStream
+ self streamClass:Rel5::ReadStream
!
streamClass:aClass
@@ -108,18 +94,14 @@
self assert:(stream isEmpty)
!
-testPosition
+testOn
+
+ |stream|
- self checkPositionFor:'12345'.
- self checkPositionFor:'12345'asByteArray.
- self checkPositionFor:#[1 2 3 4 5].
- self checkPositionFor:#(1 2 3 4 5).
- self checkPositionFor:#(1 2 3 4 5) asOrderedCollection.
-
-
- "
- (self selector:#testPosition) runCase
- "
+ stream := self streamClass on:'12345'.
+ self assert:(stream position == startPosition).
+ self assert:(stream isEmpty not).
+ self assert:(stream size == 5).
!
testReadStream
@@ -149,10 +131,10 @@
!
testSkipSeparators
- |stream|
+ |stream sep|
stream := self streamClass on:'one two\three' withCRs.
- self assert:(stream skipSeparators == $o).
+ self assert:((sep := stream skipSeparators) == $o).
self assert:(stream nextWord = 'one').
self assert:(stream skipSeparators == $t).
self assert:(stream nextWord = 'two').
@@ -190,6 +172,14 @@
self assert:(stream nextWord = 'three').
self assert:(stream atEnd).
self assert:(stream skipSpaces isNil)
+!
+
+testWith
+
+ |stream|
+
+ stream := self streamClass with:'12345'.
+ self assert:(stream position == (startPosition+5)).
! !
!ReadStreamTest class methodsFor:'documentation'!
--- a/WriteStreamTest.st Tue Dec 18 20:23:31 2001 +0100
+++ b/WriteStreamTest.st Tue Dec 18 20:24:03 2001 +0100
@@ -13,7 +13,7 @@
!WriteStreamTest methodsFor:'setup'!
setUp
- self streamClass:WriteStream
+ self streamClass:Rel5::WriteStream
! !
!WriteStreamTest methodsFor:'tests'!
@@ -26,7 +26,46 @@
self assert:(stream isPositionable).
self assert:(stream isReadable not).
self assert:(stream size == 0).
- self assert:(stream isEmpty)
+ self assert:(stream isEmpty).
+
+ self should:[stream position:startPosition-1] raise:stream class invalidPositionErrorSignal.
+ self should:[stream position:startPosition+1] raise:stream class invalidPositionErrorSignal.
+ self shouldnt:[stream position:startPosition] raise:stream class invalidPositionErrorSignal.
+!
+
+testOn
+
+ |stream|
+
+ stream := self streamClass on:'12345'.
+ self assert:(stream position == startPosition).
+ self assert:(stream isEmpty).
+ self assert:(stream size == 0).
+!
+
+testWith
+
+ super testWith
+!
+
+testWriteString
+
+ |stream|
+
+ stream := self streamClass on:''.
+ self assert:(stream position == startPosition).
+
+ stream nextPut:$1.
+ stream nextPut:$2.
+ stream nextPut:$3.
+ stream nextPut:$4.
+ stream nextPut:$5.
+
+ self assert:(stream position == (5 + startPosition)).
+ self assert:(stream contents = '12345').
+ stream position:0.
+ self assert:(stream contents = '').
+ self should:[stream position:2] raise:stream class invalidPositionErrorSignal.
! !
!WriteStreamTest class methodsFor:'documentation'!