SystemOrganization addCategory: #'FS-Tests-Core'! TestCase subclass: #FSDirectoryEntryTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSDirectoryEntryTest methodsFor: 'accessing' stamp: 'cwp 2/18/2011 17:04'! entry ^ FSLocator image resolve entry! ! !FSDirectoryEntryTest methodsFor: 'tests' stamp: 'StephaneDucasse 1/27/2011 22:26'! testCreationTimeIsADateAndTimeInstance "While creation is the message sent to a directory entry, creation returns a DateAndTime object" | creation | creation := self entry creation. self assert: creation class = DateAndTime. ! ! !FSDirectoryEntryTest methodsFor: 'tests' stamp: 'cwp 2/18/2011 16:57'! testIsDirectory | ref entry | ref := FSLocator imageDirectory resolve. entry := ref entry. self assert: entry isDirectory! ! !FSDirectoryEntryTest methodsFor: 'tests' stamp: 'StephaneDucasse 1/27/2011 22:26'! testIsFile self assert: self entry isFile. self deny: self entry isDirectory! ! !FSDirectoryEntryTest methodsFor: 'tests' stamp: 'cwp 11/15/2009 22:10'! testIsNotDirectory self deny: self entry isDirectory! ! !FSDirectoryEntryTest methodsFor: 'tests' stamp: 'cwp 2/18/2011 17:01'! testIsNotFile | ref | ref := FSLocator imageDirectory resolve. self deny: ref entry isFile! ! !FSDirectoryEntryTest methodsFor: 'tests' stamp: 'StephaneDucasse 1/27/2011 22:27'! testModificationTimeIsADateAndTimeInstance "While modification is the message sent to a directory entry, modification returns a DateAndTime object" | modification | modification := self entry modification. self assert: modification class = DateAndTime. ! ! !FSDirectoryEntryTest methodsFor: 'tests' stamp: 'cwp 2/18/2011 17:05'! testReference | ref entry | ref := FSLocator image resolve. entry := ref entry. self assert: entry reference = ref! ! !FSDirectoryEntryTest methodsFor: 'tests' stamp: 'cwp 11/15/2009 22:05'! testSize self assert: self entry size isInteger! ! TestCase subclass: #FSFilesystemTest instanceVariableNames: 'filesystem toDelete' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSFilesystemTest classSide methodsFor: 'testing' stamp: 'cwp 7/20/2009 08:56'! isAbstract ^ self name = #FSFilesystemTest! ! !FSFilesystemTest classSide methodsFor: 'accessing' stamp: 'lr 7/13/2010 14:01'! packageNamesUnderTest ^ #('Filesystem')! ! !FSFilesystemTest classSide methodsFor: 'testing' stamp: 'cwp 7/20/2009 08:56'! shouldInheritSelectors ^ true ! ! !FSFilesystemTest methodsFor: 'initialize-release' stamp: 'cwp 7/20/2009 07:31'! createFilesystem self subclassResponsibility ! ! !FSFilesystemTest methodsFor: 'initialize-release' stamp: 'cwp 10/10/2009 17:35'! delete: anObject toDelete add: (filesystem resolve: anObject)! ! !FSFilesystemTest methodsFor: 'initialize-release' stamp: 'cwp 8/23/2009 23:10'! setUp filesystem := self createFilesystem. toDelete := OrderedCollection new.! ! !FSFilesystemTest methodsFor: 'initialize-release' stamp: 'cwp 8/23/2009 23:09'! tearDown toDelete do: [:path | filesystem delete: path]! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 3/29/2011 16:34'! testChangeDirectory | cwd | filesystem workingDirectoryPath: FSPath / 'plonk'. filesystem changeDirectory: 'griffle'. cwd := filesystem workingDirectoryPath. self assert: cwd isAbsolute. self assert: (cwd at: 1) = 'plonk'. self assert: (cwd at: 2) = 'griffle'. ! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 3/29/2011 16:34'! testChangeDirectoryString | cwd | filesystem workingDirectoryPath: (FSPath / 'plonk'). filesystem changeDirectory: 'griffle'. cwd := filesystem workingDirectoryPath. self assert: cwd isAbsolute. self assert: (cwd at: 1) = 'plonk'. self assert: (cwd at: 2) = 'griffle'! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:19'! testChildrenAt | directory entries | directory := FSPath * 'plonk'. filesystem createDirectory: directory. filesystem createDirectory: directory / 'griffle'. filesystem createDirectory: directory / 'bint'. self delete: directory / 'griffle'. self delete: directory / 'bint'. self delete: directory. entries := filesystem childrenAt: directory. self assert: entries size = 2. entries do: [ :ea | self assert: (ea isKindOf: FSPath). self assert: ea parent = (filesystem resolve: directory). self assert: (#('griffle' 'bint' ) includes: ea basename) ]! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'lr 7/13/2010 15:19'! testCopy | out in contents | [ out := filesystem writeStreamOn: 'gooly'. [ out nextPutAll: 'gooly' ] ensure: [ out close ]. filesystem copy: 'gooly' to: 'plonk'. in := filesystem readStreamOn: 'plonk'. contents := [ in contents asString ] ensure: [ in close ]. self assert: contents = 'gooly' ] ensure: [ filesystem delete: 'gooly'; delete: 'plonk' ]! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 11/14/2009 23:37'! testCopyDestExists | out | [out := (filesystem open: 'gooly' writable: true) writeStream. [out nextPutAll: 'gooly'] ensure: [out close]. out := filesystem open: 'plonk' writable: true. out close. self should: [filesystem copy: 'gooly' to: 'plonk'] raise: FSFileExists] ensure: [filesystem delete: 'gooly'; delete: 'plonk']! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 11/14/2009 23:36'! testCopySourceDoesntExist self should: [filesystem copy: 'plonk' to: 'griffle'] raise: FSFileDoesNotExist! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 11/17/2009 16:56'! testCreateDirectoryExists | path | path := FSPath * 'griffle'. self delete: path. filesystem createDirectory: path. self should: [filesystem createDirectory: path] raise: FSDirectoryExists. ! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 11/17/2009 16:53'! testCreateDirectoryNoParent | path | path := FSPath * 'griffle' / 'nurp'. self should: [filesystem createDirectory: path] raise: FSDirectoryDoesNotExist. ! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 7/20/2009 07:30'! testDefaultWorkingDirectory self assert: filesystem workingDirectory isRoot! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 7/20/2009 07:30'! testDelimiter self assert: filesystem delimiter isCharacter! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:19'! testDirectory | path | path := FSPath * 'plonk'. filesystem createDirectory: path. self assert: (filesystem exists: path). self assert: (filesystem isDirectory: path). self deny: (filesystem isFile: path). filesystem delete: path. self deny: (filesystem exists: path)! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'lr 7/13/2010 16:19'! testEnsureDirectory | path | path := FSPath * 'plonk'. self delete: path. filesystem ensureDirectory: path. self assert: (filesystem isDirectory: path).! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'lr 7/13/2010 16:20'! testEnsureDirectoryCreatesParent | path | path := FSPath * 'plonk' / 'griffle'. self delete: path. self delete: path parent. self shouldnt: [filesystem ensureDirectory: path] raise: FSFilesystemError. self assert: (filesystem isDirectory: (FSPath * 'plonk')). self assert: (filesystem isDirectory: path). ! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'lr 7/13/2010 16:19'! testEnsureDirectoryExists | path | path := FSPath * 'plonk'. self delete: path. filesystem createDirectory: path. self shouldnt: [filesystem ensureDirectory: path] raise: FSFilesystemError. ! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:19'! testEntriesAt | directory entries | directory := FSPath * 'plonk'. filesystem createDirectory: directory. filesystem createDirectory: directory / 'griffle'. filesystem createDirectory: directory / 'bint'. self delete: directory / 'griffle'. self delete: directory / 'bint'. self delete: directory. entries := filesystem entriesAt: directory. self assert: entries size = 2. entries do: [ :ea | self assert: (ea isKindOf: FSDirectoryEntry). self assert: ea reference parent path = (filesystem resolve: directory). self assert: (#('griffle' 'bint' ) includes: ea reference basename). self assert: ea isDirectory ]! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 11/16/2009 00:21'! testEntryAt | path entry | path := FSPath * 'plonk'. filesystem createDirectory: path. self delete: path. entry := filesystem entryAt: path. self assert: entry isDirectory. self assert: entry reference = (filesystem referenceTo: path) asAbsolute! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:19'! testFile | path out | path := FSPath * 'gooly'. out := filesystem open: path writable: true. out close. self assert: (filesystem exists: path). self deny: (filesystem isDirectory: path). self assert: (filesystem isFile: path). filesystem delete: path. self deny: (filesystem exists: path)! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'sd 2/11/2011 18:21'! testFileNames | reference | #('test one' 'test with two' 'test-äöü' 'test.äöü') do: [ :each | reference := filesystem workingDirectory / each. self assert: reference basename = each. self deny: reference exists. reference writeStreamDo: [ :stream | stream nextPutAll: 'gooly' ] ifPresent: [ self fail ]. [ self assert: reference exists. self assert: (filesystem workingDirectory children anySatisfy: [ :ref | ref = reference ]) ] ensure: [ reference delete ] ]! ! !FSFilesystemTest methodsFor: 'tests-references' stamp: 'sd 2/11/2011 18:21'! testFileStreamDo | reference | self delete: (reference := filesystem workingDirectory / 'griffle'). self assert: (reference fileStreamDo: [ :stream | stream nextPutAll: 'griffle'. true ]). self assert: (filesystem workingDirectory / 'griffle') isFile. self assert: (reference fileStreamDo: [ :stream | true ])! ! !FSFilesystemTest methodsFor: 'tests-references' stamp: 'sd 2/11/2011 18:21'! testReadStream | reference stream | self delete: (reference := filesystem workingDirectory / 'griffle'). self should: [ reference readStream ] raise: FSFileDoesNotExist. reference writeStreamDo: [ :ws | ws nextPutAll: 'griffle' ]. self shouldnt: [ stream := reference readStream ] raise: FSFileDoesNotExist. self assert: stream contents asString = 'griffle'. stream close! ! !FSFilesystemTest methodsFor: 'tests-references' stamp: 'sd 2/11/2011 18:21'! testReadStreamDo | reference | self delete: (reference := filesystem workingDirectory / 'griffle'). self should: [ reference readStreamDo: [ :stream | self assert: false ] ] raise: FSFileDoesNotExist. reference writeStreamDo: [ :ws | ws nextPutAll: 'griffle' ]. self assert: (reference readStreamDo: [ :stream | stream contents asString ]) = 'griffle'! ! !FSFilesystemTest methodsFor: 'tests-references' stamp: 'sd 2/11/2011 18:21'! testReadStreamDoIfAbsent | reference | self delete: (reference := filesystem workingDirectory / 'griffle'). self assert: (reference readStreamDo: [ :stream | false ] ifAbsent: [ true ]). reference writeStreamDo: [ :ws | ws nextPutAll: 'griffle' ]. self assert: (reference readStreamDo: [ :stream | stream contents asString = 'griffle' ] ifAbsent: [ false ])! ! !FSFilesystemTest methodsFor: 'tests-references' stamp: 'sd 2/11/2011 18:21'! testReadStreamIfAbsent | reference stream | self delete: (reference := filesystem workingDirectory / 'griffle'). self assert: (reference readStreamIfAbsent: [ true ]). reference writeStreamDo: [ :ws | ws nextPutAll: 'griffle' ]. stream := reference readStreamIfAbsent: [ false ]. self assert: stream contents asString = 'griffle'. stream close! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'lr 2/14/2010 09:49'! testRoot self assert: filesystem root filesystem = filesystem. self assert: filesystem root path = FSPath root! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 10/10/2009 00:33'! testRootExists self assert: (filesystem exists: FSPath root)! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 10/10/2009 00:25'! testRootIsDirectory self assert: (filesystem isDirectory: FSPath root)! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 10/10/2009 00:33'! testRootIsNotAFile self deny: (filesystem isFile: FSPath root)! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 3/29/2011 15:58'! testSetRelativeWorkingDirectory self should: [filesystem workingDirectoryPath: (FSPath * 'plonk')] raise: Error ! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'cwp 3/29/2011 16:35'! testSetWorkingDirectory | cwd | filesystem workingDirectoryPath: (FSPath / 'plonk'). cwd := filesystem workingDirectoryPath. self assert: cwd isAbsolute. self assert: (cwd at: 1) = 'plonk'! ! !FSFilesystemTest methodsFor: 'tests' stamp: 'sd 2/11/2011 18:21'! testWorking self assert: filesystem workingDirectory filesystem = filesystem. self assert: filesystem workingDirectory path = filesystem workingDirectoryPath! ! !FSFilesystemTest methodsFor: 'tests-references' stamp: 'sd 2/11/2011 18:21'! testWriteStream | reference stream | self delete: (reference := filesystem workingDirectory / 'griffle'). stream := reference writeStream. stream nextPutAll: 'griffle'. stream close. self assert: (filesystem workingDirectory / 'griffle') isFile. stream := reference writeStream. stream close! ! !FSFilesystemTest methodsFor: 'tests-references' stamp: 'sd 2/11/2011 18:21'! testWriteStreamDo | reference | self delete: (reference := filesystem workingDirectory / 'griffle'). self assert: (reference writeStreamDo: [ :stream | stream nextPutAll: 'griffle'. true ]). self assert: (filesystem workingDirectory / 'griffle') isFile. self assert: (reference writeStreamDo: [ :stream | true ])! ! !FSFilesystemTest methodsFor: 'tests-references' stamp: 'sd 2/11/2011 18:21'! testWriteStreamDoIfPresent | reference | self delete: (reference := filesystem workingDirectory / 'griffle'). self assert: (reference writeStreamDo: [ :stream | stream nextPutAll: 'griffle'. true ] ifPresent: [ false ]). self assert: (filesystem workingDirectory / 'griffle') isFile. self assert: (reference writeStreamDo: [ :stream | true ] ifPresent: [ true ])! ! !FSFilesystemTest methodsFor: 'tests-references' stamp: 'sd 2/11/2011 18:21'! testWriteStreamIfPresent | reference stream | self delete: (reference := filesystem workingDirectory / 'griffle'). stream := reference writeStreamIfPresent: [ false ]. stream nextPutAll: 'griffle'. stream close. self assert: (filesystem workingDirectory / 'griffle') isFile. self assert: (reference writeStreamIfPresent: [ true ])! ! TestCase subclass: #FSHandleTest instanceVariableNames: 'filesystem handle reference' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSHandleTest classSide methodsFor: 'testing' stamp: 'cwp 7/26/2009 12:46'! isAbstract ^ self name = #FSHandleTest! ! !FSHandleTest classSide methodsFor: 'testing' stamp: 'cwp 7/26/2009 12:46'! shouldInheritSelectors ^ true! ! !FSHandleTest methodsFor: 'running' stamp: 'cwp 11/18/2009 10:23'! createFilesystem self subclassResponsibility ! ! !FSHandleTest methodsFor: 'running' stamp: 'cwp 7/26/2009 12:22'! setUp filesystem := self createFilesystem. reference := filesystem referenceTo: 'plonk'. handle := reference openWritable: true! ! !FSHandleTest methodsFor: 'running' stamp: 'cwp 7/26/2009 12:23'! tearDown handle close. reference delete! ! !FSHandleTest methodsFor: 'tests' stamp: 'cwp 7/29/2009 22:06'! testAt handle at: 1 write: (ByteArray with: 3) startingAt: 1 count: 1. self assert: (handle at: 1) = 3! ! !FSHandleTest methodsFor: 'tests' stamp: 'cwp 7/29/2009 22:03'! testAtPut | in | handle at: 1 put: 3. in := ByteArray new: 1. handle at: 1 read: in startingAt: 1 count: 1. self assert: in first = 3! ! !FSHandleTest methodsFor: 'tests' stamp: 'lr 4/13/2010 16:10'! testAtPutBinaryAscii self shouldnt: [ handle at: 1 put: 32 ] raise: Error. self shouldnt: [ handle at: 1 put: Character space ] raise: Error! ! !FSHandleTest methodsFor: 'tests' stamp: 'lr 4/13/2010 16:07'! testAtWriteBinaryAscii self shouldnt: [ handle at: 1 write: #[32] startingAt: 1 count: 1 ] raise: Error. self shouldnt: [ handle at: 1 write: (String with: Character space) startingAt: 1 count: 1 ] raise: Error! ! !FSHandleTest methodsFor: 'tests' stamp: 'cwp 7/26/2009 12:23'! testClose handle close. self deny: handle isOpen ! ! !FSHandleTest methodsFor: 'tests' stamp: 'cwp 7/26/2009 12:23'! testCreatedOpen self assert: handle isOpen! ! !FSHandleTest methodsFor: 'tests' stamp: 'cwp 7/26/2009 14:15'! testIO | out in | out := #(1 2 3) asByteArray. in := ByteArray new: 3. handle at: 1 write: out startingAt: 1 count: 3. handle at: 1 read: in startingAt: 1 count: 3. self assert: out = in.! ! !FSHandleTest methodsFor: 'tests' stamp: 'cwp 7/31/2009 00:13'! testReadBufferTooLarge | out in result | out := #(1 2 3) asByteArray. in := ByteArray new: 5. in atAllPut: 9. handle at: 1 write: out startingAt: 1 count: 3. result := handle at: 1 read: in startingAt: 2 count: 4. self assert: result = 3. self assert: in = #(9 1 2 3 9) asByteArray.! ! !FSHandleTest methodsFor: 'tests' stamp: 'cwp 7/26/2009 14:16'! testReadOnly handle close. handle := reference openWritable: false. self should: [ handle at: 1 write: #(1 2 3 ) startingAt: 1 count: 3 ] raise: Error! ! !FSHandleTest methodsFor: 'tests' stamp: 'cwp 7/26/2009 12:45'! testReference self assert: handle reference = reference asAbsolute! ! !FSHandleTest methodsFor: 'tests' stamp: 'cwp 7/29/2009 22:11'! testSizeAfterGrow | out | out := #(1 2 3) asByteArray. handle at: 1 write: out startingAt: 1 count: 3. self assert: handle size = 3! ! !FSHandleTest methodsFor: 'tests' stamp: 'cwp 7/29/2009 22:13'! testSizeNoGrow | bytes | bytes := #(1 2 3 4) asByteArray. handle at: 1 write: bytes startingAt: 1 count: 3. handle at: 4 write: bytes startingAt: 4 count: 1. self assert: handle size = 4! ! !FSHandleTest methodsFor: 'tests' stamp: 'cwp 7/26/2009 14:16'! testTruncate | out | out := #(1 2 3 4 5) asByteArray. handle at: 1 write: out startingAt: 1 count: 5. handle truncateTo: 3. self assert: handle size = 3! ! !FSHandleTest methodsFor: 'tests' stamp: 'cwp 7/28/2009 22:40'! testWriteStream | stream | stream := handle writeStream. self assert: (stream respondsTo: #nextPut:)! ! TestCase subclass: #FSLocatorTest instanceVariableNames: 'locator' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'lr 7/13/2010 15:18'! testAsAbsolute locator := FSLocator image. self assert: locator asAbsolute = locator! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'lr 7/13/2010 15:18'! testBasename locator := FSLocator image / 'griffle'. self assert: locator basename = 'griffle'! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'lr 7/13/2010 15:18'! testCommaAddsExtension locator := FSLocator image / 'griffle'. self assert: (locator , 'plonk') basename = 'griffle.plonk'! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'lr 7/13/2010 15:18'! testCommaAddsExtensionAgain locator := FSLocator image / 'griffle.plonk'. self assert: (locator , 'nurp') basename = 'griffle.plonk.nurp'! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'cwp 10/25/2009 22:24'! testContainsLocator locator := FSLocator image. self assert: (locator contains: locator / 'griffle').! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'sd 2/11/2011 20:04'! testContainsPath "self debug: #testContainsPath" locator := FSLocator image. self assert: (locator contains: (locator resolve / 'griffle') path).! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'cwp 10/25/2009 22:40'! testContainsReference locator := FSLocator image. self assert: (locator contains: (locator resolve / 'griffle')).! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'cwp 10/25/2009 11:14'! testEqual | a b | a := FSLocator image. b := FSLocator image. self deny: a == b. self assert: a = b.! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'cwp 2/18/2011 23:07'! testFilesystem locator := FSLocator image. self assert: (locator filesystem isKindOf: FSFilesystem)! ! !FSLocatorTest methodsFor: 'resolution tests' stamp: 'cwp 2/18/2011 17:05'! testImageDirectory locator := FSLocator image. self assert: locator resolve = FSLocator image resolve! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'lr 7/13/2010 15:18'! testIsAbsolute locator := FSLocator image. self assert: locator isAbsolute! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'cwp 10/25/2009 11:17'! testIsNotRoot locator := FSLocator image. self deny: locator isRoot! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'lr 7/13/2010 15:18'! testIsRelative locator := FSLocator image. self deny: locator isRelative! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'cwp 2/26/2011 18:20'! testIsRoot locator := FSLocator image. (locator resolve path size) timesRepeat: [locator := locator / '..']. self assert: locator isRoot! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'cwp 2/18/2011 17:05'! testOriginBasename locator := FSLocator image. self assert: locator basename = FSLocator image resolve basename! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'cwp 2/18/2011 17:01'! testParent locator := FSLocator image. self assert: locator parent resolve = FSLocator imageDirectory resolve! ! !FSLocatorTest methodsFor: 'resolution tests' stamp: 'cwp 2/19/2011 01:26'! testResolveAbsoluteReference | result reference | locator := FSLocator image / 'plonk'. reference := FSFilesystem inMemory root / 'griffle'. result := locator resolve: reference.. self assert: result == reference! ! !FSLocatorTest methodsFor: 'resolution tests' stamp: 'cwp 2/26/2011 18:19'! testResolveCompoundString | result compound | locator := FSLocator image / 'plonk'. compound := 'griffle', locator filesystem delimiter asString, 'nurp'. result := locator resolve: compound. self assert: result class = locator class. self assert: result origin = locator origin. self assert: result path = ((FSPath * 'plonk') / 'griffle' / 'nurp')! ! !FSLocatorTest methodsFor: 'resolution tests' stamp: 'cwp 2/26/2011 18:19'! testResolvePath | result path | locator := FSLocator image / 'plonk'. result := locator resolve: (FSPath * 'griffle'). path := (FSPath * 'plonk') / 'griffle'. self assert: result class= locator class. self assert: result origin = locator origin. self assert: result path = path.! ! !FSLocatorTest methodsFor: 'resolution tests' stamp: 'cwp 2/19/2011 01:26'! testResolveRelativeReference | result reference | locator := FSLocator image / 'plonk'. reference := FSFilesystem inMemory referenceTo: 'griffle'. result := locator resolve: reference.. self assert: result class= locator class. self assert: result origin = locator origin. self assert: result path = reference path.! ! !FSLocatorTest methodsFor: 'resolution tests' stamp: 'cwp 2/26/2011 18:19'! testResolveString | result path | locator := FSLocator image / 'plonk'. result := locator resolve: 'griffle'. path := (FSPath * 'plonk') / 'griffle'. self assert: result class= locator class. self assert: result origin = locator origin. self assert: result path = path.! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'lr 7/13/2010 15:18'! testSlash locator := FSLocator image / 'griffle'. self assert: locator = (FSLocator image / 'griffle')! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'lr 7/13/2010 15:18'! testWithExtensionAddsExtension locator := FSLocator image / 'griffle'. self assert: (locator withExtension: 'plonk') basename = 'griffle.plonk'! ! !FSLocatorTest methodsFor: 'compatibility tests' stamp: 'lr 7/13/2010 15:18'! testWithExtensionReplacesExtension locator := FSLocator image / 'griffle.nurp'. self assert: (locator withExtension: 'plonk') basename = 'griffle.plonk'! ! TestCase variableSubclass: #FSPathTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/27/2011 09:17'! testAbsolutePrintString | path actual | path := FSPath / 'plonk' / 'griffle'. actual := path printString. self assert: actual = 'FSPath / ''plonk'' / ''griffle'''! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 3/29/2011 16:45'! testAbsoluteWithParents | path allPaths | path := FSPath / 'plonk' / 'griffle' / 'nurb'. allPaths := path withParents. self assert: allPaths size = 4. self assert: allPaths first isRoot. self assert: allPaths second basename = 'plonk'. self assert: allPaths second size = 1. self assert: (allPaths second isChildOf: allPaths first). self assert: allPaths third basename = 'griffle'. self assert: allPaths third size = 2. self assert: (allPaths third isChildOf: allPaths second). self assert: allPaths fourth basename = 'nurb'. self assert: allPaths fourth size = 3. self assert: (allPaths fourth isChildOf: allPaths third). self assert: allPaths fourth = path. self assert: allPaths fourth == path! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 10:59'! testAsReference | path reference | path := FSPath * 'plonk'. reference := path asReference. self assert: reference class = FSReference. self assert: reference path = path! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 10:59'! testBasename | path | path := FSPath * 'plonk' / 'griffle'. self assert: path basename = 'griffle'! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:01'! testCommaAddsExtension | path result | path := FSPath * 'plonk' . result := path, 'griffle'. self assert: result basename = 'plonk.griffle'! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 10:59'! testCommaAddsExtensionAgain | path result | path := FSPath * 'plonk.griffle'. result := path, 'nurp'. self assert: result basename = 'plonk.griffle.nurp'! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 8/30/2009 15:07'! testContains | ancestor descendent | ancestor := FSPath / 'plonk'. descendent := FSPath / 'plonk' / 'griffle' / 'bork'. self assert: (ancestor contains: descendent). self deny: (descendent contains: ancestor)! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/18/2011 17:01'! testContainsLocator | ancestor descendent | ancestor := FSLocator imageDirectory resolve path. descendent := FSLocator image / 'griffle'. self deny: (ancestor contains: descendent). self deny: (descendent contains: ancestor)! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 10:59'! testEqual | a b | a := FSPath * 'plonk'. b := FSPath * 'plonk'. self deny: a == b. self assert: a = b.! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 11/16/2009 09:37'! testGrandchildOfPath | griffle nurb | griffle := FSPath / 'griffle'. nurb := griffle / 'plonk' / 'nurb'. self deny: (griffle isChildOf: nurb). self deny: (nurb isChildOf: griffle).! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 10/10/2009 17:49'! testIsAbsolute self assert: (FSPath / 'plonk') isAbsolute! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 11/16/2009 09:34'! testIsChildOfPath | parent child | parent := FSPath / 'griffle'. child := parent / 'nurb'. self assert: (child isChildOf: parent). self deny: (parent isChildOf: child)! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/19/2011 01:26'! testIsChildOfReference | parent child | parent := FSPath / 'griffle'. child := (FSFilesystem inMemory referenceTo: parent / 'nurb'). self deny: (child isChildOf: parent). self deny: (parent isChildOf: child)! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 3/29/2011 16:31'! testIsEmpty self assert: (FSPath workingDirectory) isEmpty! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 11:00'! testIsNotAbsolute self deny: (FSPath * 'plonk') isAbsolute! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 10/10/2009 17:49'! testIsNotRelative self deny: (FSPath / 'plonk') isRelative! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 11:00'! testIsNotRoot self deny: (FSPath / 'plonk') isRoot! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 11:00'! testIsRelative self assert: (FSPath * 'plonk') isRelative! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 7/17/2009 05:23'! testIsRoot self assert: FSPath root isRoot! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 3/29/2011 16:32'! testMakeRelative "self run: #testMakeRelative" | parent child relative | parent := FSPath / 'griffle' / 'bibb'. child := FSPath / 'griffle' / 'plonk' / 'nurp'. relative := parent makeRelative: child. self assert: relative = (FSPath parent / 'plonk' / 'nurp')! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/27/2011 09:40'! testParent | path parent | path := (FSPath * 'plonk') / 'griffle'. parent := path parent. self assert: parent isRelative. self assert: (parent at: 1) = 'plonk'! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 11:00'! testParentParent | path | path := (FSPath * '..') parent. self assert: path size = 2. self assert: (path at: 1) = '..'. self assert: (path at: 2) = '..'.! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 17:48'! testParentResolution | base relative absolute | base := FSPath / 'plonk' / 'pinto'. relative := FSPath parent / 'griffle' / 'zonk'. absolute := base resolve: relative. self assert: absolute isAbsolute. self assert: (absolute at: 1) = 'plonk'. self assert: (absolute at: 2) = 'griffle'. self assert: (absolute at: 3) = 'zonk'. ! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 3/29/2011 16:33'! testParse "self run: #testParse" | path | path := FSPath readFrom: 'parent/child/grandChild' readStream delimiter: $/. self assert: path size = 3. self assert: (path at: 1) = 'parent'. self assert: (path at: 2) = 'child'. self assert: (path at: 3) = 'grandChild'. ! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 3/29/2011 16:33'! testParseBogus "self run: #testParseBogus" | path | path := FSPath readFrom: 'parent?<>~ \child/grandChild' readStream delimiter: $/. self assert: path size = 2. self assert: (path at: 1) = 'parent?<>~ \child'. self assert: (path at: 2) = 'grandChild'. ! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 10/26/2009 13:27'! testParseTrailingSlash | path | path := FSPath readFrom: 'griffle/' readStream delimiter: $/. self assert: path size = 1. self assert: (path at: 1) = 'griffle'! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 3/29/2011 16:46'! testPrintRelativeWithParent | path | path := FSPath parent / 'foo'. self assert: (path printWithDelimiter: $/) = '../foo'! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 11:00'! testPrintWithDelimiter | path | path := (FSPath * 'plonk') / 'griffle'. self assert: (path printWithDelimiter: $%) = 'plonk%griffle'! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/27/2011 09:31'! testRelativePrintString | path actual | path := FSPath * 'plonk' / 'griffle'. actual := path printString. self assert: actual = 'FSPath * ''plonk'' / ''griffle'''! ! !FSPathTest methodsFor: 'tests' stamp: 'StephaneDucasse 2/18/2011 21:55'! testRelativeTo "self run: #testRelativeTo" "aPath relativeTo: aParent returns a new path relative to the parent" | parent child relative | parent := FSPath / 'griffle'. child := FSPath / 'griffle' / 'plonk' / 'nurp'. relative := child relativeTo: parent. self assert: relative = (FSPath * 'plonk' / 'nurp')! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 11/15/2009 00:21'! testRelativeToBranch | parent child relative | parent := FSPath / 'griffle' / 'bibb'. child := FSPath / 'griffle' / 'plonk' / 'nurp'. relative := child relativeTo: parent. self assert: relative = (FSPath parent / 'plonk' / 'nurp')! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 3/29/2011 16:49'! testRelativeWithParents | path allPaths | path := FSPath * 'plonk' / 'griffle' / 'nurb'. allPaths := path withParents. self assert: allPaths size = 3. self assert: allPaths first basename = 'plonk'. self assert: allPaths first size = 1. self assert: allPaths second basename = 'griffle'. self assert: allPaths second size = 2. self assert: (allPaths second isChildOf: allPaths first). self assert: allPaths third basename = 'nurb'. self assert: allPaths third size = 3. self assert: (allPaths third isChildOf: allPaths second). self assert: allPaths third == path! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 11/16/2009 10:18'! testResolve | path | path := FSPath / 'griffle'. self assert: path resolve == path! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 3/29/2011 16:35'! testResolvePath "self debug: #testResolvePath" | path | path := FSPath / 'grandfather' / 'father' / 'child'. self assert: (path resolvePath: FSPath / 'grandfather') = (FSPath / 'grandfather'). self assert: (path resolvePath: FSPath / 'child') = (FSPath / 'child'). self assert: (path resolvePath: FSPath * 'grandfather') = (FSPath / 'grandfather' / 'father' / 'child' / 'grandfather'). self assert: (path resolvePath: FSPath * 'child') = (FSPath / 'grandfather' / 'father' / 'child' / 'child'). self assert: (path resolvePath: FSPath * 'grandfather') = (FSPath / 'grandfather' / 'father' / 'child' / 'grandfather'). self assert: (path resolvePath: FSPath * 'child') = (FSPath / 'grandfather' / 'father' / 'child' / 'child'). self assert: (path resolvePath: (FSPath parent) / '..') = (FSPath / 'grandfather') ! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 3/25/2011 21:54'! testResolveString "self debug: #testResolveString" | path result | path := FSPath * 'plonk'. result := path resolve: 'griffle'. self assert: result class = path class. self assert: result size = 2. self assert: (result at: 1) = 'plonk'. self assert: (result at: 2) = 'griffle'.! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 7/17/2009 23:40'! testRootParent | root | root := FSPath root. self assert: root parent == root! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/27/2011 09:30'! testRootPrintString | path actual | path := FSPath root. actual := path printString. self assert: actual = 'FSPath root'! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 11/16/2009 09:38'! testSiblingOfPath | griffle nurb | griffle := FSPath / 'griffle'. nurb := FSPath / 'nurb'. self deny: (griffle isChildOf: nurb). self deny: (nurb isChildOf: griffle).! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 17:51'! testSimpleResolution | base relative absolute | base := FSPath / 'plonk'. relative := (FSPath * 'griffle') / 'zonk'. absolute := base resolve: relative. self assert: absolute isAbsolute. self assert: (absolute at: 1) = 'plonk'. self assert: (absolute at: 2) = 'griffle'. self assert: (absolute at: 3) = 'zonk'. ! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 11:02'! testSlash | path actual | path := FSPath * 'plonk'. actual := path / 'griffle'. self assert: actual class = path class. self assert: (actual printWithDelimiter: $/) = 'plonk/griffle'! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 11:01'! testUnequalContent | a b | a := FSPath * 'plonk'. b := FSPath * 'griffle'. self deny: a = b.! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 11:02'! testUnequalSize | a b | a := FSPath * 'plonk'. b := (FSPath * 'plonk') / 'griffle'. self deny: a = b.! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/27/2011 09:39'! testWithExtentionAddsExtension | path result | path := FSPath * 'plonk'. result := path withExtension: 'griffle'. self assert: result basename = 'plonk.griffle'! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 11:02'! testWithExtentionReplacesExtension | path result | path := FSPath * 'plonk.griffle'. result := path withExtension: 'griffle'. self assert: result basename = 'plonk.griffle'! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/27/2011 09:32'! testWorkingDirPrintString | path actual | path := FSPath workingDirectory. actual := path printString. self assert: actual = 'FSPath workingDirectory'! ! !FSPathTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:22'! testWorkingDirectoryParent | path | path := FSPath workingDirectory parent. self assert: path size = 1. self assert: (path at: 1) = '..'! ! TestCase variableSubclass: #FSReferenceCreationTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSReferenceCreationTest methodsFor: 'tests' stamp: 'cwp 2/27/2011 09:09'! testCPath | ref | ref := FSReference C / 'WINDOWS'. self assert: (ref filesystem isKindOf: FSFilesystem). self assert: ref path = (FSPath / 'C:' / 'WINDOWS')! ! TestCase variableSubclass: #FSReferenceTest instanceVariableNames: 'filesystem' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSReferenceTest methodsFor: 'support' stamp: 'cwp 11/17/2009 21:23'! createFile: aPath filesystem ensureDirectory: aPath parent. (filesystem writeStreamOn: aPath) close! ! !FSReferenceTest methodsFor: 'running' stamp: 'cwp 2/19/2011 01:26'! setUp filesystem := FSFilesystem inMemory.! ! !FSReferenceTest methodsFor: 'tests' stamp: 'sd 2/11/2011 19:21'! testAllChildren "allChildren returns all the files and folders recursively nested in a reference" "self debug: #testAllChildren" | ref children | filesystem createDirectory: '/alpha'. filesystem createDirectory: '/alpha/beta'. filesystem createDirectory: '/alpha/beta/delta'. filesystem createDirectory: '/alpha/gamma'. ref := filesystem referenceTo: '/alpha'. children := ref allChildren. "all children returns the nodes: '/alpha', '/alpha/beta', '/alpha/beta/delta', and '/alpha/gamma'." self assert: children size = 4. children do: [:child | self assert: child class = FSReference. self assert: (ref = child or: [ref contains: child])]. self assert: (children collect: [:ea | ea basename]) = #('alpha' 'beta' 'gamma' 'delta')! ! !FSReferenceTest methodsFor: 'tests' stamp: 'sd 2/11/2011 19:25'! testAllDirectories "allDirectories returns all folders recursively nested in a reference" "self debug: #testAllDirectories" | ref children | filesystem createDirectory: '/alpha'. filesystem createDirectory: '/alpha/beta'. filesystem createDirectory: '/alpha/beta/delta'. filesystem createDirectory: '/alpha/gamma'. ref := filesystem referenceTo: '/alpha'. children := ref allDirectories. "all children returns the directories: '/alpha', '/alpha/beta', and '/alpha/gamma'." self assert: children size = 4. children do: [:child | self assert: child class = FSReference. self assert: (ref = child or: [ref contains: child])]. self assert: (children collect: [:ea | ea basename]) = #('alpha' 'beta' 'gamma' 'delta')! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 11/17/2009 16:44'! testAllEntries | ref entries | filesystem createDirectory: '/alpha'. filesystem createDirectory: '/alpha/beta'. filesystem createDirectory: '/alpha/beta/delta'. filesystem createDirectory: '/alpha/gamma'. ref := filesystem referenceTo: '/alpha'. entries := ref allEntries. self assert: entries size = 4. entries do: [:entry | self assert: entry class = FSDirectoryEntry. self assert: (ref = entry reference or: [ref contains: entry reference])]. self assert: (entries collect: [:ea | ea basename]) = #('alpha' 'beta' 'gamma' 'delta')! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 3/25/2011 22:09'! testAsAbsoluteConverted "Converts a relative reference to absolute, and asserts that it's absolute and still has the same path." | ref absolute | ref := filesystem referenceTo: 'plonk'. absolute := ref asAbsolute. self assert: absolute isAbsolute. self assert: (absolute path at: 1) = 'plonk'! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 7/22/2009 08:30'! testAsAbsoluteIdentity | ref | ref := filesystem referenceTo: '/plonk'. self assert: ref asAbsolute == ref! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 7/20/2009 09:08'! testAsReference | ref | ref := filesystem referenceTo: 'plonk'. self assert: ref asReference == ref! ! !FSReferenceTest methodsFor: 'tests' stamp: 'StephaneDucasse 2/2/2011 22:46'! testBaseAndExtension "self debug: #testBaseAndExtension" | ref | ref := filesystem referenceTo: 'plonk/griffle.taz'. "We create a reference to the plonk/griffle.taz in the context of filesystem" self assert: ref base = 'griffle'. self assert: ref extension = 'taz'. "Note that the extension of a complex extension starts from the first period up until the end" ref := filesystem referenceTo: 'plonk/griffle.taz.txt'. self assert: ref base = 'griffle'. self assert: ref extension = 'taz.txt'.! ! !FSReferenceTest methodsFor: 'tests' stamp: 'StephaneDucasse 2/2/2011 22:47'! testBasename "self debug: #testBasename" | ref | ref := filesystem referenceTo: 'plonk/griffle'. self assert: ref basename = 'griffle'. ref := filesystem referenceTo: 'plonk/griffle.taz'. self assert: ref basename = 'griffle.taz'.! ! !FSReferenceTest methodsFor: 'tests' stamp: 'sd 2/11/2011 19:55'! testChildDirectories | childDirectories | filesystem createDirectory: '/beta'. filesystem createDirectory: '/gamma'. (filesystem referenceTo: '/delta') writeStreamDo: [ :stream | stream nextPutAll: '1' ]. (filesystem referenceTo: '/epsilon') writeStreamDo: [ :stream | stream nextPutAll: '2' ]. childDirectories := filesystem root directories. self assert: childDirectories size = 2. childDirectories do: [ :each | self assert: each class = FSReference. self assert: each isDirectory description: 'Collection should not contain references to files.' ]! ! !FSReferenceTest methodsFor: 'tests' stamp: 'sd 2/11/2011 19:55'! testChildFiles | childFiles | filesystem createDirectory: '/beta'. filesystem createDirectory: '/gamma'. (filesystem referenceTo: '/delta') writeStreamDo: [ :stream | stream nextPutAll: '1' ]. (filesystem referenceTo: '/epsilon') writeStreamDo: [ :stream | stream nextPutAll: '2' ]. childFiles := filesystem root files. self assert: childFiles size = 2. childFiles do: [ :each | self assert: each class = FSReference. self assert: each isFile description: 'Collection should not contain references to directories.' ]! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 11/16/2009 09:33'! testChildOfPath | parent child | parent := FSPath / 'griffle'. child := filesystem referenceTo: '/griffle/nurb'. self deny: (child isChildOf: parent). self deny: (parent isChildOf: child).! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 11/16/2009 09:31'! testChildOfReference | parent child | parent := filesystem referenceTo: '/griffle'. child := filesystem referenceTo: '/griffle/nurb'. self assert: (child isChildOf: parent). self deny: (parent isChildOf: child).! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 11/16/2009 09:02'! testChildren | ref children | filesystem createDirectory: '/alpha'. filesystem createDirectory: '/alpha/beta'. filesystem createDirectory: '/alpha/gamma'. ref := filesystem referenceTo: '/alpha'. children := ref children. self assert: children size = 2. children do: [:child | self assert: child class = FSReference. self assert: (child isChildOf: ref). self assert: (#('beta' 'gamma') includes: child basename)]! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 10/25/2009 11:11'! testCommaAddsExtension | ref result | ref := filesystem referenceTo: 'plonk'. result := ref, 'griffle'. self assert: result basename = 'plonk.griffle'! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 11/17/2009 23:53'! testCommaAddsExtensionAgain | ref result | ref := filesystem referenceTo: 'plonk.griffle'. result := ref, 'nurp'. self assert: result basename = 'plonk.griffle.nurp'! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/18/2011 17:01'! testContainsLocator | ref | ref := FSLocator imageDirectory resolve parent. self assert: (ref contains: FSLocator image)! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:05'! testContainsPath | ref | ref := filesystem referenceTo: (FSPath * 'griffle'). self assert: (ref contains: (ref / 'nurp') path)! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:05'! testContainsReference | ref | ref := filesystem referenceTo: (FSPath * 'griffle'). self assert: (ref contains: ref / 'nurp')! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 10/26/2009 00:56'! testDoesntContainLocator | ref | ref := filesystem referenceTo: 'griffle'. self deny: (ref contains: FSLocator image)! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:05'! testDoesntContainPath | ref | ref := filesystem referenceTo: (FSPath * 'griffle'). self deny: (ref contains: (FSPath * 'nurp'))! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:06'! testDoesntContainReferenceFilesystem | ref other | ref := filesystem referenceTo: (FSPath * 'griffle'). other := FSFilesystem inMemory referenceTo: 'griffle/nurp'. self deny: (ref contains: other)! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:06'! testDoesntContainReferencePath | ref other | ref := filesystem referenceTo: (FSPath * 'griffle'). other := filesystem referenceTo: (FSPath * 'nurp'). self deny: (ref contains: other)! ! !FSReferenceTest methodsFor: 'tests' stamp: 'StephaneDucasse 2/3/2011 08:15'! testEntries | ref entries | filesystem createDirectory: '/alpha'. filesystem createDirectory: '/alpha/beta'. filesystem createDirectory: '/alpha/gamma'. ref := filesystem referenceTo: '/alpha'. entries := ref entries. self assert: entries size = 2. entries do: [:entry | self assert: entry class = FSDirectoryEntry. self assert: (entry reference isChildOf: ref). self assert: (#('beta' 'gamma') includes: entry reference basename)]! ! !FSReferenceTest methodsFor: 'tests' stamp: 'StephaneDucasse 2/3/2011 08:15'! testEqual | a b | a := filesystem referenceTo: 'plonk'. b := filesystem referenceTo: 'plonk'. self deny: a == b. self assert: a = b.! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 11/16/2009 09:32'! testGrandchildOfReference | griffle nurb | griffle := filesystem referenceTo: '/griffle'. nurb := filesystem referenceTo: '/griffle/plonk/nurb'. self deny: (griffle isChildOf: nurb). self deny: (nurb isChildOf: griffle).! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 7/20/2009 09:23'! testIsAbsolute self assert: (filesystem referenceTo: '/plonk') isAbsolute! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 7/20/2009 09:24'! testIsNotAbsolute self deny: (filesystem referenceTo: 'plonk') isAbsolute! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 7/20/2009 09:25'! testIsNotRelative self deny: (filesystem referenceTo: '/plonk') isRelative! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:06'! testIsNotRoot self deny: (filesystem referenceTo: FSPath / 'plonk') isRoot! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 7/20/2009 09:26'! testIsRelative self assert: (filesystem referenceTo: 'plonk') isRelative! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 7/20/2009 09:27'! testIsRoot self assert: (filesystem referenceTo: FSPath root) isRoot! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 3/29/2011 17:05'! testMakeRelative "self run: #testMakeRelative" | parent child relative | parent := filesystem referenceTo: (FSPath / 'griffle'). child := filesystem referenceTo: (FSPath / 'griffle' / 'plonk' / 'nurb'). relative := parent makeRelative: child. self assert: relative = (FSPath * 'plonk' / 'nurb')! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:07'! testParent | ref parent | ref := (filesystem referenceTo: 'plonk/griffle'). parent := ref parent. self assert: parent class = ref class. self assert: (parent path at: 1) = 'plonk'! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:08'! testParentResolutionWithAbsoluteReference | base relative absolute | base := (filesystem referenceTo: '/plonk/pinto'). relative := (FSFilesystem inMemory referenceTo: '/griffle/zonk'). absolute := base resolve: relative. self assert: absolute filesystem == relative filesystem. self assert: absolute isAbsolute. self assert: (absolute path at: 1) = 'griffle'. self assert: (absolute path at: 2) = 'zonk'. ! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:09'! testParentResolutionWithPath | base relative absolute | base := filesystem referenceTo: (FSPath / 'plonk' / 'pinto'). relative := FSPath parent / 'griffle' / 'zonk'. absolute := base resolve: relative. self assert: absolute isAbsolute. self assert: (absolute path at: 1) = 'plonk'. self assert: (absolute path at: 2) = 'griffle'. self assert: (absolute path at: 3) = 'zonk'. ! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:10'! testParentResolutionWithReference | base relative absolute | base := (filesystem referenceTo: '/plonk/pinto'). relative := (filesystem referenceTo: '../griffle/zonk'). absolute := base resolve: relative. self assert: absolute isAbsolute. self assert: (absolute path at: 1) = 'plonk'. self assert: (absolute path at: 2) = 'griffle'. self assert: (absolute path at: 3) = 'zonk'. ! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:10'! testParentResolutionWithRemoteReference | base relative absolute | base := (filesystem referenceTo: '/plonk/pinto'). relative := (FSFilesystem inMemory referenceTo: '../griffle/zonk'). absolute := base resolve: relative. self assert: absolute isAbsolute. self assert: (absolute path at: 1) = 'plonk'. self assert: (absolute path at: 2) = 'griffle'. self assert: (absolute path at: 3) = 'zonk'. ! ! !FSReferenceTest methodsFor: 'tests' stamp: 'DamienPollet 2/28/2011 23:23'! testPathRelativeTo | parent childPath relative | parent := filesystem referenceTo: (FSPath / 'griffle'). childPath := FSPath / 'griffle' / 'plonk' / 'nurb'. relative := childPath relativeTo: parent. self assert: relative = (FSPath * 'plonk' / 'nurb')! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:11'! testReadStream | ref stream path | path := FSPath * 'plonk'. filesystem store createFile: path. ref := filesystem referenceTo: path. [stream := ref readStream. self assert: stream class = FSReadStream ] ensure: [ stream ifNotNil: [ stream close ] ]! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/18/2011 16:17'! testReadStreamDo | ref path s | path := FSPath * 'plonk'. filesystem store createFile: path. ref := filesystem referenceTo: path. ref readStreamDo: [ :stream | self assert: stream class = FSReadStream. self assert: stream isOpen. s := stream ]. self deny: s isOpen! ! !FSReferenceTest methodsFor: 'tests stream' stamp: 'cwp 11/14/2009 23:37'! testReadStreamDoNotFound | ref path | path := FSPath * 'plonk'. ref := filesystem referenceTo: path. self should: [ref readStreamDo: [:s]] raise: FSFileDoesNotExist ! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/18/2011 16:17'! testReadStreamDoifAbsent | ref path s | path := FSPath * 'plonk'. filesystem store createFile: path. ref := filesystem referenceTo: path. ref readStreamDo: [ :stream | self assert: stream class = FSReadStream. self assert: stream isOpen. s := stream ] ifAbsent: [ self signalFailure: 'The file exists!!' ]. self deny: s isOpen! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 10/29/2009 09:59'! testReadStreamDoifAbsentNot | ref pass | pass := false. ref := filesystem referenceTo: 'plonk'. ref readStreamDo: [:stream] ifAbsent: [pass := true]. self assert: pass! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:11'! testReadStreamIfAbsent | ref stream path | path := FSPath * 'plonk'. filesystem store createFile: path. ref := filesystem referenceTo: path. [ stream := ref readStreamIfAbsent: [ self signalFailure: 'Should not reach here.' ]. self assert: stream class = FSReadStream ] ensure: [ stream ifNotNil: [ stream close ] ]! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 11/14/2009 23:36'! testReadStreamNotFound | ref path | path := FSPath * 'plonk'. ref := filesystem referenceTo: path. self should: [ref readStream] raise: FSFileDoesNotExist ! ! !FSReferenceTest methodsFor: 'tests' stamp: 'DamienPollet 2/28/2011 18:57'! testRelativeToPath | parentPath child relative | parentPath := FSPath / 'griffle'. child := filesystem referenceTo: (FSPath / 'griffle' / 'plonk' / 'nurb'). relative := child relativeTo: parentPath. self assert: relative = (FSPath * 'plonk' / 'nurb')! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 11/15/2009 00:25'! testRelativeToReference | parent child relative | parent := filesystem referenceTo: (FSPath / 'griffle'). child := filesystem referenceTo: (FSPath / 'griffle' / 'plonk' / 'nurb'). relative := child relativeTo: parent. self assert: relative = (FSPath * 'plonk' / 'nurb')! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 11/16/2009 10:17'! testResolve | ref | ref := filesystem referenceTo: FSPath / 'griffle'. self assert: ref resolve == ref! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 7/20/2009 09:34'! testRootParent | root | root := filesystem referenceTo: FSPath root. self assert: root parent == root! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 11/16/2009 09:32'! testSiblingOfReference | griffle nurb | griffle := filesystem referenceTo: '/griffle'. nurb := filesystem referenceTo: '/nurb'. self deny: (griffle isChildOf: nurb). self deny: (nurb isChildOf: griffle).! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:12'! testSimpleResolution | base relative absolute | base := filesystem referenceTo: FSPath / 'plonk'. relative := (FSPath * 'griffle') / 'zonk'. absolute := base resolve: relative. self assert: absolute isAbsolute. self assert: (absolute path at: 1) = 'plonk'. self assert: (absolute path at: 2) = 'griffle'. self assert: (absolute path at: 3) = 'zonk'. ! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:13'! testSlash | ref result | ref := filesystem referenceTo: 'plonk'. result := ref / 'griffle'. self assert: result class = ref class. self assert: result isRelative. self assert: (result path at: 1) = 'plonk'. self assert: (result path at: 2) = 'griffle'. ! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 7/20/2009 09:37'! testUnequalContent | a b | a := filesystem referenceTo: 'plonk'. b := filesystem referenceTo: 'griffle'. self deny: a = b.! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 7/20/2009 09:56'! testUnequalSize | a b | a := filesystem referenceTo: 'plonk'. b := filesystem referenceTo: 'plonk/griffle'. self deny: a = b.! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:14'! testWithExtentionAddsExtension | ref result | ref := filesystem referenceTo: 'plonk'. result := ref withExtension: 'griffle'. self assert: result isRelative. self assert: result basename = 'plonk.griffle'! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:14'! testWithExtentionReplacesExtension | ref result | ref := filesystem referenceTo: 'plonk.griffle'. result := ref withExtension: 'nurp'. self assert: result isRelative. self assert: result basename = 'plonk.nurp'! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:22'! testWorkingDirectoryParent | wd | wd := filesystem referenceTo: FSPath workingDirectory. self assert: wd parent path size = 1. self assert: (wd parent path at: 1) = '..'.! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 10/29/2009 09:41'! testWriteStream | ref stream | ref := filesystem referenceTo: 'plonk'. [stream := ref writeStream. self assert: (stream class = FSWriteStream)] ensure: [stream ifNotNil: [stream close]]! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 10/29/2009 09:53'! testWriteStreamDo | ref s | ref := filesystem referenceTo: 'plonk'. ref writeStreamDo: [:stream | s := stream. self assert: stream class = FSWriteStream. self assert: stream isOpen]. self deny: s isOpen ! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/18/2011 16:17'! testWriteStreamDoExists | ref s path | path := FSPath * 'plonk'. filesystem store createFile: path. ref := filesystem referenceTo: path. ref writeStreamDo: [ :stream | s := stream. self assert: stream class = FSWriteStream. self assert: stream isOpen ]. self deny: s isOpen! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 10/29/2009 09:54'! testWriteStreamDoifPresent | ref s | ref := filesystem referenceTo: 'plonk'. ref writeStreamDo: [:stream | s := stream. self assert: stream class = FSWriteStream. self assert: stream isOpen] ifPresent: [self signalFailure: 'The file does not exist!!']. self deny: s isOpen ! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/18/2011 16:17'! testWriteStreamDoifPresentNot | ref pass path | pass := false. path := FSPath * 'plonk'. filesystem store createFile: path. ref := filesystem referenceTo: path. ref writeStreamDo: [ :stream | ] ifPresent: [ pass := true ]. self assert: pass! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/26/2011 18:15'! testWriteStreamExists | ref stream path | path := FSPath * 'plonk'. filesystem store createFile: path. ref := filesystem referenceTo: path. [stream := ref writeStream. self assert: stream class = FSWriteStream ] ensure: [ stream ifNotNil: [ stream close ] ]! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 10/29/2009 11:05'! testWriteStreamifPresent | ref stream | ref := filesystem referenceTo: 'plonk'. [stream := ref writeStreamIfPresent: [self signalFailure: 'Should not reach here']. self assert: (stream class = FSWriteStream)] ensure: [stream ifNotNil: [stream close]]! ! !FSReferenceTest methodsFor: 'tests' stamp: 'cwp 2/18/2011 16:17'! testWriteStreamifPresentExists | ref pass path | pass := false. path := FSPath * 'plonk'. filesystem store createFile: path. ref := filesystem referenceTo: path. ref writeStreamIfPresent: [ pass := true ]. self assert: pass! ! TestCase subclass: #FSResolverTest instanceVariableNames: 'resolver' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! FSResolverTest subclass: #FSInteractiveResolverTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSInteractiveResolverTest methodsFor: 'running' stamp: 'cwp 10/27/2009 11:09'! createResolver ^ FSInteractiveResolver new! ! !FSInteractiveResolverTest methodsFor: 'accessing' stamp: 'cwp 2/18/2011 17:01'! home ^ FSLocator imageDirectory resolve! ! !FSInteractiveResolverTest methodsFor: 'tests' stamp: 'cwp 10/27/2009 11:16'! testCached [resolver resolve: #home] on: FSResolutionRequest do: [:req | req resume: self home]. self shouldnt: [self assertOriginResolves: #home] raise: FSResolutionRequest! ! !FSInteractiveResolverTest methodsFor: 'tests' stamp: 'cwp 10/27/2009 11:15'! testNew [self assertOriginResolves: #home] on: FSResolutionRequest do: [:req | req resume: self home]. ! ! FSResolverTest subclass: #FSPlatformResolverTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSPlatformResolverTest methodsFor: 'running' stamp: 'cwp 10/27/2009 10:57'! createResolver ^ FSPlatformResolver forCurrentPlatform! ! !FSPlatformResolverTest methodsFor: 'tests' stamp: 'cwp 10/27/2009 11:04'! testDesktop self assertOriginResolves: #desktop! ! !FSPlatformResolverTest methodsFor: 'tests' stamp: 'cwp 10/27/2009 21:49'! testDocuments self assertOriginResolves: #documents! ! !FSPlatformResolverTest methodsFor: 'tests' stamp: 'cwp 10/27/2009 10:57'! testHome self assertOriginResolves: #home! ! !FSResolverTest classSide methodsFor: 'testing' stamp: 'cwp 10/26/2009 21:28'! isAbstract ^ self name = #FSResolverTest! ! !FSResolverTest methodsFor: 'asserting' stamp: 'cwp 10/26/2009 21:22'! assertOriginResolves: aSymbol | reference | reference := resolver resolve: aSymbol. self assert: (reference isKindOf: FSReference). self assert: reference isAbsolute. self assert: reference exists! ! !FSResolverTest methodsFor: 'running' stamp: 'cwp 10/27/2009 11:12'! createResolver self subclassResponsibility ! ! !FSResolverTest methodsFor: 'running' stamp: 'cwp 10/26/2009 21:25'! setUp resolver := self createResolver.! ! FSResolverTest subclass: #FSSystemResolverTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSSystemResolverTest methodsFor: 'running' stamp: 'cwp 10/26/2009 21:26'! createResolver ^ FSSystemResolver new! ! !FSSystemResolverTest methodsFor: 'testing' stamp: 'lr 7/13/2010 13:32'! testChanges self assertOriginResolves: #changes! ! !FSSystemResolverTest methodsFor: 'testing' stamp: 'cwp 10/26/2009 13:21'! testImage self assertOriginResolves: #image! ! !FSSystemResolverTest methodsFor: 'testing' stamp: 'lr 7/13/2010 13:35'! testImageDirectory self assertOriginResolves: #imageDirectory! ! !FSSystemResolverTest methodsFor: 'testing' stamp: 'cwp 10/26/2009 13:21'! testVmBinary self assertOriginResolves: #vmBinary! ! !FSSystemResolverTest methodsFor: 'testing' stamp: 'cwp 10/26/2009 13:21'! testVmDirectory self assertOriginResolves: #vmDirectory! ! TestCase subclass: #FSTreeTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! FSTreeTest subclass: #FSCopyVisitorTest instanceVariableNames: 'source dest' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSCopyVisitorTest methodsFor: 'running' stamp: 'cwp 2/18/2011 16:40'! createDirectory: aString source createDirectory: (source store pathFromString: aString)! ! !FSCopyVisitorTest methodsFor: 'running' stamp: 'cwp 2/18/2011 16:40'! createFile: aString source store createFile: (source store pathFromString: aString)! ! !FSCopyVisitorTest methodsFor: 'running' stamp: 'cwp 2/19/2011 01:26'! setUp source := FSFilesystem inMemory. dest := FSFilesystem inMemory. ! ! !FSCopyVisitorTest methodsFor: 'tests' stamp: 'cwp 11/15/2009 00:33'! testAll self setUpGreek. FSCopyVisitor copy: (source referenceTo: '/alpha') to: (dest referenceTo: '/alpha'). self assert: (dest isDirectory: '/alpha'). self assert: (dest isFile: '/alpha/beta/gamma').! ! FSTreeTest subclass: #FSSingleTreeTest instanceVariableNames: 'filesystem' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! FSSingleTreeTest subclass: #FSCollectVisitorTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSCollectVisitorTest methodsFor: 'asserting' stamp: 'cwp 11/16/2009 10:56'! assertEntries: references are: expected | strings | self assert: references isArray. references do: [ :ea | self assert: ea class = FSDirectoryEntry ]. strings := references collect: [ :ea | ea reference pathString ]. self assert: strings = expected! ! !FSCollectVisitorTest methodsFor: 'accessing' stamp: 'cwp 11/15/2009 07:47'! root ^ filesystem referenceTo: '/alpha'! ! !FSCollectVisitorTest methodsFor: 'running' stamp: 'cwp 11/15/2009 08:04'! setUp super setUp. self setUpGreek.! ! !FSCollectVisitorTest methodsFor: 'tests' stamp: 'cwp 11/16/2009 10:56'! testBreadthFirst | entries | entries := FSCollectVisitor breadthFirst: self root. self assertEntries: entries are: #( '/alpha' '/alpha/beta' '/alpha/epsilon' '/alpha/beta/delta' '/alpha/beta/gamma' '/alpha/epsilon/zeta' )! ! !FSCollectVisitorTest methodsFor: 'tests' stamp: 'cwp 11/16/2009 10:56'! testPostorder | entries | entries := FSCollectVisitor postorder: self root. self assertEntries: entries are: #( '/alpha/beta/delta' '/alpha/beta/gamma' '/alpha/beta' '/alpha/epsilon/zeta' '/alpha/epsilon' '/alpha' )! ! !FSCollectVisitorTest methodsFor: 'tests' stamp: 'cwp 11/16/2009 10:57'! testPreorder | entries | entries := FSCollectVisitor preorder: self root. self assertEntries: entries are: #( '/alpha' '/alpha/beta' '/alpha/beta/delta' '/alpha/beta/gamma' '/alpha/epsilon' '/alpha/epsilon/zeta' )! ! FSSingleTreeTest subclass: #FSDeleteVisitorTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSDeleteVisitorTest methodsFor: 'tests' stamp: 'cwp 11/15/2009 00:48'! testBeta self setUpGreek. FSDeleteVisitor delete: (filesystem referenceTo: '/alpha/beta'). self assert: (filesystem isDirectory: '/alpha'). self assert: (filesystem isDirectory: '/alpha/epsilon'). self deny: (filesystem exists: '/alpha/beta'). ! ! FSSingleTreeTest subclass: #FSGuideTest instanceVariableNames: 'guide visited' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! FSGuideTest subclass: #FSBreadthFirstGuideTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSBreadthFirstGuideTest methodsFor: 'tests' stamp: 'cwp 10/29/2009 23:39'! testAll guide := FSBreadthFirstGuide for: self. guide show: (filesystem referenceTo: '/alpha'). self assertVisitedIs: #( 'alpha' 'beta' 'epsilon' 'delta' 'gamma' 'zeta' )! ! !FSGuideTest classSide methodsFor: 'testing' stamp: 'cwp 10/29/2009 23:08'! isAbstract ^ self name = #FSGuideTest! ! !FSGuideTest methodsFor: 'asserting' stamp: 'cwp 11/16/2009 10:46'! assertVisitedIs: anArray visited with: anArray do: [:entry :basename | self assert: entry reference basename = basename]! ! !FSGuideTest methodsFor: 'running' stamp: 'cwp 2/19/2011 01:26'! setUp visited := OrderedCollection new. filesystem := FSFilesystem inMemory. self setUpGreek! ! !FSGuideTest methodsFor: 'visitor' stamp: 'cwp 10/29/2009 21:54'! visitDirectory: aReference visited add: aReference.! ! !FSGuideTest methodsFor: 'visitor' stamp: 'cwp 10/29/2009 21:54'! visitFile: aReference visited add: aReference.! ! FSGuideTest subclass: #FSPostorderGuideTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSPostorderGuideTest methodsFor: 'tests' stamp: 'cwp 10/29/2009 23:34'! testAll guide := FSPostorderGuide for: self. guide show: (filesystem referenceTo: '/alpha'). self assertVisitedIs: #( 'delta' 'gamma' 'beta' 'zeta' 'epsilon' 'alpha' )! ! FSGuideTest subclass: #FSPreorderGuideTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'FS-Tests-Core'! !FSPreorderGuideTest methodsFor: 'tests' stamp: 'cwp 10/29/2009 23:34'! testAll guide := FSPreorderGuide for: self. guide show: (filesystem referenceTo: '/alpha'). self assertVisitedIs: #( 'alpha' 'beta' 'delta' 'gamma' 'epsilon' 'zeta' )! ! !FSSingleTreeTest classSide methodsFor: 'testing' stamp: 'lr 7/13/2010 13:48'! isAbstract ^ self name = #FSSingleTreeTest! ! !FSSingleTreeTest methodsFor: 'running' stamp: 'cwp 11/21/2009 11:30'! createDirectory: aString filesystem createDirectory: (filesystem pathFromString: aString)! ! !FSSingleTreeTest methodsFor: 'running' stamp: 'cwp 2/18/2011 16:17'! createFile: aString filesystem store createFile: (filesystem pathFromString: aString)! ! !FSSingleTreeTest methodsFor: 'running' stamp: 'cwp 2/19/2011 01:26'! setUp super setUp. filesystem := FSFilesystem inMemory. ! ! !FSTreeTest classSide methodsFor: 'testing' stamp: 'cwp 10/30/2009 13:39'! isAbstract ^ self name = #FSTreeTest! ! !FSTreeTest methodsFor: 'running' stamp: 'lr 7/13/2010 15:26'! createDirectory: aString self subclassResponsibility! ! !FSTreeTest methodsFor: 'running' stamp: 'lr 7/13/2010 15:26'! createFile: aString self subclassResponsibility! ! !FSTreeTest methodsFor: 'running' stamp: 'cwp 10/30/2009 13:32'! setUpGreek self createDirectory: '/alpha'; createDirectory: '/alpha/beta'; createFile: '/alpha/beta/gamma'; createFile: '/alpha/beta/delta'; createDirectory: '/alpha/epsilon'; createFile: '/alpha/epsilon/zeta'! !