From: Richard B. <rb...@us...> - 2005-04-11 00:32:15
|
Update of /cvsroot/jcframework/dotnet/Nunit/StandardClasses In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv815/Nunit/StandardClasses Added Files: LazyEmployee.vb NPEmployee.vb NPJob.vb NPTeam.vb NonInheritedRetreiveCriteria.vb NonInheritedTests.vb Log Message: Name changes to bring class library into line with Microsoft naming standards. FxCop directory added Nunit tests moved into main repository --- NEW FILE: NPEmployee.vb --- Namespace StandardClasses Public Class NPEmployee Private m_name As String Private m_parentname As String Private m_parent As NPEmployee Private m_children As ArrayList Private m_team As NPTeam Private m_teamname As String 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_parentname = Value.Name End If End Set End Property Public Property ReportsToName() As String Get If m_parent Is Nothing Then Return m_parentname Else Return (m_parent.Name) End If End Get Set(ByVal Value As String) m_parentname = Value 'Clear the parent object if the name is cleared If m_parentname = Nothing OrElse m_parentname = String.Empty Then m_parent = Nothing End If 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 NPTeam Get Return m_team End Get Set(ByVal Value As NPTeam) If Not Value Is Nothing Then m_team = Value m_teamname = Value.Name End If End Set End Property Public Property TeamName() As String Get If m_team Is Nothing Then Return m_teamname Else Return (m_team.Name) End If End Get Set(ByVal Value As String) m_teamname = Value End Set End Property Public Sub New() MyBase.New() m_children = 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 PersistenceBroker Private job As NPJob Private emp As NPEmployee <TestFixtureSetUp()> Public Sub Init() Environment.CurrentDirectory = System.AppDomain.CurrentDomain.BaseDirectory 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 PersistenceBroker 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() pbroker.ClearCache() Dim job As New NPJob 'NPJob has no find attributes so we set the key id job.Id = "a1" pbroker.FindObject(job) Assert.IsTrue(pbroker.getInjectedObject(job).Persistent) Assert.AreEqual("basic", job.Description) End Sub <Test(), ExpectedException(GetType(System.Exception))> Public Sub CheckForError() pbroker.GetObject(job) End Sub <Test()> Public Sub SaveJob_a2() job.Id = "a2" pbroker.GetObject(job) job.Description = "SomeJob" Assert.IsTrue(pbroker.getInjectedObject(job).IsDirty) pbroker.PersistChanges(job) Assert.IsFalse(pbroker.getInjectedObject(job).IsDirty) End Sub <Test()> Public Sub DeleteAJob() job.Id = "a3" pbroker.GetObject(job) job.Description = "SomeJob3" pbroker.PersistChanges(job) pbroker.MarkForDeletion(job) pbroker.PersistChanges(job) Assert.IsFalse(pbroker.ObjectIsTracked(job)) End Sub <Test()> Public Sub CheckInjectionCache() Dim job2 As New NPJob Try pbroker.GetObject(job) Catch End Try Assert.IsFalse(pbroker.ObjectIsTracked(job)) job.Id = "1" pbroker.GetObject(job) job.Description = "a" Assert.IsTrue(pbroker.ObjectIsTracked(job)) job2.Id = "2" pbroker.GetObject(job2) 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.GetObject(job) pbroker.GetObject(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 = CType(emp.ReportsTo.Workers(0), NPEmployee) Assert.AreEqual(emp2.Name, emp.Name) 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 = CType(emp.Workers.Item(1), NPEmployee) 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() emp.Name = "new" pbroker.FindObject(emp) Assert.IsFalse(pbroker.getInjectedObject(emp).Persistent) 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.Name, "new") pbroker.MarkForDeletion(emp) pbroker.PersistChanges(emp) emp = New NPEmployee emp.Name = "new" pbroker.FindObject(emp) Assert.IsFalse(pbroker.getInjectedObject(emp).Persistent) End Sub <Test()> Public Sub ChangeFindFieldValue() emp.Name = "SaveThenChange" pbroker.FindObject(emp) Assert.IsFalse(pbroker.getInjectedObject(emp).Persistent) 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.Name, "SaveThenChange") emp.Name = "Changed" pbroker.PersistChanges(emp) Assert.IsTrue(pbroker.getInjectedObject(emp).Persistent) pbroker.MarkForDeletion(emp) pbroker.PersistChanges(emp) 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 emp.Name = "theBoss" pbroker.GetObject(emp) 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 = CType(emp.ReportsTo.Workers(0), NPEmployee) Assert.AreEqual("slave", emp2.Name) End Sub <Test()> Public Sub RemoveFromCollection() Dim emp2 As New NPEmployee Dim emp3 As New NPEmployee emp.Name = "ABoss" pbroker.GetObject(emp) emp2.Name = "AManager" emp3.Name = "AWorker" emp.Workers.Add(emp2) emp2.ReportsTo = emp emp2.Workers.Add(emp3) emp3.ReportsTo = emp2 pbroker.PersistChanges(emp) pbroker.ClearCache() emp = New NPEmployee emp.Name = "ABoss" pbroker.FindObject(emp) emp.Workers.Clear() 'Save auto is true so workers should be deleted pbroker.PersistChanges(emp) emp = New NPEmployee emp.Name = "AManager" pbroker.FindObject(emp) Assert.IsTrue(pbroker.getInjectedObject(emp).Persistent, "AManager was deleted") Assert.IsNull(emp.ReportsTo, "AManager's ReportsTo wasn't cleared") emp = New NPEmployee emp.Name = "AWorker" pbroker.FindObject(emp) Assert.IsTrue(pbroker.getInjectedObject(emp).Persistent, "AWorker was deleted") End Sub <Test()> Public Sub LazyLoadEmployees() Dim emp1 As New LazyEmployee emp1.Name = "aa" pbroker.FindObject(emp1) Assert.AreEqual("aa", emp1.Name) Assert.AreEqual("ac", emp1.ReportsTo.Name) Assert.AreEqual(emp1.ReportsToName, emp1.ReportsTo.Name) Assert.AreEqual(0, emp1.ReportsTo.Workers.Count) End Sub End Class End Namespace --- NEW FILE: NonInheritedRetreiveCriteria.vb --- Imports AtomsFramework Imports NUnit.Framework Namespace StandardClasses <TestFixture()> Public Class NonInheritedRetreiveCriteria Private pbroker As PersistenceBroker Private emp As NPEmployee Private r As RetrieveCriteria Private mr As MultiRetrieveCriteria Private c As ResultCursor Private injObj As InjectedObject <TestFixtureSetUp()> Public Sub Init() Environment.CurrentDirectory = System.AppDomain.CurrentDomain.BaseDirectory 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 PersistenceBroker 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 RetrieveCriteria 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 RetrieveCriteria 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) 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 RetrieveCriteria 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 RetrieveCriteria 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 CriteriaCondition Dim xx_2 As New CriteriaCondition Dim xx_3 As New CriteriaCondition Dim xx_4 As New CriteriaCondition r = New RetrieveCriteria 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 SelectInCriteria mr = New MultiRetrieveCriteria(emp) mr.WhereCondition.addSelectEqualTo("Name", "ac") si = New SelectInCriteria(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 --- 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 End Namespace --- NEW FILE: NPTeam.vb --- Namespace StandardClasses Public Class NPTeam Private m_leader As NPEmployee Private m_leadername As String Private m_name As String Private m_job As NPJob Private m_jobId As String Private m_members As ArrayList Public Property TeamLeader() As NPEmployee Get Return m_leader End Get Set(ByVal Value As NPEmployee) m_leader = Value m_leadername = Value.Name End Set End Property Public Property TeamLeaderName() As String Get If m_leader Is Nothing Then Return m_leadername Else Return (m_leader.Name) End If End Get Set(ByVal Value As String) m_leadername = Value End Set End Property Public Property Job() As NPJob Get Return m_job End Get Set(ByVal Value As NPJob) m_job = Value m_jobId = Value.Id End Set End Property Public Property jobId() As String Get If m_job Is Nothing Then Return m_jobId Else Return (m_job.Id) End If End Get Set(ByVal Value As String) m_jobId = 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: LazyEmployee.vb --- Namespace StandardClasses Public Class LazyEmployee Private m_name As String Private m_parentname As String Private m_parent As LazyEmployee Private m_children As ArrayList Private m_teamname As String 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 LazyEmployee Get Return m_parent End Get Set(ByVal Value As LazyEmployee) If Not Value Is Nothing Then m_parent = Value m_parentname = Value.Name End If End Set End Property Public Property ReportsToName() As String Get If m_parent Is Nothing Then Return m_parentname Else Return (m_parent.Name) End If End Get Set(ByVal Value As String) m_parentname = Value 'Clear the parent object if the name is cleared If m_parentname = Nothing OrElse m_parentname = String.Empty Then m_parent = Nothing End If 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 Sub New() MyBase.New() m_children = New ArrayList End Sub End Class End Namespace |