MCChangeNotificationTest.st
changeset 315 7b543141ba48
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MCChangeNotificationTest.st	Sat Aug 20 14:25:29 2011 +0200
@@ -0,0 +1,80 @@
+"{ Package: 'stx:goodies/monticello' }"
+
+MCTestCase subclass:#MCChangeNotificationTest
+	instanceVariableNames:'workingCopy'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Monticello-Tests'
+!
+
+
+!MCChangeNotificationTest methodsFor:'events'!
+
+modifiedEventFor: aSelector ofClass: aClass
+	| method |
+	method := aClass compiledMethodAt: aSelector.
+	^ ModifiedEvent 
+				methodChangedFrom: method
+				to: method
+				selector: aSelector
+				inClass: aClass.
+
+! !
+
+!MCChangeNotificationTest methodsFor:'private'!
+
+foreignMethod
+	"see testForeignMethodModified"
+! !
+
+!MCChangeNotificationTest methodsFor:'running'!
+
+setUp
+	workingCopy := MCWorkingCopy forPackage: self mockPackage.
+	
+!
+
+tearDown
+	workingCopy unregister
+! !
+
+!MCChangeNotificationTest methodsFor:'tests'!
+
+testCoreMethodModified
+	| event |
+	workingCopy modified: false.
+	event := self modifiedEventFor: #one ofClass: self mockClassA.
+	MCWorkingCopy methodModified: event.
+	self assert: workingCopy modified
+!
+
+testExtMethodModified
+	| event mref |
+	workingCopy modified: false.
+	mref := workingCopy packageInfo extensionMethods first.
+	event := self modifiedEventFor: mref methodSymbol ofClass: mref actualClass.
+	MCWorkingCopy methodModified: event.
+	self assert: workingCopy modified
+!
+
+testForeignMethodModified
+	| event |
+	workingCopy modified: false.
+	event := self modifiedEventFor: #foreignMethod ofClass: self class.
+	MCWorkingCopy methodModified: event.
+	self deny: workingCopy modified
+! !
+
+!MCChangeNotificationTest class methodsFor:'documentation'!
+
+version
+    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCChangeNotificationTest.st,v 1.1 2011-08-20 12:25:29 cg Exp $'
+!
+
+version_CVS
+    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCChangeNotificationTest.st,v 1.1 2011-08-20 12:25:29 cg Exp $'
+!
+
+version_SVN
+    ^ '§Id: MCChangeNotificationTest.st 5 2010-08-29 07:30:29Z vranyj1 §'
+! !