initial checkin
authorClaus Gittinger <cg@exept.de>
Tue, 18 Dec 2001 19:48:33 +0100
changeset 135 2cbca29e95be
parent 134 c0d7256b8c00
child 136 b9507a9df2b6
initial checkin
RegressionTests__ExternalStreamTest.st
--- /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$'
+! !