*** empty log message ***
authorStefan Vogel <sv@exept.de>
Tue, 18 Dec 2001 20:24:03 +0100
changeset 137 917d1e897a98
parent 136 b9507a9df2b6
child 138 cf36235e4ce0
*** empty log message ***
ReadStreamTest.st
WriteStreamTest.st
--- 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'!