From: Richard B. <rb...@us...> - 2005-04-06 06:32:56
|
Update of /cvsroot/jcframework/Nunit/Interfaces In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25158/Interfaces Modified Files: EmployeeInterfaceTests.vb Log Message: Catch exceptions in unit tests when objects aren't valid Index: EmployeeInterfaceTests.vb =================================================================== RCS file: /cvsroot/jcframework/Nunit/Interfaces/EmployeeInterfaceTests.vb,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- EmployeeInterfaceTests.vb 3 Mar 2005 00:37:25 -0000 1.6 +++ EmployeeInterfaceTests.vb 6 Apr 2005 06:32:47 -0000 1.7 @@ -6,6 +6,7 @@ Private pbroker As CPersistenceBroker Private emp As IEmployee + Private eventcount As Integer = 0 <TestFixtureSetUp()> Public Sub Init() Environment.CurrentDirectory = System.AppDomain.CurrentDomain.BaseDirectory @@ -73,7 +74,11 @@ emp.Name = "invalid" pbroker.FindObject(emp) Assert.IsFalse(pbroker.getInjectedObject(emp).Persistent) + Try pbroker.PersistChanges(emp) + Assert.Fail("Didn't throw the exception") + Catch + End Try Assert.IsFalse(pbroker.getInjectedObject(emp).Persistent) Assert.IsTrue(emp.ReportsTo Is Nothing) End Sub @@ -101,7 +106,11 @@ pbroker.PersistChanges(emp2) emp2.AllowValidation = False pbroker.MarkForDeletion(emp2) + Try pbroker.PersistChanges() + Assert.Fail("Didn't throw an exception") + Catch + End Try pbroker.ClearCache() emp2 = New ValidatedEmployee emp2.Name = "validCheck" @@ -122,5 +131,104 @@ Assert.IsTrue(pbroker.getInjectedObject(emp).Persistent, "persistent check failed") End Sub + '<Test(), Ignore("Not yet ready")> Public Sub CheckEvents() + ' AddHandler emp.NameChanged, AddressOf NameChanged + ' eventcount = 0 + ' emp.Name = "Events" + ' Assert.AreEqual(1, eventcount) + ' pbroker.FindObject(emp) + ' pbroker.PersistChanges(emp) + ' emp = New EmployeeClass + ' emp.Name = "Events" + ' pbroker.FindObject(emp) + ' 'Should not have any events from the previous handler still firing + ' eventcount = 0 + ' emp.Name = "New Name 1" + ' Assert.AreEqual(0, eventcount) + ' AddHandler emp.NameChanged, AddressOf NameChanged + ' emp.Name = "New Name 2" + ' Assert.AreEqual(1, eventcount) + 'End Sub + + '<Test(), Ignore("Not yet ready")> Public Sub CheckEvents2() + ' AddHandler emp.NameChanged, AddressOf NameChanged + ' eventcount = 0 + ' emp.Name = "Events2" + ' Assert.AreEqual(1, eventcount) + ' pbroker.FindObject(emp) + ' pbroker.PersistChanges(emp) + ' emp = New EmployeeClass + ' eventcount = 0 + ' AddHandler emp.NameChanged, AddressOf NameChanged + ' emp.Name = "Events2" + ' Assert.AreEqual(1, eventcount) + ' 'Should retain the event handlers + ' pbroker.FindObject(emp) + ' emp.Name = "Events2a" + ' Assert.AreEqual(2, eventcount) + 'End Sub + + '<Test(), Ignore("Not yet ready")> Public Sub CheckEvents3() + ' AddHandler emp.NameChanged, AddressOf NameChanged + ' eventcount = 0 + ' emp.Name = "Events3" + ' Assert.AreEqual(1, eventcount) + ' pbroker.FindObject(emp) + ' pbroker.PersistChanges(emp) + ' pbroker.ClearCache() + ' emp = New EmployeeClass + ' eventcount = 0 + ' AddHandler emp.NameChanged, AddressOf NameChanged + ' emp.Name = "Events3" + ' Assert.AreEqual(1, eventcount) + ' 'Event should fire when property is set during retrieve + ' pbroker.FindObject(emp) + ' Assert.AreEqual(2, eventcount) + ' 'Check event is still wired up after find completes + ' emp.Name = "Events3a" + ' Assert.AreEqual(3, eventcount) + 'End Sub + + '<Test(), Ignore("Not yet ready")> Public Sub CheckEvents4() + ' AddHandler emp.NameChanged, AddressOf NameChanged + ' eventcount = 0 + ' emp.Name = "Events4" + ' Assert.AreEqual(1, eventcount) + ' pbroker.FindObject(emp) + ' pbroker.PersistChanges(emp) + ' emp = New EmployeeClass + ' emp.Name = "Events4" + ' pbroker.FindObject(emp) + ' 'Should not have any events from the previous handler still firing + ' eventcount = 0 + ' emp.Name = "Events4a" + ' Assert.AreEqual(0, eventcount) + ' AddHandler emp.NameChanged, AddressOf NameChanged + ' emp.Name = "Events4b" + ' Assert.AreEqual(1, eventcount) + 'End Sub + + 'Private Sub NameChanged(ByVal sender As Object, ByVal e As System.EventArgs) + ' eventcount += 1 + 'End Sub + + <Test()> Public Sub CacheTest() + 'Check that local object changes don't impact the cache + emp.Name = "Initial2" + pbroker.FindObject(emp) + pbroker.PersistChanges(emp) + pbroker.ClearCache() + emp = New EmployeeClass + emp.Name = "Initial2" + pbroker.FindObject(emp) + 'Change local copy + emp.Name = "Final" + emp = New EmployeeClass + emp.Name = "Initial2" + pbroker.FindObject(emp) + Assert.AreEqual("Initial2", emp.Name) + End Sub + + End Class End Namespace \ No newline at end of file |