MCVersionTest.st
changeset 317 0fbb1e72ac3f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MCVersionTest.st	Sat Aug 20 14:26:03 2011 +0200
@@ -0,0 +1,121 @@
+"{ Package: 'stx:goodies/monticello' }"
+
+MCTestCase subclass:#MCVersionTest
+	instanceVariableNames:'version visited'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Monticello-Tests'
+!
+
+
+!MCVersionTest methodsFor:'asserting'!
+
+assert: aSelector orders: sexpr as: array
+	| expected |
+	expected := OrderedCollection new.
+	version := self versionFromTree: sexpr.
+	version perform: aSelector with: [:ea | expected add: ea info name].
+	self assert: expected asArray = array
+!
+
+assert: aSelector orders: sexpr as: expected unresolved: unresolved
+	| missing |
+	missing := OrderedCollection new.
+	version := self versionFromTree: sexpr.
+	version 
+		perform: aSelector 
+		with: [:ea | visited add: ea info name]
+		with: [:ea | missing add: ea name].
+	self assert: visited asArray = expected.
+	self assert: missing asArray = unresolved.
+! !
+
+!MCVersionTest methodsFor:'building'!
+
+dependencyFromTree: sexpr
+	^ MCMockDependency fromTree: sexpr
+!
+
+versionFromTree: sexpr
+	^ (self dependencyFromTree: sexpr) resolve
+! !
+
+!MCVersionTest methodsFor:'running'!
+
+setUp
+	visited := OrderedCollection new.
+! !
+
+!MCVersionTest methodsFor:'tests'!
+
+testAllAvailablePostOrder
+	self 
+		assert: #allAvailableDependenciesDo: 
+		orders: #(a ((b (d e)) c)) 
+		as: #(d e b c)
+!
+
+testAllMissing
+	self 
+		assert: #allDependenciesDo: 
+		orders: #(a ((b (d e)) (c missing))) 
+		as: #(d e b)
+!
+
+testAllUnresolved
+	self 
+		assert: #allDependenciesDo:ifUnresolved: 
+		orders: #(a ((b (d e)) (c missing)))
+		as: #(d e b)
+		unresolved: #(c)
+!
+
+testDependencyOrder
+	self 
+		assert: #allDependenciesDo: 
+		orders: #(a (b c)) 
+		as: #(b c)
+!
+
+testPostOrder
+	self 
+		assert: #allDependenciesDo: 
+		orders: #(a ((b (d e)) c)) 
+		as: #(d e b c)
+!
+
+testWithAll
+	self 
+		assert: #withAllDependenciesDo: 
+		orders: #(a ((b (d e)) c)) 
+		as: #(d e b c a)
+!
+
+testWithAllMissing
+	self 
+		assert: #withAllDependenciesDo: 
+		orders: #(a ((b (d e)) (c missing))) 
+		as: #(d e b a)
+!
+
+testWithAllUnresolved
+	self 
+		assert: #withAllDependenciesDo:ifUnresolved: 
+		orders: #(a ((b (d e)) (c missing)))
+		as: #(d e b a)
+		unresolved: #(c)
+! !
+
+!MCVersionTest class methodsFor:'documentation'!
+
+version
+    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCVersionTest.st,v 1.1 2011-08-20 12:26:03 cg Exp $'
+!
+
+version_CVS
+    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCVersionTest.st,v 1.1 2011-08-20 12:26:03 cg Exp $'
+!
+
+version_SVN
+    ^ '§Id: MCVersionTest.st 5 2010-08-29 07:30:29Z vranyj1 §'
+! !