MCMczInstallerTest.st
author Claus Gittinger <cg@exept.de>
Thu, 08 Mar 2018 00:48:11 +0100
changeset 1039 88f5b1106042
parent 351 9d1fcd1a263f
permissions -rw-r--r--
#BUGFIX by cg class: MCSnapshot changed: #asChangeSet don't loose comment changes

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

MCTestCase subclass:#MCMczInstallerTest
	instanceVariableNames:'expected diff'
	classVariableNames:''
	poolDictionaries:''
	category:'Monticello-Tests'
!


!MCMczInstallerTest class methodsFor:'as yet unclassified'!

isAbstract
        ^ (Smalltalk classNamed: #MczInstaller) notNil

    "Modified: / 18-08-2009 / 10:04:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

suite
        ^ (Smalltalk classNamed: #MczInstaller) notNil
                ifTrue: [super suite]
                ifFalse: [TestSuite new name: self name asString]

    "Modified: / 18-08-2009 / 10:30:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!MCMczInstallerTest methodsFor:'as yet unclassified'!

assertDict: dict matchesInfo: info
	#(name id message date time author)
		do: [:sel |  (info perform: sel) ifNotNil: [:i | dict at: sel ifPresent: [:d | self assert: i = d]]].
	info ancestors 
			with: (dict at: #ancestors) 
			do: [:i :d | self assertDict: d matchesInfo: i]
!

assertNoChange
	| actual |
	actual := MCSnapshotResource takeSnapshot.
	diff := actual patchRelativeToBase: expected snapshot.
	self assert: diff isEmpty
!

assertVersionInfoPresent
	| dict info |
	dict := MczInstaller versionInfo at: self mockPackage name.
	info := expected info.
	self assertDict: dict matchesInfo: info.
!

deleteFile
	(FileDirectory default fileExists: self fileName)
		ifTrue: [FileDirectory default deleteFileNamed: self fileName]
!

fileName
	^ 'InstallerTest.mcz'
!

fileStream
	^ FileStream forceNewFileNamed: self fileName.
!

setUp
	expected := self mockVersion.
	self change: #one toReturn: 2.
!

tearDown
	expected snapshot updatePackage: self mockPackage.
	self deleteFile.
!

testInstallFromFile
	MCMczWriter fileOut: expected on: self fileStream.
	MczInstaller installFileNamed: self fileName.
	self assertNoChange.
!

testInstallFromStream
        | stream |
        stream := ReadWriteStream on: String new.
        MCMczWriter fileOut: expected on: stream.
        MczInstaller installStream: stream reset.
        self assertNoChange.
        self assertVersionInfoPresent.

    "Modified: / 29-08-2010 / 08:50:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!MCMczInstallerTest class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMczInstallerTest.st,v 1.1 2011-08-20 12:29:34 cg Exp $'
!

version_CVS
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMczInstallerTest.st,v 1.1 2011-08-20 12:29:34 cg Exp $'
!

version_SVN
    ^ '§Id: MCMczInstallerTest.st 5 2010-08-29 07:30:29Z vranyj1 §'
! !