RegressionTests__DirectoryStreamTest.st
author Stefan Vogel <sv@exept.de>
Tue, 11 Jun 2019 10:34:41 +0200
changeset 2321 32ea6329f5ad
parent 2156 6f444eaf1286
permissions -rw-r--r--
class: stx_goodies_regression class changed: #classNamesAndAttributes make classes autoloaded that stc cannot compile (yet)

"{ Package: 'stx:goodies/regression' }"

"{ NameSpace: RegressionTests }"

TestCase subclass:#DirectoryStreamTest
	instanceVariableNames:'testDirName'
	classVariableNames:''
	poolDictionaries:''
	category:'tests-Regression-Streams'
!

!DirectoryStreamTest class methodsFor:'documentation'!

documentation
"
    documentation to be added.

    [author:]
        sr

    [instance variables:]

    [class variables:]

    [see also:]

"
! !

!DirectoryStreamTest methodsFor:'helpers'!

testDirName
    testDirName isNil ifTrue:[
        testDirName := UUID genRandomUUID printString asFilename.
    ].

    ^ testDirName
! !

!DirectoryStreamTest methodsFor:'initialize / release'!

tearDown
    self testDirName recursiveRemove
! !

!DirectoryStreamTest methodsFor:'tests'!

test01
    "basic open for appending."

    |s dir t|

    dir := self testDirName.
    dir asFilename makeDirectory.
    s := DirectoryStream directoryNamed:dir.

    OperatingSystem isMSDOSlike ifTrue:[
        "/ skip '.', '..'
        s nextLine; nextLine.
    ].

    self assert:s atEnd.
    self assert:s nextLine isNil.

    s close.

    self assert:dir asFilename directoryContents size == 0.

    (dir asFilename construct:'file1') writingFileDo:[:s | s nextPutAll:'foo'].

    dir := self testDirName.
    dir asFilename makeDirectory.
    s := DirectoryStream directoryNamed:dir.

    OperatingSystem isMSDOSlike ifTrue:[
        "/ skip '.', '..'
        s nextLine; nextLine.
    ].

    self assert:s atEnd not.
    self assert:(t := s nextLine) = 'file1'.
    self assert:s atEnd.
    self assert:s nextLine isNil.

    s close.

    self assert:dir asFilename directoryContents size == 1.

    "
     self new test01
    "
! !

!DirectoryStreamTest class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
! !