public void TestSetOrderCriteria_AddsJoinToSource_OnlyOnce() { //---------------Set up test pack------------------- MyRelatedBo.LoadClassDefWithDifferentTableAndFieldNames(); IClassDef myBoClassdef = MyBO.LoadClassDefWithRelationship(); ISelectQuery selectQuery = QueryBuilder.CreateSelectQuery(myBoClassdef); IOrderCriteria orderCriteria = QueryBuilder.CreateOrderCriteria(myBoClassdef, "MyRelationship.MyRelatedTestProp, MyRelationship.MyRelatedTestProp2"); //---------------Execute Test ---------------------- selectQuery.OrderCriteria = orderCriteria; //---------------Test Result ----------------------- Assert.AreEqual(1, selectQuery.Source.Joins.Count); //---------------Tear Down ------------------------- }
public void TestCreateOrderCriteria_ThroughRelationship() { //---------------Set up test pack------------------- IClassDef myRelatedBoClassDef = MyRelatedBo.LoadClassDefWithDifferentTableAndFieldNames(); IClassDef myBoClassdef = MyBO.LoadClassDefWithRelationship(); //---------------Execute Test ---------------------- IOrderCriteria orderCriteria = QueryBuilder.CreateOrderCriteria(myBoClassdef, "MyRelationship.MyRelatedTestProp"); //---------------Test Result ----------------------- IOrderCriteriaField orderCriteriaField = orderCriteria.Fields[0]; Assert.AreEqual(myRelatedBoClassDef.GetPropDef("MyRelatedTestProp").DatabaseFieldName, orderCriteriaField.FieldName); Assert.AreEqual(myBoClassdef.ClassName, orderCriteriaField.Source.Name); Assert.AreEqual(myBoClassdef.GetTableName(), orderCriteriaField.Source.EntityName); Assert.AreEqual(1, orderCriteriaField.Source.Joins.Count); Source.Join relJoin = orderCriteriaField.Source.Joins[0]; Assert.AreEqual("MyRelationship", relJoin.ToSource.Name); Assert.AreEqual(myRelatedBoClassDef.GetTableName(), relJoin.ToSource.EntityName); Assert.AreEqual(1, relJoin.JoinFields.Count); Assert.AreEqual("RelatedID", relJoin.JoinFields[0].FromField.PropertyName); Assert.AreEqual("MyRelatedBoID", relJoin.JoinFields[0].ToField.PropertyName); //---------------Tear Down ------------------------- }
public void TestSetOrderCriteria_AddsJoinToSource() { //---------------Set up test pack------------------- MyRelatedBo.LoadClassDefWithDifferentTableAndFieldNames(); IClassDef myBoClassdef = MyBO.LoadClassDefWithRelationship_DifferentTableAndFieldNames(); ISelectQuery selectQuery = QueryBuilder.CreateSelectQuery(myBoClassdef); IOrderCriteria orderCriteria = QueryBuilder.CreateOrderCriteria(myBoClassdef, "MyRelationship.MyRelatedTestProp"); //---------------Execute Test ---------------------- selectQuery.OrderCriteria = orderCriteria; //---------------Test Result ----------------------- Assert.AreEqual(1, selectQuery.Source.Joins.Count); Source.Join join = selectQuery.Source.Joins[0]; Assert.AreEqual(selectQuery.Source, join.FromSource); Assert.AreEqual("MyRelationship", join.ToSource.Name); Assert.AreEqual(1, join.JoinFields.Count); Assert.AreEqual("RelatedID", join.JoinFields[0].FromField.PropertyName); Assert.AreEqual("related_id", join.JoinFields[0].FromField.FieldName); Assert.AreEqual("MyRelatedBoID", join.JoinFields[0].ToField.PropertyName); Assert.AreEqual("My_Related_Bo_ID", join.JoinFields[0].ToField.FieldName); //---------------Tear Down ------------------------- }