MCMczInstallerTest.st
changeset 351 9d1fcd1a263f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MCMczInstallerTest.st	Sat Aug 20 14:29:34 2011 +0200
@@ -0,0 +1,103 @@
+"{ 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 §'
+! !