--- a/RegressionTests__StreamTests.st Wed Nov 19 14:50:24 2014 +0100
+++ b/RegressionTests__StreamTests.st Thu Dec 04 17:35:03 2014 +0100
@@ -267,6 +267,111 @@
self run:#test05_readAlphanumericWords
self new test05_readAlphanumericWords
"
+!
+
+test06_writeStream
+ |s|
+
+ "0123456789012345678901"
+ s := WriteStream on:(String new).
+ self assert:(s position == 0).
+ self assert:(s readLimit == 0).
+ s nextPut:$a.
+ self assert:(s position == 1).
+ self assert:(s contents = 'a').
+ self assert:(s readLimit == 1).
+
+ s nextPut:$b.
+ self assert:(s position == 2).
+ self assert:(s contents = 'ab').
+ self assert:(s readLimit == 2).
+
+ s nextPut:$c.
+ self assert:(s position == 3).
+ "/ self assert:(s contents = 'abc').
+ self assert:(s readLimit == 3).
+
+ "/ fill to right before it has to resize
+ s position to:(s collection size) do:[:i | s nextPut:$0+(i\\10)].
+ self assert:(s contents = ('abc345678901234567890' copyTo:s size)).
+
+ "
+ self run:#test06_writeStream
+ self new test06_writeStream
+ "
+!
+
+test07_writeStream
+ |s|
+
+ "0123456789012345678901"
+ s := '' writeStream.
+ s nextPut:$a.
+ self assert:(s last) == $a.
+ self assert:(s last:1) = 'a'.
+ s nextPut:$b.
+ self assert:(s last) == $b.
+ self assert:(s last:1) = 'b'.
+ self assert:(s last:2) = 'ab'.
+ s nextPut:$c.
+ self assert:(s last) == $c.
+ self assert:(s last:1) = 'c'.
+ self assert:(s last:2) = 'bc'.
+ self assert:(s last:3) = 'abc'.
+
+ s nextPutAll:'123'.
+ self assert:(s last) == $3.
+ self assert:(s last:1) = '3'.
+ self assert:(s last:2) = '23'.
+ self assert:(s last:3) = '123'.
+
+ s next:1 put:$4.
+ self assert:(s last) == $4.
+ self assert:(s last:1) = '4'.
+ self assert:(s last:2) = '34'.
+ self assert:(s last:3) = '234'.
+ self assert:(s size == 7).
+
+ s next:3 put:$5.
+ self assert:(s last) == $5.
+ self assert:(s last:1) = '5'.
+ self assert:(s last:2) = '55'.
+ self assert:(s last:3) = '555'.
+ self assert:(s last:4) = '4555'.
+ self assert:(s size == 10).
+
+ "
+ self run:#test07_writeStream
+ self new test07_writeStream
+ "
+!
+
+test08_writeStream
+ |s|
+
+ "0123456789012345678901"
+ s := '' writeStream.
+ s nextPutAll:'hello '.
+ s nextPutAll:'1234world012345' startingAt:5 to:9.
+ self assert:( s contents = 'hello world' ).
+
+ "
+ self run:#test08_writeStream
+ self new test08_writeStream
+ "
+!
+
+test09_writeStreamErrors
+ |s|
+
+ s := '' writeStream.
+ self should:[ s nextPutAll:nil ] raise:Error.
+ self assert:( s contents = '' ).
+
+ "
+ self run:#test09_writeStreamErrors
+ self new test09_writeStreamErrors
+ "
! !
!StreamTests class methodsFor:'documentation'!