From: Richard B. <rb...@us...> - 2004-10-19 00:13:48
|
Update of /cvsroot/jcframework/Nunit/StandardClasses In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19366/StandardClasses Added Files: NPEmployee.vb NPJob.vb NPTeam.vb NonInheritedRetreiveCriteria.vb NonInheritedTests.vb Log Message: Rearrange unit test structure (extra namespaces and folders) --- NEW FILE: NPEmployee.vb --- Namespace StandardClasses Public Class NPEmployee Private m_name As String Private m_parentoid As String Private m_parent As NPEmployee Private m_children As ArrayList Private m_team As InheritedClasses.CTeam Private m_teamoid As String Private m_oid As AToMSFramework.COID Public Property OIDValue() As String Get Dim oidfactory As AToMSFramework.COIDFactory If m_oid Is Nothing Then oidfactory = AToMSFramework.modOIDFactorySingleton.getOIDFactoryInstance() m_oid = oidfactory.newOID End If OIDValue = m_oid.OID End Get Set(ByVal value As String) If m_oid Is Nothing Then m_oid = New AToMSFramework.COID End If m_oid.OID = value End Set End Property Public Property Name() As String Get Return m_name End Get Set(ByVal Value As String) m_name = Value End Set End Property Public Property ReportsTo() As NPEmployee Get Return m_parent End Get Set(ByVal Value As NPEmployee) If Not Value Is Nothing Then m_parent = Value m_parentoid = Value.OIDValue End If End Set End Property Public Property ReportsToOID() As String Get If m_parent Is Nothing Then Return m_parentoid Else Return (m_parent.OIDValue) End If End Get Set(ByVal Value As String) m_parentoid = Value End Set End Property Public Property Workers() As ArrayList Get Return m_children End Get Set(ByVal Value As ArrayList) m_children = Value End Set End Property Public Property Team() As InheritedClasses.CTeam Get Return m_team End Get Set(ByVal Value As InheritedClasses.CTeam) If Not Value Is Nothing Then m_team = Value m_teamoid = Value.OIDValue End If End Set End Property Public Property TeamOID() As String Get If m_team Is Nothing Then Return m_teamoid Else Return (m_team.OIDValue) End If End Get Set(ByVal Value As String) m_teamoid = Value End Set End Property Public Sub New() MyBase.New() m_children = New ArrayList End Sub End Class End Namespace --- NEW FILE: NPJob.vb --- Namespace StandardClasses Public Class NPJob Private m_id As String Private m_description As String Public Property Id() As String Get Return m_id End Get Set(ByVal Value As String) m_id = Value End Set End Property Public Property Description() As String Get Return m_description End Get Set(ByVal Value As String) m_description = Value End Set End Property End Class Public Class NPJobWithOIDValue Inherits NPJob Private m_oid As AToMSFramework.COID Public Property OIDValue() As String Get Dim oidfactory As AToMSFramework.COIDFactory If m_oid Is Nothing Then oidfactory = AToMSFramework.modOIDFactorySingleton.getOIDFactoryInstance() m_oid = oidfactory.newOID End If OIDValue = m_oid.OID End Get Set(ByVal value As String) If m_oid Is Nothing Then m_oid = New AToMSFramework.COID End If m_oid.OID = value End Set End Property End Class End Namespace --- NEW FILE: NPTeam.vb --- Namespace StandardClasses Public Class NPTeam Private m_leader As NPEmployee Private m_leaderoid As String Private m_name As String Private m_job As NPJobWithOIDValue Private m_joboid As String Private m_members As ArrayList Private m_oid As AToMSFramework.COID Public Property OIDValue() As String Get Dim oidfactory As AToMSFramework.COIDFactory If m_oid Is Nothing Then oidfactory = AToMSFramework.modOIDFactorySingleton.getOIDFactoryInstance() m_oid = oidfactory.newOID End If OIDValue = m_oid.OID End Get Set(ByVal value As String) If m_oid Is Nothing Then m_oid = New AToMSFramework.COID End If m_oid.OID = value End Set End Property Public Property TeamLeader() As NPEmployee Get Return m_leader End Get Set(ByVal Value As NPEmployee) m_leader = Value m_leaderoid = Value.OIDValue End Set End Property Public Property TeamLeaderOID() As String Get If m_leader Is Nothing Then Return m_leaderoid Else Return (m_leader.OIDValue) End If End Get Set(ByVal Value As String) m_leaderoid = Value End Set End Property Public Property Job() As NPJobWithOIDValue Get Return m_job End Get Set(ByVal Value As NPJobWithOIDValue) m_job = Value m_joboid = Value.OIDValue End Set End Property Public Property jobOID() As String Get If m_job Is Nothing Then Return m_joboid Else Return (m_job.OIDValue) End If End Get Set(ByVal Value As String) m_joboid = Value End Set End Property Public Property Name() As String Get Return m_name End Get Set(ByVal Value As String) m_name = Value End Set End Property Public Property Members() As ArrayList Get Return m_members End Get Set(ByVal Value As ArrayList) m_members = Value End Set End Property Public Sub New() MyBase.new() m_members = New ArrayList End Sub End Class End Namespace --- NEW FILE: NonInheritedTests.vb --- Imports AToMSFramework Imports NUnit.Framework Namespace StandardClasses <TestFixture()> Public Class NonInheritedTests Private pbroker As CPersistenceBroker Private job As NPJob Private emp As NPEmployee <TestFixtureSetUp()> Public Sub Init() Environment.CurrentDirectory = "C:\Projects\MMM\Nunit_AtomsFramework" Dim retry As Boolean = True While retry = True Try 'Remove any existing test database System.IO.File.Delete(".\db1.mdb") retry = False Catch iox As IO.IOException 'file is in use - so we will loop around until it is released Catch ex As Exception retry = False End Try End While System.IO.File.Copy(".\original db1.mdb", ".\db1.mdb") pbroker = New CPersistenceBroker pbroker.init() End Sub <TestFixtureTearDown()> Public Sub Dispose() pbroker.Dispose() pbroker = Nothing End Sub <SetUp()> Public Sub TestInit() job = New NPJob emp = New NPEmployee End Sub <Test()> Public Sub LoadJob_a1() job.Id = "a1" pbroker.GetObject(job) Assert.IsTrue(pbroker.getInjectedObject(job).Persistent) Assert.AreEqual("basic", job.Description) End Sub <Test()> Public Sub FindJob_basic() Dim job As New NPJobWithOIDValue job.Description = "basic" pbroker.FindObject(job) Assert.AreEqual("000000160002", job.OIDValue) Assert.AreEqual("basic", job.Description) End Sub <Test()> Public Sub SaveJob_a2() pbroker.StartTracking(job) job.Id = "a2" job.Description = "SomeJob" Assert.IsTrue(pbroker.getInjectedObject(job).IsDirty) pbroker.PersistChanges(job) Assert.IsFalse(pbroker.getInjectedObject(job).IsDirty) End Sub <Test()> Public Sub DeleteAJob() pbroker.StartTracking(job) job.Id = "a3" job.Description = "SomeJob3" pbroker.PersistChanges(job) pbroker.MarkForDeletion(job) pbroker.PersistChanges(job) Assert.IsTrue(pbroker.ObjectIsTracked(job)) Assert.IsFalse(pbroker.getInjectedObject(job).Persistent) End Sub <Test()> Public Sub CheckInjectionCache() Dim job2 As New NPJob pbroker.StartTracking(job) pbroker.StartTracking(job2) Assert.IsTrue(pbroker.ObjectIsTracked(job)) job.Id = "1" job.Description = "a" Assert.IsTrue(pbroker.ObjectIsTracked(job)) job2.Id = "2" job2.Description = "b" pbroker.PersistChanges(job) pbroker.PersistChanges(job2) End Sub <Test()> Public Sub CheckInjectionCache2() Dim job2 As New NPJob job.Id = "3" job2.Id = "4" pbroker.StartTracking(job) pbroker.StartTracking(job2) job.Description = "c" job2.Description = "d" Assert.IsFalse(pbroker.getInjectedObject(job).Persistent) pbroker.PersistChanges() Assert.IsTrue(pbroker.getInjectedObject(job).Persistent) End Sub <Test()> Public Sub LoadEmployee_a() emp.Name = "a" pbroker.FindObject(emp) Assert.IsTrue(pbroker.getInjectedObject(emp).Persistent) Assert.AreEqual(emp.Workers.Count, 0) Assert.IsTrue(Not emp.ReportsTo Is Nothing) Assert.AreEqual(emp.ReportsTo.Name, "c") Dim emp2 As NPEmployee emp2 = emp.ReportsTo.Workers(0) Assert.AreEqual(emp2.Name, emp.Name) Assert.AreEqual(emp2.OIDValue, emp.OIDValue) Assert.AreSame(emp2, emp) End Sub <Test()> Public Sub LoadEmployee_ac() emp.Name = "ac" pbroker.FindObject(emp) Assert.IsTrue(pbroker.getInjectedObject(emp).Persistent) Assert.AreEqual(emp.Workers.Count, 3) emp = emp.Workers.Item(1) Assert.AreEqual(emp.Name, "aa") Assert.AreEqual(emp.ReportsTo.Name, "ac") End Sub <Test()> Public Sub CheckSchemaBasedProperties() emp.Name = "ac" pbroker.FindObject(emp) Assert.AreEqual(50, pbroker.getInjectedObject(emp).getFieldLengthByName("Name")) Assert.IsTrue(pbroker.getInjectedObject(emp).getFieldTypeByName("Name") Is GetType([String])) End Sub <Test()> Public Sub PersistentObjectEquality() Dim emp2 As NPEmployee emp.Name = "ac" pbroker.FindObject(emp) emp2 = New NPEmployee emp2.Name = "aa" pbroker.FindObject(emp2) Assert.IsTrue(emp.Equals(emp2.ReportsTo)) Assert.AreEqual(3, emp2.ReportsTo.Workers.Count) End Sub <Test()> Public Sub LoadSaveandDeleteEmployee() Dim oidvalue As String emp.Name = "new" pbroker.FindObject(emp) Assert.IsFalse(pbroker.getInjectedObject(emp).Persistent) oidvalue = emp.OIDValue pbroker.PersistChanges(emp) Assert.IsTrue(pbroker.getInjectedObject(emp).Persistent) Assert.IsTrue(emp.ReportsTo Is Nothing) Debug.WriteLine(pbroker.DumpCacheDetails) emp = New NPEmployee emp.Name = "new" pbroker.FindObject(emp) Assert.IsTrue(pbroker.getInjectedObject(emp).Persistent) Assert.AreEqual(emp.OIDValue, oidvalue) Assert.AreEqual(emp.Name, "new") pbroker.MarkForDeletion(emp) pbroker.PersistChanges(emp) Assert.IsFalse(pbroker.getInjectedObject(emp).Persistent) emp = New NPEmployee emp.Name = "new" pbroker.FindObject(emp) Assert.IsFalse(pbroker.getInjectedObject(emp).Persistent) Assert.IsTrue(emp.OIDValue <> oidvalue) End Sub <Test()> Public Sub ChangeFindFieldValue() Dim oidvalue As String emp.Name = "SaveThenChange" pbroker.FindObject(emp) Assert.IsFalse(pbroker.getInjectedObject(emp).Persistent) oidvalue = emp.OIDValue pbroker.PersistChanges(emp) Assert.IsTrue(pbroker.getInjectedObject(emp).Persistent) Assert.IsTrue(emp.ReportsTo Is Nothing) emp = New NPEmployee emp.Name = "SaveThenChange" pbroker.FindObject(emp) Assert.IsTrue(pbroker.getInjectedObject(emp).Persistent) Assert.AreEqual(emp.OIDValue, oidvalue) Assert.AreEqual(emp.Name, "SaveThenChange") emp.Name = "Changed" pbroker.PersistChanges(emp) Assert.IsTrue(pbroker.getInjectedObject(emp).Persistent) pbroker.MarkForDeletion(emp) pbroker.PersistChanges(emp) Assert.IsFalse(pbroker.getInjectedObject(emp).Persistent) emp = New NPEmployee emp.Name = "Changed" pbroker.FindObject(emp) Assert.IsFalse(pbroker.getInjectedObject(emp).Persistent) emp = New NPEmployee emp.Name = "SaveThenChange" pbroker.FindObject(emp) Assert.IsFalse(pbroker.getInjectedObject(emp).Persistent) End Sub <Test()> Public Sub saveHierarchy() Dim emp2 As New NPEmployee Dim emp3 As New NPEmployee pbroker.StartTracking(emp) emp.Name = "theBoss" emp2.Name = "middleMgr" emp3.Name = "slave" emp.Workers.Add(emp2) emp2.ReportsTo = emp emp2.Workers.Add(emp3) emp3.ReportsTo = emp2 pbroker.PersistChanges(emp) pbroker.ClearCache() emp = New NPEmployee emp.Name = "slave" pbroker.FindObject(emp) Assert.AreEqual("middleMgr", emp.ReportsTo.Name) Assert.AreEqual("theBoss", emp.ReportsTo.ReportsTo.Name) emp2 = emp.ReportsTo.Workers(0) Assert.AreEqual("slave", emp2.Name) End Sub End Class End Namespace --- NEW FILE: NonInheritedRetreiveCriteria.vb --- Imports AToMSFramework Imports NUnit.Framework Namespace StandardClasses <TestFixture()> Public Class NonInheritedRetreiveCriteria Private pbroker As CPersistenceBroker Private emp As NPEmployee Private r As CRetrieveCriteria Private mr As CMultiRetrieveCriteria Private c As CCursor Private injObj As CInjectedObject <TestFixtureSetUp()> Public Sub Init() Environment.CurrentDirectory = "C:\Projects\MMM\Nunit_AtomsFramework" Dim retry As Boolean = True While retry = True Try 'Remove any existing test database System.IO.File.Delete(".\db1.mdb") retry = False Catch iox As IO.IOException 'file is in use - so we will loop around until it is released Catch ex As Exception retry = False End Try End While System.IO.File.Copy(".\original db1.mdb", ".\db1.mdb") pbroker = New CPersistenceBroker pbroker.init() End Sub <TestFixtureTearDown()> Public Sub Dispose() pbroker.Dispose() pbroker = Nothing End Sub <SetUp()> Public Sub testInit() emp = New NPEmployee End Sub <Test()> Public Sub SingleClassRetrieve() r = New CRetrieveCriteria r.ClassMap = pbroker.getClassMap(GetType(NPEmployee)) c = r.perform Assert.IsTrue(c.hasElements) Assert.IsTrue(Not c.EOF) Assert.IsTrue(c.HoldsProxies) Assert.AreEqual(c.ResultSet.ResultSet.Tables(0).Rows.Count, 6) End Sub <Test()> Public Sub LoadFullObjects() r = New CRetrieveCriteria r.ReturnFullObjects = True r.ClassMap = pbroker.getClassMap(emp.GetType) c = r.perform Assert.IsFalse(c.HoldsProxies) While c.hasElements And Not c.EOF emp = New NPEmployee c.loadObject(emp) Console.WriteLine(emp.Name) injObj = pbroker.getInjectedObject(emp) Assert.IsTrue(injObj.Persistent) c.nextCursor() End While c.SetCursor(0) emp = New NPEmployee c.loadObject(emp) Assert.AreEqual(emp.Name, "ab") End Sub <Test()> Public Sub SimpleOrCriteria() r = New CRetrieveCriteria r.ClassMap = pbroker.getClassMap(emp.GetType) r.WhereCondition.addSelectEqualTo("Name", "aa") r.WhereCondition.addSelectEqualTo("Name", "b", True) c = r.perform Assert.IsTrue(c.hasElements) Assert.AreEqual(c.ResultSet.ResultSet.Tables(0).Rows.Count, 2) c.loadObject(emp) Assert.AreEqual(emp.Name, "aa") c.nextCursor() emp = New NPEmployee c.loadObject(emp) Assert.AreEqual(emp.Name, "b") End Sub <Test()> Public Sub SelectInList() Dim al As New ArrayList al.Add("aa") al.Add("b") r = New CRetrieveCriteria r.ClassMap = pbroker.getClassMap(emp.GetType) r.WhereCondition.addSelectInList("Name", al) c = r.perform Assert.IsTrue(c.hasElements) Assert.AreEqual(c.ResultSet.ResultSet.Tables(0).Rows.Count, 2) c.loadObject(emp) Assert.AreEqual(emp.Name, "aa") c.nextCursor() emp = New NPEmployee c.loadObject(emp) Assert.AreEqual(emp.Name, "b") End Sub <Test()> Public Sub SubCriteria() Dim xx_1 As New CCriteriaCondition Dim xx_2 As New CCriteriaCondition Dim xx_3 As New CCriteriaCondition Dim xx_4 As New CCriteriaCondition r = New CRetrieveCriteria r.ClassMap = pbroker.getClassMap(emp.GetType) xx_1.ClassMap = r.ClassMap xx_2.ClassMap = r.ClassMap xx_3.ClassMap = r.ClassMap xx_4.ClassMap = r.ClassMap xx_1.addSelectEqualTo("Name", "aa") xx_2.addSelectEqualTo("Name", "ab") xx_1.addSubCriteria(xx_2, True) xx_3.addSelectEqualTo("Name", "ab") xx_4.addSelectEqualTo("Name", "ac") xx_3.addSubCriteria(xx_4, True) r.WhereCondition.addSubCriteria(xx_1, True) r.WhereCondition.addSubCriteria(xx_3, False) c = r.perform Assert.IsTrue(c.hasElements) Assert.AreEqual(c.ResultSet.ResultSet.Tables(0).Rows.Count, 1) While c.hasElements And Not c.EOF emp = New NPEmployee c.loadObject(emp) Assert.AreEqual(emp.Name, "ab") c.nextCursor() End While End Sub <Test()> Public Sub MultiRetrieveTest1() Dim si As CSelectInCriteria mr = New CMultiRetrieveCriteria(emp) mr.WhereCondition.addSelectEqualTo("Name", "ac") si = New CSelectInCriteria(emp) si.WhereCondition.addSelectEqualTo("Name", "ac") si.SetSelectAttribute("Name") mr.WhereCondition.addSelectNotIn("Name", si) c = mr.perform Assert.IsFalse(c.hasElements) Assert.IsTrue(c.EOF) End Sub End Class End Namespace |