示例#1
0
        public static IClassDef LoadDefaultClassDef_WithMultipleRelationshipToAddress()
        {
            XmlClassLoader itsLoader   = CreateXmlClassLoader();
            IClassDef      itsClassDef =
                itsLoader.LoadClass(
                    @"
				<class name=""OrganisationTestBO"" assembly=""Habanero.Test.BO"" table=""organisation"">
					<property  name=""OrganisationID"" type=""Guid"" />
                    <property name=""Name"" />
					<primaryKey>
						<prop name=""OrganisationID"" />
					</primaryKey>
					<relationship name=""Addresses"" type=""multiple"" relatedClass=""AddressTestBO"" relatedAssembly=""Habanero.Test.BO"" deleteAction=""DeleteRelated"">
						<relatedProperty property=""OrganisationID"" relatedProperty=""OrganisationID"" />
					</relationship>
                    <relationship name=""ContactPeople"" type=""multiple"" relatedClass=""ContactPersonTestBO"" relatedAssembly=""Habanero.Test.BO"" deleteAction=""DeleteRelated"">
						<relatedProperty property=""OrganisationID"" relatedProperty=""OrganisationID"" />
					</relationship>

			    </class>
			"            );

            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
示例#2
0
        public static IClassDef LoadDefaultClassDefWithTestOrganisationBOLookup_DatabaseLookupList()
        {
            XmlClassLoader itsLoader   = CreateXmlClassLoader();
            IClassDef      itsClassDef =
                itsLoader.LoadClass(
                    @"
				<class name=""PersonTestBO"" assembly=""Habanero.Test.BO"" table=""person_test"">
					<property  name=""PersonTestID"" type=""Guid"" />
                    <property  name=""OrganisationID"" type=""Guid"" >
                      <databaseLookupList sql=""select OrganisationID, Name from organisation"" class=""OrganisationTestBO"" assembly=""Habanero.Test.BO"" />
                    </property>
					<primaryKey>
						<prop name=""PersonTestID"" />
					</primaryKey>
                    <relationship name=""Organisation"" type=""single"" relatedClass=""OrganisationTestBO"" relatedAssembly=""Habanero.Test.BO"">
						<relatedProperty property=""OrganisationID"" relatedProperty=""OrganisationID"" />
					</relationship>
					<ui>
						<grid>
							<column heading=""OrganisationID"" property=""OrganisationID"" type=""DataGridViewComboBoxColumn"" />
						</grid>
                    </ui>
			    </class>
			"            );

            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
示例#3
0
        public static IClassDef LoadDefaultClassDef_SingleRel_NoReverseRelationship()
        {
            XmlClassLoader itsLoader   = CreateXmlClassLoader();
            IClassDef      itsClassDef =
                itsLoader.LoadClass(
                    @"
				<class name=""OrganisationTestBO"" assembly=""Habanero.Test.BO"" table=""organisation"">
					<property  name=""OrganisationID"" type=""Guid"" />
                    <property name=""Name"" />
					<primaryKey>
						<prop name=""OrganisationID"" />
					</primaryKey>
			    </class>
			"            );
            RelPropDef relPropDef = new RelPropDef(itsClassDef.PropDefcol["OrganisationID"], "OrganisationID");
            RelKeyDef  relKeyDef  = new RelKeyDef();

            relKeyDef.Add(relPropDef);
            IRelationshipDef relationshipDef = new SingleRelationshipDef("ContactPerson", "Habanero.Test.BO",
                                                                         "ContactPersonTestBO", relKeyDef, true, DeleteParentAction.DeleteRelated, InsertParentAction.InsertRelationship, RelationshipType.Aggregation);

            relationshipDef.OwningBOHasForeignKey = false;
            itsClassDef.RelationshipDefCol.Add(relationshipDef);
            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
示例#4
0
        public static IClassDef LoadDefaultClassDef()
        {
            XmlClassLoader itsLoader   = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            IClassDef      itsClassDef =
                itsLoader.LoadClass(
                    @"
				<class name=""AddressTestBO"" assembly=""Habanero.Test.BO"" table=""contact_person_address"">
					<property name=""AddressID"" type=""Guid"" />
                    <property name=""ContactPersonID"" type=""Guid"" />
					<property name=""OrganisationID"" type=""Guid""  />
                    <property name=""AddressLine1""  />
					<property name=""AddressLine2""  />
					<property name=""AddressLine3""  />
					<property name=""AddressLine4""  />
					<primaryKey>
						<prop name=""AddressID"" />
					</primaryKey>
                    <relationship name=""ContactPersonTestBO"" type=""single"" relatedClass=""ContactPersonTestBO"" relatedAssembly=""Habanero.Test.BO"" reverseRelationship=""Addresses"">
						<relatedProperty property=""ContactPersonID"" relatedProperty=""ContactPersonID"" />
					</relationship>
                    <ui>
						<grid>
							<column heading=""AddressLine1"" property=""AddressLine1"" type=""DataGridViewTextBoxColumn"" />
							<column heading=""AddressLine2"" property=""AddressLine2"" type=""DataGridViewTextBoxColumn"" />
							<column heading=""AddressLine3"" property=""AddressLine3"" type=""DataGridViewTextBoxColumn"" />
							<column heading=""AddressLine4"" property=""AddressLine4"" type=""DataGridViewTextBoxColumn"" />
						</grid>
					</ui>
			    </class>
			"            );

            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
示例#5
0
        /// <summary>
        /// Load ClassDef for accessing the transacionLog table through Business Object.
        /// </summary>
        public static IClassDef LoadClassDef()
        {
            if (ClassDef.ClassDefs.Contains(typeof(TransactionLogBusObj)))
            {
                return(ClassDef.ClassDefs[typeof(TransactionLogBusObj)]);
            }
            XmlClassLoader xmlClassLoader = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            IClassDef      classDef       =
                xmlClassLoader.LoadClass(
                    @"
               <class name=""TransactionLogBusObj"" assembly=""Habanero.BO"" table=""transactionlog"">
					<property  name=""TransactionSequenceNo"" type=""Int32"" autoIncrementing=""true"" />
					<property  name=""DateTimeUpdated"" type=""DateTime"" />
					<property  name=""WindowsUser""/>
					<property  name=""LogonUser"" />
					<property  name=""MachineUpdatedName"" databaseField=""MachineName""/>
					<property  name=""BusinessObjectTypeName"" />
                    <property  name=""BusinessObjectToString""/>
					<property  name=""CRUDAction"" />
					<property  name=""DirtyXMLLog"" databaseField=""DirtyXML""/>
					<primaryKey isObjectID=""false"">
						<prop name=""TransactionSequenceNo"" />
					</primaryKey>
			    </class>
			"            );

            ClassDef.ClassDefs.Add(classDef);
            return(classDef);
        }
示例#6
0
        public new static IClassDef LoadClassDef_WithClassTableInheritance()
        {
            XmlClassLoader itsLoader   = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            IClassDef      itsClassDef = itsLoader.LoadClass(@"
			  <class name=""Person"" assembly=""Habanero.Test.Structure"" table=""table_class_Person"">
			    <superClass class=""LegalEntity"" assembly=""Habanero.Test.Structure"" />
			    <property name=""IDNumber"" databaseField=""field_ID_Number"" />
			    <property name=""FirstName"" databaseField=""field_First_Name"" />
			    <property name=""LastName"" databaseField=""field_Last_Name"" />
			    <property name=""PersonID"" type=""System.Guid"" databaseField=""field_Person_ID"" compulsory=""true"" />
			    <primaryKey>
			      <prop name=""PersonID"" />
			    </primaryKey>
			    <relationship name=""CarsDriven"" type=""multiple"" relatedClass=""Car"" relatedAssembly=""Habanero.Test.Structure"">
			      <relatedProperty property=""PersonID"" relatedProperty=""DriverID"" />
			    </relationship>
			    <relationship name=""OrganisationPerson"" type=""multiple"" relatedClass=""OrganisationPerson"" relatedAssembly=""Habanero.Test.Structure"">
			      <relatedProperty property=""PersonID"" relatedProperty=""PersonID"" />
			    </relationship>
			  </class>
			"            );

            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
示例#7
0
        public static IClassDef LoadDefaultClassDef()
        {
            XmlClassLoader itsLoader   = CreateXmlClassLoader();
            IClassDef      itsClassDef =
                itsLoader.LoadClass(
                    @"
				<class name=""OrganisationTestBO"" assembly=""Habanero.Test.BO"" table=""organisation"">
					<property  name=""OrganisationID"" type=""Guid"" />
                    <property name=""Name"" />
					<primaryKey>
						<prop name=""OrganisationID"" />
					</primaryKey>
					<relationship name=""ContactPeople"" type=""multiple"" relatedClass=""ContactPersonTestBO"" relatedAssembly=""Habanero.Test.BO"" deleteAction=""DeleteRelated"" reverseRelationship=""Organisation"">
						<relatedProperty property=""OrganisationID"" relatedProperty=""OrganisationID"" />
					</relationship>
                    <ui>
                        <grid>
                            <column heading=""OrganisationID"" property=""OrganisationID"" />
                        </grid>
                        <form>
                            <field label=""OrganisationID: *"" property=""OrganisationID"" />
                        </form>
                    </ui>
			    </class>
			"            );

            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
示例#8
0
        public static IClassDef LoadClassDef()
        {
            XmlClassLoader itsLoader = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            IClassDef      def       =
                itsLoader.LoadClass(
                    @"
				<class name=""MyRelatedBo"" assembly=""Habanero.Test"" table=""MyRelatedBo"">
					<property  name=""MyRelatedBoID"" />
					<property  name=""MyRelatedTestProp"" />
					<property  name=""MyBoID"" />
					<primaryKey>
						<prop name=""MyRelatedBoID"" />
					</primaryKey>
                    <ui>
                      <grid>
                        <column heading=""MyRelatedTestProp"" property=""MyRelatedTestProp"" width=""200"" />
                      </grid>
                      <form width=""400"">
                        <columnLayout width=""350"">
                          <field label=""MyRelatedTestProp :"" property=""MyRelatedTestProp"" />
                        </columnLayout>
                      </form>
                    </ui>
				</class>
			"            );

            return(def);
        }
示例#9
0
        public static IClassDef LoadDefaultClassDef_WithCircularDeleteRelatedToSelf()
        {
            XmlClassLoader itsLoader   = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            IClassDef      itsClassDef = itsLoader.LoadClass(@"
			  <class name=""Entity"" assembly=""Habanero.Test.Structure"" table=""table_Entity"">
			    <property name=""EntityID"" type=""Guid"" databaseField=""field_Entity_ID"" compulsory=""true"" />
			    <property name=""RelatedEntityID"" type=""Guid"" databaseField=""field_Entity_Type"" />
                <primaryKey>
			      <prop name=""EntityID"" />
			    </primaryKey>
				<relationship name=""RelatedEntity"" type=""single"" relatedClass=""Entity"" relatedAssembly=""Habanero.Test.Structure"" 
                        owningBOHasForeignKey=""true"" reverseRelationship=""RelatedEntityReverse""
                        deleteAction=""DeleteRelated"">
					<relatedProperty property=""RelatedEntityID"" relatedProperty=""EntityID"" />
				</relationship>
				<relationship name=""RelatedEntityReverse"" type=""single"" relatedClass=""Entity"" relatedAssembly=""Habanero.Test.Structure"" 
                        owningBOHasForeignKey=""false"" reverseRelationship=""RelatedEntity""
                        deleteAction=""DoNothing"">
					<relatedProperty property=""EntityID"" relatedProperty=""RelatedEntityID"" />
				</relationship>
			  </class>
			"            );

            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
示例#10
0
        public static IClassDef LoadDefaultClassDef()
        {
            XmlClassLoader itsLoader = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            IClassDef      classDef  = itsLoader.LoadClass(@"
				<class name=""OrderItem"" assembly=""Habanero.Test"">
					<property name=""OrderNumber"" type=""int"" compulsory=""true"" />
					<property name=""Product"" compulsory=""true"" />
					<primaryKey isObjectID=""false"" >
						<prop name=""OrderNumber"" />
						<prop name=""Product"" />
					</primaryKey>
					<ui>
						<grid>
							<column property=""OrderNumber"" />
							<column property=""Product"" />
						</grid>
						<form>
							<field property=""OrderNumber"" />
							<field property=""Product"" />
						</form>
					</ui>
				</class>
			"            );

            ClassDef.ClassDefs.Add(classDef);
            return(classDef);
        }
        public void PersistSQLparamaterValue_WhenByteArrayNull_WhenSQLServer_ShouldNotExist_FIXBUG1741()
        {
            //---------------Set up test pack-------------------
            var loader   = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            var classDef = loader.LoadClass(@"
					<class name=""MyBO"" assembly=""Habanero.Test"">
						<property  name=""MyBoID"" type=""Guid"" />
						<property  name=""ByteArrayProp"" type=""Byte[]"" />
						<primaryKey>
							<prop name=""MyBoID"" />
						</primaryKey>
					</class>
				"                );

            ClassDef.ClassDefs.Clear();
            ClassDef.ClassDefs.Add(classDef);
            var bo = classDef.CreateNewBusinessObject();

            bo.SetPropertyValue("ByteArrayProp", null);
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var sqlCol       = new TransactionalBusinessObjectDB(bo, DatabaseConnection.CurrentConnection).GetPersistSql();
            var sqlStatement = sqlCol.First();

            //IList parameters = sqlStatement.Parameters;

            DatabaseConnection.CurrentConnection.ExecuteSql(sqlStatement);
            //---------------Test Result -----------------------
            Assert.Pass("If it got here then it is OK");
        }
示例#12
0
        public static IClassDef LoadClassDefWithIntID_RelationshipToSelf()
        {
            XmlClassLoader itsLoader   = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            IClassDef      itsClassDef =
                itsLoader.LoadClass(
                    @"
				<class name=""BOWithIntID"" assembly=""Habanero.Test.BO"" table=""bowithintid"" >
					<property  name=""IntID"" type=""Int32"" />
					<property  name=""ChildIntID"" type=""Int32"" />
					<property  name=""TestField"" default=""testing"" />
					<primaryKey isObjectID=""false"">
						<prop name=""IntID"" />
					</primaryKey>
					<relationship name=""MyChildBoWithInt"" type=""single"" relatedClass=""BOWithIntID"" 
                        relatedAssembly=""Habanero.Test.BO"" deleteAction=""DeleteRelated"" owningBOHasForeignKey=""true""
                        reverseRelationship=""MyParentBOWithInt"">
						<relatedProperty property=""ChildIntID"" relatedProperty=""IntID"" />
					</relationship>
                    <relationship name=""MyParentBOWithInt"" type=""single"" relatedClass=""BOWithIntID"" 
                        relatedAssembly=""Habanero.Test.BO"" deleteAction=""DeleteRelated"" owningBOHasForeignKey=""false""
                        reverseRelationship=""MyChildBoWithInt"">
						<relatedProperty property=""IntID"" relatedProperty=""ChildIntID"" />
					</relationship>
				</class>
			"            );

            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
示例#13
0
        public static IClassDef LoadDefaultClassDef_PreventAddChild()
        {
            XmlClassLoader itsLoader   = CreateXmlClassLoader();
            IClassDef      itsClassDef =
                itsLoader.LoadClass(
                    @"
				<class name=""OrganisationTestBO"" assembly=""Habanero.Test.BO"" table=""organisation"">
					<property  name=""OrganisationID"" type=""Guid"" />
                    <property name=""Name"" />
					<primaryKey>
						<prop name=""OrganisationID"" />
					</primaryKey>
			    </class>
			"            );
            RelPropDef relPropDef = new RelPropDef(itsClassDef.PropDefcol["OrganisationID"], "OrganisationID");
            RelKeyDef  relKeyDef  = new RelKeyDef();

            relKeyDef.Add(relPropDef);
            MultipleRelationshipDef relationshipDef = new MultipleRelationshipDef("ContactPeople", "Habanero.Test.BO",
                                                                                  "ContactPersonTestBO", relKeyDef, true, "", DeleteParentAction.DeleteRelated, InsertParentAction.InsertRelationship, RelationshipType.Composition, 0);

            relationshipDef.ReverseRelationshipName = "Organisation";
            itsClassDef.RelationshipDefCol.Add(relationshipDef);
            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
示例#14
0
 internal static void LoadNumberGenClassDef(string tableName)
 {
     lock (_loadClassDefLock)
     {
         if (ClassDef.ClassDefs.Contains(typeof(BOSequenceNumber)))
         {
             return;
         }
         if (string.IsNullOrEmpty(tableName))
         {
             tableName = "NumberGenerator";
         }
         _tableName = tableName;
         var    itsLoader = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
         string classDef  = "<class name=\"BOSequenceNumber\" assembly=\"Habanero.BO\" table=\"" + _tableName +
                            "\">" +
                            "<property  name=\"SequenceNumber\" type=\"Int64\" />" +
                            "<property  name=\"NumberType\"/>" +
                            "<primaryKey isObjectID=\"false\">" +
                            "<prop name=\"NumberType\" />" +
                            "</primaryKey>" +
                            "</class>";
         var itsClassDef = itsLoader.LoadClass(classDef);
         ClassDef.ClassDefs.Add(itsClassDef);
         return;
     }
 }
示例#15
0
        public void Test_GetPrimaryKeyDef_ClassWithPKFromSuperClass()
        {
            //---------------Set up test pack-------------------
            ClassDef.ClassDefs.Clear();
            IClassDef parentDef = new XmlClassLoader(new DtdLoader(), new DefClassFactory()).LoadClass(
                @"	<class name=""TestClass"" assembly=""Habanero.Test.BO.Loaders"" >
							<property  name=""TestClassID"" type=""Guid"" />
                            <primaryKey>
                                <prop name=""TestClassID""/>
                            </primaryKey>
						</class>"                        );
            IClassDef def = new XmlClassLoader(new DtdLoader(), new DefClassFactory()).LoadClass(
                @"
				<class name=""TestRelatedClass"" assembly=""Habanero.Test.BO.Loaders"">
					<superClass class=""TestClass"" assembly=""Habanero.Test.BO.Loaders"" />
					<property  name=""TestProp"" type=""Guid"" />                    
				</class>
			"            );
            ClassDefCol classDefCol = new ClassDefCol();

            classDefCol.Add(parentDef);
            //---------------Assert Precondition----------------
            Assert.IsNotNull(parentDef.PrimaryKeyDef);
            Assert.IsNotNull(def.SuperClassDef);
            Assert.IsNull(def.PrimaryKeyDef);
            //---------------Execute Test ----------------------
            IPrimaryKeyDef primaryKeyDef = ClassDefHelper.GetPrimaryKeyDef(def, classDefCol);

            //---------------Test Result -----------------------
            Assert.IsNotNull(primaryKeyDef);
            Assert.AreSame(parentDef.PrimaryKeyDef, primaryKeyDef);
        }
示例#16
0
        public static IClassDef LoadClassDef()
        {
            var itsLoader   = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            var itsClassDef = itsLoader.LoadClass(@"
			  <class name=""SuperClassWithPKFromClassDef"" assembly=""Habanero.Smooth.Test"">
				<property name=""MYPKID"" type=""Guid"" />
				<primaryKey isObjectID=""true"">
				  <prop name=""MYPKID"" />
				</primaryKey>
			  </class>
			"            );

            return(itsClassDef);
        }
示例#17
0
        internal static void LoadNumberGenClassDef(string tableName)
        {
            XmlClassLoader itsLoader = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            string         classDef  = "<class name=\"FakeBOWithLongObjectIDProp\" assembly=\"Habanero.Test.BO\" >" +
                                       "<property  name=\"LongProp\" type=\"Int64\" />" +
                                       "<primaryKey isObjectID=\"false\">" +
                                       "<prop name=\"LongProp\" />" +
                                       "</primaryKey>" +
                                       "</class>";
            IClassDef itsClassDef = itsLoader.LoadClass(classDef);

            ClassDef.ClassDefs.Add(itsClassDef);
            return;
        }
        public static IClassDef LoadClassDef()
        {
            XmlClassLoader loader = new XmlClassLoader(new DtdLoader(), new DefClassFactory());

            return(loader.LoadClass(
                       @"
				<class name=""Habanero.Test.BO.PropRule.FakeBO"" assembly=""Habanero.Test.BO"">
					<property  name=""FakeBOID"" type=""Guid"" />
					<property  name=""EconomicLife"" type=""Int32"" />
					<property  name=""EngineeringLife"" type=""Int32"" />
                    <primaryKey>
						<prop name=""FakeBOID"" />
					</primaryKey>
				</class>
			"            ));
        }
示例#19
0
        public static IClassDef LoadDefaultClassDef()
        {
            XmlClassLoader itsLoader   = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            IClassDef      itsClassDef = itsLoader.LoadClass(@"
			  <class name=""Entity"" assembly=""Habanero.Test.Structure"" table=""table_Entity"">
			    <property name=""EntityID"" type=""Guid"" databaseField=""field_Entity_ID"" compulsory=""true"" />
			    <property name=""EntityType"" databaseField=""field_Entity_Type"" />
			    <primaryKey>
			      <prop name=""EntityID"" />
			    </primaryKey>
			  </class>
			"            );

            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
示例#20
0
        public static IClassDef LoadClassDef_WithSingleTableInheritance()
        {
            XmlClassLoader itsLoader   = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            IClassDef      itsClassDef = itsLoader.LoadClass(@"
			  <class name=""LegalEntity"" assembly=""Habanero.Test.Structure"" table=""table_class_LegalEntity"">
			    <superClass class=""Entity"" assembly=""Habanero.Test.Structure"" orMapping=""SingleTableInheritance"" discriminator=""EntityType"" />
			    <property name=""LegalEntityType"" databaseField=""field_Legal_Entity_Type"" />
			    <relationship name=""VehiclesOwned"" type=""multiple"" relatedClass=""Vehicle"" relatedAssembly=""Habanero.Test.Structure"">
			      <relatedProperty property=""EntityID"" relatedProperty=""OwnerID"" />
			    </relationship>
			  </class>
			"            );

            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
示例#21
0
        public TestValueObject()
        {
            ClassDef.ClassDefs.Clear();
            XmlClassLoader loader = new XmlClassLoader(new DtdLoader(), new DefClassFactory());

            _itsClassDef = loader.LoadClass
                               (@"
				<class name=""MyBO"" assembly=""Habanero.Test"">
					<property  name=""MyBoID"" type=""Guid"" />
					<property  name=""TestProp"" type=""Habanero.Test.Util.SimpleValueObjectStub"" assembly=""Habanero.Test"" />
					<primaryKey>
						<prop name=""MyBoID"" />
					</primaryKey>
				</class>
			"            );
            ClassDef.ClassDefs.Add(_itsClassDef);
        }
示例#22
0
        public virtual void Test_WithTypeParameter()
        {
            //---------------Set up test pack-------------------
            XmlClassLoader loader         = new XmlClassLoader(new DtdLoader(), GetDefClassFactory());
            IClassDef      personClassDef =
                loader.LoadClass(
                    @"
				<class name=""ContactPersonTestBO"" assembly=""Habanero.Test.BO"" table=""contact_person"" typeParameter=""Human"">
					<property name=""ContactPersonID"" type=""Guid"" />
					<property name=""Surname"" databaseField=""Surname_field"" compulsory=""true"" />
                    <property name=""FirstName"" databaseField=""FirstName_field"" />
					<property name=""DateOfBirth"" type=""DateTime"" />
					<primaryKey>
						<prop name=""ContactPersonID"" />
					</primaryKey>
			    </class>
			"            );

            ClassDef.ClassDefs.Add(personClassDef);


            const string relXml = @"
					<relationship 
						name=""TestRelationship"" 
						type=""single"" 
                        relatedClass=""ContactPersonTestBO"" 
						relatedAssembly=""Habanero.Test.BO""
                        typeParameter=""Human""
                    >
						    <relatedProperty property=""TestProp"" relatedProperty=""TestRelatedProp"" />
					</relationship>"                    ;
            //---------------Assert PreConditions---------------
            // Assert.IsTrue(ClassDef.ClassDefs.Contains("Habanero.Test.BO", "ContactPersonTestBO_Human"));

            //---------------Execute Test ----------------------

            IRelationshipDef relDef = _loader.LoadRelationship(relXml, _propDefs);

            //---------------Test Result -----------------------

            Assert.AreEqual(personClassDef.ClassNameExcludingTypeParameter, relDef.RelatedObjectClassName);
            Assert.AreEqual(personClassDef.TypeParameter, relDef.RelatedObjectTypeParameter);
            Assert.AreEqual(personClassDef.AssemblyName, relDef.RelatedObjectAssemblyName);
            //---------------Tear Down -------------------------
        }
示例#23
0
        public static IClassDef LoadDefaultClassDef_NoRelationships()
        {
            XmlClassLoader itsLoader   = CreateXmlClassLoader();
            IClassDef      itsClassDef =
                itsLoader.LoadClass(
                    @"
				<class name=""OrganisationTestBO"" assembly=""Habanero.Test.BO"" table=""organisation"">
					<property  name=""OrganisationID"" type=""Guid"" />
                    <property name=""Name"" />
					<primaryKey>
						<prop name=""OrganisationID"" />
					</primaryKey>
			    </class>
			"            );

            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
示例#24
0
        public static IClassDef LoadClassDefWithAutoIncrementingID()
        {
            XmlClassLoader itsLoader   = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            IClassDef      itsClassDef =
                itsLoader.LoadClass(
                    @"
				<class name=""TestAutoInc"" assembly=""Habanero.Test"" table=""testautoinc"" >
					<property  name=""testautoincid"" type=""Int32"" autoIncrementing=""true"" />
					<property  name=""testfield"" default=""testing"" />
					<primaryKey isObjectID=""false"">
						<prop name=""testautoincid"" />
					</primaryKey>
				</class>
			"            );

            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
示例#25
0
        public static IClassDef LoadClassDef()
        {
            XmlClassLoader itsLoader = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            IClassDef      def       =
                itsLoader.LoadClass(
                    @"
				<class name=""MyRelatedBo"" assembly=""Habanero.Test"" table=""MyRelatedBo"">
					<property  name=""MyRelatedBoID"" />
					<property  name=""MyRelatedTestProp"" />
					<property  name=""MyBoID"" />
					<primaryKey>
						<prop name=""MyRelatedBoID"" />
					</primaryKey>
				</class>
			"            );

            return(def);
        }
        public static IClassDef LoadClassDefWithIntID()
        {
            XmlClassLoader itsLoader   = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            IClassDef      itsClassDef =
                itsLoader.LoadClass(
                    @"
				<class name=""BOWithIntID_DifferentType"" assembly=""Habanero.Test.BO"" table=""bowithintid"" >
					<property  name=""IntID"" type=""Int32"" />
					<property  name=""TestField"" default=""testing"" />
					<primaryKey isObjectID=""false"">
						<prop name=""IntID"" />
					</primaryKey>
				</class>
			"            );

            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
        public static IClassDef LoadDefaultClassDef()
        {
            XmlClassLoader itsLoader   = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            IClassDef      itsClassDef =
                itsLoader.LoadClass(
                    @"
				<class name=""MyBusinessObjectUpdateLogBo"" assembly=""Habanero.Test.BO"" table=""My_Table"">
					<property  name=""MyID"" type=""Guid"" />
					<property  name=""MyName"" />                
					<primaryKey>
						<prop name=""MyID"" />
					</primaryKey>
			    </class>
			"            );

            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
示例#28
0
        public void SetupFixture()
        {
            TestUsingDatabase.SetupDBDataAccessor();
            ClassDef.ClassDefs.Clear();
            XmlClassLoader loader = new XmlClassLoader(new DtdLoader(), new DefClassFactory());

            _itsClassDef = loader.LoadClass
                               (@"
				<class name=""MyBO"" assembly=""Habanero.Test"">
					<property  name=""MyBoID"" type=""Guid"" />
					<property  name=""TestProp"" type=""Habanero.Util.LongText"" assembly=""Habanero.Base"" />
					<primaryKey>
						<prop name=""MyBoID"" />
					</primaryKey>
				</class>
			"            );
            ClassDef.ClassDefs.Add(_itsClassDef);
        }
示例#29
0
        public static IClassDef LoadClassDef_WithClassTableInheritance()
        {
            XmlClassLoader itsLoader   = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            IClassDef      itsClassDef = itsLoader.LoadClass(@"
			  <class name=""Part"" assembly=""Habanero.Test.Structure"" table=""table_class_Part"">
			    <superClass class=""Entity"" assembly=""Habanero.Test.Structure"" id=""PartID"" />
			    <property name=""PartID"" type=""Guid"" databaseField=""field_Part_ID"" compulsory=""true"" />
			    <property name=""ModelNo"" databaseField=""field_Model_No"" />
			    <property name=""PartType"" databaseField=""field_Part_Type"" />
			    <primaryKey>
			      <prop name=""PartID"" />
			    </primaryKey>
			  </class>
			"            );

            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }
示例#30
0
        public new static IClassDef LoadDefaultClassDef()
        {
            XmlClassLoader itsLoader   = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            IClassDef      itsClassDef = itsLoader.LoadClass(@"
			  <class name=""LegalEntity"" assembly=""Habanero.Test.Structure"" table=""table_LegalEntity"">
			    <property name=""LegalEntityID"" type=""Guid"" databaseField=""field_Legal_Entity_ID"" />
			    <property name=""LegalEntityType"" databaseField=""field_Legal_Entity_Type"" />
			    <primaryKey>
			      <prop name=""LegalEntityID"" />
			    </primaryKey>
			    <relationship name=""VehiclesOwned"" type=""multiple"" relatedClass=""Vehicle"" relatedAssembly=""Habanero.Test.Structure"">
			      <relatedProperty property=""LegalEntityID"" relatedProperty=""OwnerID"" />
			    </relationship>
			  </class>
			"            );

            ClassDef.ClassDefs.Add(itsClassDef);
            return(itsClassDef);
        }