From: Richard B. <rb...@us...> - 2005-01-31 22:27:31
|
Update of /cvsroot/jcframework/Nunit/InheritedClasses In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14782/InheritedClasses Modified Files: AtomsFrameworkTests.vb TableA_B.vb Log Message: Unit test for restoring collections after transaction rollback Index: TableA_B.vb =================================================================== RCS file: /cvsroot/jcframework/Nunit/InheritedClasses/TableA_B.vb,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- TableA_B.vb 1 Nov 2004 21:27:10 -0000 1.3 +++ TableA_B.vb 31 Jan 2005 22:27:19 -0000 1.4 @@ -57,121 +57,126 @@ Private Sub _tableBCol_ItemDirtied(ByVal sender As Object, ByVal e As System.EventArgs) Handles _tableBCol.ItemDirtied Me.SetDirtyFlag() End Sub - End Class - Public Class TableB - Inherits CPersistentObject + Public Sub New() + _tableBCol.ContainerObject = Me + _tableCCol.ContainerObject = Me + End Sub + End Class - Private _id As String - Public Property Id() As String - Get - Return _id - End Get - Set(ByVal Value As String) - _id = Value - SetDirtyFlag() - End Set - End Property + Public Class TableB + Inherits CPersistentObject - Private _field1 As String - Public Property field1() As String - Get - Return _field1 - End Get - Set(ByVal Value As String) - _field1 = Value - SetDirtyFlag() - End Set - End Property + Private _id As String + Public Property Id() As String + Get + Return _id + End Get + Set(ByVal Value As String) + _id = Value + SetDirtyFlag() + End Set + End Property - Private _a As TableA - Private _a_id As String - Public Property TableA() As TableA - Get - Return _a - End Get - Set(ByVal Value As TableA) - _a = Value - SetDirtyFlag() - End Set - End Property + Private _field1 As String + Public Property field1() As String + Get + Return _field1 + End Get + Set(ByVal Value As String) + _field1 = Value + SetDirtyFlag() + End Set + End Property - Public Property AId() As String - Get - If _a Is Nothing Then - Return _a_id - End If - Return _a.Id - End Get - Set(ByVal Value As String) - _a_id = Value - End Set - End Property + Private _a As TableA + Private _a_id As String + Public Property TableA() As TableA + Get + Return _a + End Get + Set(ByVal Value As TableA) + _a = Value + SetDirtyFlag() + End Set + End Property - Public Overrides Function getNewObject() As AToMSFramework.CPersistentObject - Return New TableB - End Function + Public Property AId() As String + Get + If _a Is Nothing Then + Return _a_id + End If + Return _a.Id + End Get + Set(ByVal Value As String) + _a_id = Value + End Set + End Property - Public Overrides Function IsValid() As Boolean - Return True - End Function - End Class + Public Overrides Function getNewObject() As AToMSFramework.CPersistentObject + Return New TableB + End Function - Public Class TableC - Inherits CPersistentObject + Public Overrides Function IsValid() As Boolean + Return True + End Function + End Class - Private _id As String - Public Property Id() As String - Get - Return _id - End Get - Set(ByVal Value As String) - _id = Value - SetDirtyFlag() - End Set - End Property + Public Class TableC + Inherits CPersistentObject - Private _field1 As String - Public Property field1() As String - Get - Return _field1 - End Get - Set(ByVal Value As String) - _field1 = Value - SetDirtyFlag() - End Set - End Property + Private _id As String + Public Property Id() As String + Get + Return _id + End Get + Set(ByVal Value As String) + _id = Value + SetDirtyFlag() + End Set + End Property - Private _a As TableA - Private _a_id As String - Public Property TableA() As TableA - Get - Return _a - End Get - Set(ByVal Value As TableA) - _a = Value - SetDirtyFlag() - End Set - End Property + Private _field1 As String + Public Property field1() As String + Get + Return _field1 + End Get + Set(ByVal Value As String) + _field1 = Value + SetDirtyFlag() + End Set + End Property - Public Property AId() As String - Get - If _a Is Nothing Then - Return _a_id - End If - Return _a.Id - End Get - Set(ByVal Value As String) - _a_id = Value - End Set - End Property + Private _a As TableA + Private _a_id As String + Public Property TableA() As TableA + Get + Return _a + End Get + Set(ByVal Value As TableA) + _a = Value + SetDirtyFlag() + End Set + End Property - Public Overrides Function getNewObject() As AToMSFramework.CPersistentObject - Return New TableC - End Function + Public Property AId() As String + Get + If _a Is Nothing Then + Return _a_id + End If + Return _a.Id + End Get + Set(ByVal Value As String) + _a_id = Value + End Set + End Property - Public Overrides Function IsValid() As Boolean - Return True - End Function - End Class + Public Overrides Function getNewObject() As AToMSFramework.CPersistentObject + Return New TableC + End Function + + Public Overrides Function IsValid() As Boolean + Return True + End Function + End Class End Namespace \ No newline at end of file Index: AtomsFrameworkTests.vb =================================================================== RCS file: /cvsroot/jcframework/Nunit/InheritedClasses/AtomsFrameworkTests.vb,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- AtomsFrameworkTests.vb 31 Jan 2005 06:18:10 -0000 1.9 +++ AtomsFrameworkTests.vb 31 Jan 2005 22:27:17 -0000 1.10 @@ -396,5 +396,55 @@ Assert.AreEqual("me", e2.Name) End Sub - End Class + <Test()> Public Sub CheckCacheAfterRollback2() + 'Check that items are put back into collections and that deleted items are restored + Dim a As New TableA + Dim b As New TableB + Dim a1 As New TableA + a.Id = "1a" + b.Id = "1b" + b.TableA = a + a.TableBCollection.Add(b) + b = New TableB + b.Id = "2b" + b.TableA = a + a.TableBCollection.Add(b) + b = New TableB + b.Id = "3b" + b.TableA = a + a.TableBCollection.Add(b) + a.Save() + Assert.AreEqual(3, a.TableBCollection.Count) + pbroker.startTransaction() + a1.Id = "1a" + a1.Retrieve() + Assert.AreEqual(3, a1.TableBCollection.Count) + b = a.TableBCollection.Item(1) + Assert.AreEqual("2b", b.Id) + a.TableBCollection.Remove(1) + b.Delete() + Assert.AreEqual(2, a.TableBCollection.Count) + a.Save() + a1 = New TableA + a1.Id = "1a" + a1.Retrieve() + b = New TableB + b.Id = "2b" + b.Retrieve() + Assert.IsFalse(b.Persistent) + Assert.AreEqual(2, a1.TableBCollection.Count) + 'Now abort the transaction + pbroker.rollback() + a1 = New TableA + a1.Id = "1a" + a1.Retrieve() + b = New TableB + b.Id = "2b" + b.Retrieve() + Assert.IsTrue(b.Persistent) + Assert.AreEqual(3, a1.TableBCollection.Count) + Assert.AreEqual("2b", a1.TableBCollection.Item(1)) + End Sub + + End Class End Namespace \ No newline at end of file |