ReadStreamTest.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 148 7f97a9cfc234
child 1499 26a16a04219b
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
131
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     1
"{ Package: 'exept:regression' }"
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     2
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     4
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     5
TestCase subclass:#ReadStreamTest
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:'startPosition streamClass'
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     9
	category:'Tests-Regression'
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    10
!
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    11
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    12
!ReadStreamTest class methodsFor:'documentation'!
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    13
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    14
documentation
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    15
"
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    16
    documentation to be added.
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    17
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    18
    [author:]
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    19
        Stefan Vogel (stefan@zwerg)
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    20
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    21
    [see also:]
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    22
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    23
    [instance variables:]
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    24
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    25
    [class variables:]
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    26
"
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    27
!
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    28
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    29
history
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    30
    "Created: / 13.12.2001 / 17:13:17 / stefan"
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    31
! !
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    32
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    33
!ReadStreamTest methodsFor:'accessing'!
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    34
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    35
streamClass
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    36
    ^ streamClass
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    37
! !
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    38
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    39
!ReadStreamTest methodsFor:'helpers'!
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    40
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    41
checkReadStreamFor:testCollection 
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    42
    "check for correct common behavior of Stream reading"
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    43
148
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    44
    "The stream is opened in a way so that it can be used for both
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    45
     ReadStreams and ReadWriteStreams. Do not use #on:!!"
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    46
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    47
    ^ self checkReadStreamFor:testCollection useWith:true
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    48
!
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    49
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    50
checkReadStreamFor:testCollection useWith:useWith
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    51
    "check for correct common behavior of Stream reading"
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    52
131
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    53
    |stream|
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    54
137
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
    55
    "The stream is opened in a way so that it can be used for both
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
    56
     ReadStreams and ReadWriteStreams. Do not use #on:!!"
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
    57
148
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    58
    useWith ifTrue:[
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    59
        stream := self streamClass with:testCollection.
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    60
    ] ifFalse:[
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    61
        stream := self streamClass on:testCollection.
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    62
    ].
131
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    63
    stream reset. "for ReadWriteStreams"
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    64
    self assert:(stream size == testCollection size).
148
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    65
    testCollection size == 0 ifTrue:[
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    66
        self assert:(stream isEmpty).
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    67
    ] ifFalse:[
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    68
        self assert:(stream isEmpty not).
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    69
    ].
131
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    70
    testCollection 
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    71
        keysAndValuesDo:[:pos :element | 
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    72
            self assert:(stream atEnd not).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    73
            self assert:(stream peek == element).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    74
            self assert:(stream position == (pos + startPosition - 1)).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    75
            self assert:(stream next == element).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    76
            self assert:(stream position == (pos + startPosition))
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    77
        ].
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    78
    self assert:(stream atEnd).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    79
    self assert:(stream peek isNil).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    80
    self assert:(stream next isNil).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    81
    streamClass endOfStreamSignal 
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    82
        handle:[:ex | ex return]
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    83
        do:[
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    84
            self should:(stream next) raise:streamClass endOfStreamSignal.
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    85
            self should:(stream peek) raise:streamClass endOfStreamSignal.
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    86
            self shouldnt:(stream peekOrNil) raise:streamClass endOfStreamSignal
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    87
        ]
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    88
! !
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    89
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    90
!ReadStreamTest methodsFor:'setup'!
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    91
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    92
setUp
148
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
    93
    self streamClass:Rel5::ReadStream.
131
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    94
!
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    95
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    96
streamClass:aClass 
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    97
    streamClass := aClass.
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    98
    startPosition := streamClass zeroPosition
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    99
! !
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   100
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   101
!ReadStreamTest methodsFor:'tests'!
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   102
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   103
testBasic
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   104
    |stream|
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   105
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   106
    stream := self streamClass on:''.
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   107
    self assert:(stream isReadable).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   108
    self assert:(stream isPositionable).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   109
    self assert:(stream isWritable not).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   110
    self assert:(stream size == 0).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   111
    self assert:(stream isEmpty)
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   112
!
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   113
137
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   114
testOn
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   115
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   116
    |stream|
131
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   117
137
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   118
    stream := self streamClass on:'12345'.
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   119
    self assert:(stream position == startPosition).
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   120
    self assert:(stream isEmpty not).
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   121
    self assert:(stream size == 5).
131
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   122
!
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   123
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   124
testReadStream
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   125
148
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   126
   self checkReadStreamFor:''.
