- Xtreams::FileReadingWritingTest
class: Xtreams::FileReadingWritingTest
added: #version_HG
- stx_goodies_xtreams_terminals_tests
class: stx_goodies_xtreams_terminals_tests
changed: #classNamesAndAttributes
- Xtreams::BlockClosureReadingWritingTest
class: Xtreams::BlockClosureReadingWritingTest
added: #version_HG
- Xtreams::PipeReadingWritingTest
class: Xtreams::PipeReadingWritingTest
added: #version_HG
- Xtreams::BufferReadingWritingTest
class: Xtreams::BufferReadingWritingTest
added: #version_HG
- Xtreams::BlockClosureTest
class: Xtreams::BlockClosureTest
added: #version_HG
- Xtreams::RingBufferReadingWritingTest
class: Xtreams::RingBufferReadingWritingTest
added: #version_HG
- Xtreams::BufferedWriteStreamTest
class: Xtreams::BufferedWriteStreamTest
added: #version_HG
- Xtreams::CollectionReadingWritingTest
class: Xtreams::CollectionReadingWritingTest
added: #version_HG
- Xtreams::SocketReadingWritingTest
class: Xtreams::SocketReadingWritingTest
added: #version_HG
- Xtreams::ElasticBufferReadingWritingTest
class: Xtreams::ElasticBufferReadingWritingTest
added: #version_HG
"{ Package: 'stx:goodies/xtreams/terminals/tests' }"
"{ NameSpace: Xtreams }"
FiniteReadingWritingTests subclass:#CollectionReadingWritingTest
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'Xtreams-Terminals-Tests'
!
!CollectionReadingWritingTest methodsFor:'initialize-release'!
input
^input ifNil: [ input := (self output close; terminal) reading ]
!
output
^output ifNil: [ output := ByteArray new writing ]
! !
!CollectionReadingWritingTest methodsFor:'tests - core'!
testInsert
self output write: #[ 1 2 3 4 7 8 9 0 ].
self output -- 4.
self output insert: #[ 5 6 ].
self output -= 0. "Have to seek to the end otherwise output gets truncated when we close it"
self assert: (self input read: 10) = #[ 1 2 3 4 5 6 7 8 9 0 ]
!
testReadWriteLargeAmount
| data |
1 to: 10 do: [:each |
output := input := nil.
self output put: 1. self assert: self input get = 1].
#( 64 1024 2048 4096 8192 ) do: [:dataSize |
output := input := nil.
data := ByteArray new: dataSize.
1 to: data size do: [:i | data at: i put: (i - 1) \\ 256].
self timeout: 1000 milliseconds
server: [1 to: 10 do: [:each | self output write: data]. true]
client: [(1 to: 10) inject: true into: [:pass :each | pass and: [(self input read: data size) = data]]]]
!
testWriteFromCollectionAt
| data |
data := #[1 2 3 4 5 6 7].
self assert: (self output write: 4 from: data at: 1) = 4.
self assert: (self output write: 3 from: data at: 5) = 3.
self assert: (self input read: 4) = (data first: 4).
self assert: (self input read: 3) = (data last: 3)
!
testWriteFromStream
| data |
data := #[ 1 2 3 4 ] reading.
self assert: (self output write: 3 from: data) = 3.
self assert: (self output write: 1 from: data) = 1.
self assert: (self input read: 3) = #[ 1 2 3 ].
self assert: self input get = 4.
self assert: (
[ self output write: 2 from: data. false
] on: Incomplete do: [ :eos |
eos count = 0 ])
! !
!CollectionReadingWritingTest class methodsFor:'documentation'!
version_HG
^ '$Changeset: <not expanded> $'
!
version_SVN
^ '$Id$'
! !