--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/RegressionTests__ExternalStreamTest.st Tue Dec 18 19:48:33 2001 +0100
@@ -0,0 +1,144 @@
+"{ Package: 'exept:regression' }"
+
+"{ NameSpace: Rel5 }"
+
+TestCase subclass:#ExternalStreamTest
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Streams-New-Tests'
+!
+
+
+!ExternalStreamTest methodsFor:'tests'!
+
+createWithSize10:fileName
+ "helper"
+
+ (fileName asFilename exists) ifTrue:[
+ fileName asFilename delete
+ ].
+ fileName asFilename writeStream
+ nextPutAll:'1234567890';
+ close.
+ self assert:(fileName asFilename exists).
+ self assert:(fileName asFilename fileSize == 10).
+
+ "
+ self new createWithSize10:'xxx1'
+ "
+!
+
+testPosition1
+ |h s ch|
+
+ self createWithSize10:'xxx3'.
+
+ h := OperatingSystem openFileForRead:'xxx3'.
+ s := ExternalReadStream on:h.
+
+ self assert:( s atEnd not ).
+ self assert:( s position == 0 ).
+
+ ch := s next.
+ self assert:( ch = $1 ).
+ self assert:( s position == 1 ).
+
+ s skip:1.
+ self assert:( s position == 2 ).
+ self assert:( s peek = $3 ).
+ self assert:( s position == 2 ).
+ s skip:1.
+ self assert:( s position == 3 ).
+ self assert:( s peek = $4 ).
+ self assert:( s position == 3 ).
+
+ s close.
+
+ 'xxx3' asFilename delete.
+
+ "
+ self new testPosition1
+ "
+!
+
+testRead1
+ "open an existing file for reading; should read 10 chars"
+
+ |h s nBytesRead|
+
+ self createWithSize10:'xxx3'.
+
+ h := OperatingSystem openFileForRead:'xxx3'.
+ s := ExternalReadStream on:h.
+
+ '1234567890' do:[:eachExpected |
+ self assert:( s next == eachExpected ).
+ ].
+
+ s close.
+
+ 'xxx3' asFilename delete.
+
+ "
+ self new testRead1
+ "
+!
+
+testRead2
+ "open an existing file for reading; should read 10 chars"
+
+ |h s|
+
+ self createWithSize10:'xxx3'.
+
+ h := OperatingSystem openFileForRead:'xxx3'.
+ s := ExternalReadStream on:h.
+ s binary.
+
+ '1234567890' do:[:eachExpected |
+ |eachRead|
+
+ eachRead := s next.
+ self assert:( eachRead == eachExpected asciiValue ).
+ ].
+
+ s close.
+
+ 'xxx3' asFilename delete.
+
+ "
+ self new testRead2
+ "
+!
+
+testRead3
+ "open an existing file for reading; should read 10 chars"
+
+ |h s bytesRead|
+
+ self createWithSize10:'xxx3'.
+
+ h := OperatingSystem openFileForRead:'xxx3'.
+ s := ExternalReadStream on:h.
+
+ self assert:( s atEnd not ).
+
+ bytesRead := s next:10.
+ self assert:( bytesRead = '1234567890' ).
+ self assert:( s atEnd ).
+
+ s close.
+
+ 'xxx3' asFilename delete.
+
+ "
+ self new testRead3
+ "
+! !
+
+!ExternalStreamTest class methodsFor:'documentation'!
+
+version
+ ^ '$Header$'
+! !