131
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   127
   self checkReadStreamFor:'12345'.
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   128
   self checkReadStreamFor:'12345'asByteArray.
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   129
   self checkReadStreamFor:#[1 2 3 4 5].
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   130
   self checkReadStreamFor:#(1 2 3 4 5).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   131
   self checkReadStreamFor:#(1 2 3 4 5) asOrderedCollection.
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   132
148
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   133
   self checkReadStreamFor:''                                   useWith:false.
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   134
   self checkReadStreamFor:'12345'                              useWith:false.
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   135
   self checkReadStreamFor:'12345'asByteArray                   useWith:false.
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   136
   self checkReadStreamFor:#[1 2 3 4 5]                         useWith:false.
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   137
   self checkReadStreamFor:#(1 2 3 4 5)                         useWith:false.
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   138
   self checkReadStreamFor:#(1 2 3 4 5) asOrderedCollection     useWith:false.
131
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   139
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   140
   "
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   141
    (self selector:#testReadStream) runCase
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   142
   "
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   143
!
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   144
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   145
testSkipAny
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   146
    |stream skipChars|
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   147
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   148
    stream := self streamClass 
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   149
                on:'some numbers1234with\in other99 stuff' withCRs.
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   150
    skipChars := 'abcdefghijklmnopqrstuvwxyz\ ' withCRs.
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   151
    self assert:(stream skipAny:skipChars) == $1.
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   152
    self assert:(Integer readFrom:stream) == 1234.
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   153
    self assert:(stream skipAny:skipChars) == $9.
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   154
    self assert:(Integer readFrom:stream) == 99
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   155
!
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   156
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   157
testSkipSeparators
137
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   158
    |stream sep|
131
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   159
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   160
    stream := self streamClass on:'one      two\three' withCRs.
137
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   161
    self assert:((sep := stream skipSeparators) == $o).
131
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   162
    self assert:(stream nextWord = 'one').
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   163
    self assert:(stream skipSeparators == $t).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   164
    self assert:(stream nextWord = 'two').
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   165
    self assert:(stream skipSeparators == $t).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   166
    self assert:(stream nextWord = 'three').
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   167
    self assert:(stream atEnd).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   168
    self assert:(stream skipSeparators isNil)
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   169
!
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   170
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   171
testSkipSeparatorsExceptCR
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   172
    |stream|
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   173
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   174
    stream := self streamClass on:'one      two\three' withCRs.
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   175
    self assert:(stream skipSeparatorsExceptCR == $o).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   176
    self assert:(stream nextWord = 'one').
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   177
    self assert:(stream skipSeparatorsExceptCR == $t).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   178
    self assert:(stream nextWord = 'two').
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   179
    self assert:(stream skipSeparatorsExceptCR == Character cr).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   180
    self assert:(stream next = Character cr).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   181
    self assert:(stream nextWord = 'three').
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   182
    self assert:(stream atEnd).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   183
    self assert:(stream skipSeparatorsExceptCR isNil)
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   184
!
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   185
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   186
testSkipSpaces
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   187
    |stream|
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   188
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   189
    stream := self streamClass on:'one      two\three' withCRs.
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   190
    self assert:(stream skipSpaces == $o).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   191
    self assert:(stream nextWord = 'one').
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   192
    self assert:(stream skipSpaces == $t).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   193
    self assert:(stream nextWord = 'two').
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   194
    self assert:(stream skipSpaces == Character cr).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   195
    self assert:(stream next = Character cr).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   196
    self assert:(stream nextWord = 'three').
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   197
    self assert:(stream atEnd).
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   198
    self assert:(stream skipSpaces isNil)
137
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   199
!
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   200
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   201
testWith
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   202
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   203
    |stream|
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   204
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   205
    stream := self streamClass with:'12345'.
917d1e897a98 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 131
diff changeset
   206
    self assert:(stream position == (startPosition+5)).
148
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   207
!
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   208
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   209
xxtestReadBinary
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   210
    |stream byte|
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   211
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   212
    stream := self streamClass on:'hello'.
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   213
    stream binary.
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   214
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   215
    self assert:(byte := stream next) == $h asciiValue.
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   216
    self assert:(byte := stream next) == $e asciiValue.
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   217
    self assert:(byte := stream next) == $l asciiValue.
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   218
    self assert:(byte := stream next) == $l asciiValue.
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   219
    self assert:(byte := stream next) == $o asciiValue.
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   220
    self assert:(stream atEnd)
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   221
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   222
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   223
   "
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   224
    (self selector:#testReadBinary) runCase
7f97a9cfc234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 137
diff changeset
   225
   "
131
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   226
! !
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   227
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   228
!ReadStreamTest class methodsFor:'documentation'!
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   229
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   230
version
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   231
    ^ '$Header$'
0977c63d056b initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   232
! !