public void TestLoadingRelatedObjectWithSingleTableInheritance() { //---------------Set up test pack------------------- DatabaseConnection.CurrentConnection.ExecuteRawSql( "delete from filledcircle_table; delete from circle_table; delete from shape_table"); //MyBO has a relationship to Shape. Shape potentially has a circle for single table inheritance. MyBO.LoadClassDefWithShape_SingleTableInheritance_Relationship(); MyBO bo = new MyBO(); CircleNoPrimaryKey circle = new CircleNoPrimaryKey(); circle.Radius = 5; circle.ShapeName = "MyShape"; circle.Save(); bo.SetPropertyValue("ShapeID", circle.ShapeID); bo.Save(); FixtureEnvironment.ClearBusinessObjectManager(); //---------------Execute Test ---------------------- bo = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <MyBO>(bo.ID); Shape shape = bo.Shape; //---------------Test Result ----------------------- Assert.AreSame(typeof(CircleNoPrimaryKey), shape.GetType()); Assert.IsFalse(shape.Status.IsNew); Assert.IsFalse(shape.Status.IsDeleted); Assert.IsFalse(shape.Status.IsEditing); Assert.IsFalse(shape.Status.IsDirty); Assert.IsTrue(shape.Status.IsValid()); }
public void TearDown() { Criteria criteria1 = new Criteria("ShapeName", Criteria.ComparisonOp.Equals, "MyShape"); Shape shape = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <Shape>( criteria1); if (shape != null) { shape.MarkForDelete(); shape.Save(); } criteria1 = new Criteria("ShapeName", Criteria.ComparisonOp.Equals, "Circle"); Criteria criteria2 = new Criteria("ShapeName", Criteria.ComparisonOp.Equals, "CircleChanged"); Criteria criteria = new Criteria(criteria1, Criteria.LogicalOp.Or, criteria2); CircleNoPrimaryKey circle = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <CircleNoPrimaryKey>( criteria); if (circle != null) { circle.MarkForDelete(); circle.Save(); } criteria1 = new Criteria("ShapeName", Criteria.ComparisonOp.Equals, "FilledCircle"); criteria2 = new Criteria("ShapeName", Criteria.ComparisonOp.Equals, "FilledCircleChanged"); criteria = new Criteria(criteria1, Criteria.LogicalOp.Or, criteria2); FilledCircleNoPrimaryKey filledCircle = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <FilledCircleNoPrimaryKey>( criteria); if (filledCircle == null) { return; } filledCircle.MarkForDelete(); filledCircle.Save(); }
protected override void SetupInheritanceSpecifics() { SuperClassDef superClassDef = new SuperClassDef(Shape.GetClassDef(), ORMapping.ClassTableInheritance); CircleNoPrimaryKey.GetClassDef().SuperClassDef = superClassDef; superClassDef.ID = ""; }
public void TestDeleteShapes() { //-------------Setup Test Pack ------------------ Shape shape = CreateSavedShape(); CircleNoPrimaryKey circle = CreateSavedCircle(); FilledCircleInheritsCircleNoPK filledCircle = CreateSavedFilledCircle(); //-------------Execute test --------------------- shape.MarkForDelete(); shape.Save(); circle.MarkForDelete(); circle.Save(); filledCircle.MarkForDelete(); filledCircle.Save(); //-------------Test Result ---------------------- BusinessObjectCollection <Shape> shapes = new BusinessObjectCollection <Shape>(); BusinessObjectCollection <CircleNoPrimaryKey> circles = new BusinessObjectCollection <CircleNoPrimaryKey>(); BusinessObjectCollection <FilledCircleInheritsCircleNoPK> filledCircles = new BusinessObjectCollection <FilledCircleInheritsCircleNoPK>(); shapes.LoadAll(); circles.LoadAll(); filledCircles.LoadAll(); Assert.AreEqual(0, shapes.Count); Assert.AreEqual(0, circles.Count); Assert.AreEqual(0, filledCircles.Count); }
protected override void SetupInheritanceSpecifics() { Shape.GetClassDef().PropDefcol.Add(new PropDef("ShapeType_field", typeof(string), PropReadWriteRule.WriteOnce, "ShapeType_field", null)); CircleNoPrimaryKey.GetClassDef().SuperClassDef = new SuperClassDef(Shape.GetClassDef(), ORMapping.SingleTableInheritance); CircleNoPrimaryKey.GetClassDef().SuperClassDef.Discriminator = "ShapeType_field"; }
protected override void SetupInheritanceSpecifics() { CircleNoPrimaryKey.GetClassDef().SuperClassDef = new SuperClassDef(Shape.GetClassDef(), ORMapping.SingleTableInheritance); CircleNoPrimaryKey.GetClassDef().SuperClassDef.Discriminator = "ShapeType_field"; FilledCircleInheritsCircleNoPK.GetClassDef().SuperClassDef = new SuperClassDef(CircleNoPrimaryKey.GetClassDef(), ORMapping.ClassTableInheritance); }
public void TestSuperClassKey() { IBOKey msuperKey = BOPrimaryKey.GetSuperClassKey((ClassDef)CircleNoPrimaryKey.GetClassDef(), objCircle); Assert.IsTrue(msuperKey.Contains("ShapeID"), "Super class key should contain the ShapeID property"); Assert.AreEqual(1, msuperKey.Count, "Super class key should only have one prop"); Assert.AreEqual(msuperKey["ShapeID"].Value, objCircle.ID["ShapeID"].Value, "ShapeID in parent and child should be the same"); }
protected static CircleNoPrimaryKey CreateSavedCircle() { CircleNoPrimaryKey circle = new CircleNoPrimaryKey(); circle.Radius = 5; circle.ShapeName = "Circle"; circle.Save(); return(circle); }
public void Test_Instantiate_SubClassWithNoPrimaryKey() { //---------------Set up test pack------------------- //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- CircleNoPrimaryKey circle = new CircleNoPrimaryKey(); //---------------Test Result ----------------------- Assert.IsNotNull(circle); }
protected void SetupInheritanceSpecifics() { ClassDef.ClassDefs.Clear(); _classDefShape = Shape.GetClassDef(); _classDefCircleNoPrimaryKey = CircleNoPrimaryKey.GetClassDef(); _classDefCircleNoPrimaryKey.SuperClassDef = new SuperClassDef(_classDefShape, ORMapping.SingleTableInheritance); _classDefCircleNoPrimaryKey.SuperClassDef.Discriminator = "ShapeType_field"; _classDefFilledCircleNoPrimaryKey = FilledCircleNoPrimaryKey.GetClassDef(); _classDefFilledCircleNoPrimaryKey.SuperClassDef = new SuperClassDef(_classDefCircleNoPrimaryKey, ORMapping.SingleTableInheritance); _classDefFilledCircleNoPrimaryKey.SuperClassDef.Discriminator = "ShapeType_field"; }
public void TestCircleNoPrimaryKeyInheritsID() { //---------------Set up test pack------------------- IClassDef shapeClassDef = Shape.GetClassDef(); //---------------Execute Test ---------------------- BusinessObject objCircleNoPrimaryKey = new CircleNoPrimaryKey(); //---------------Test Result ----------------------- Assert.IsNotNull(shapeClassDef.PrimaryKeyDef); Shape parent = (Shape)objCircleNoPrimaryKey; Assert.AreEqual(objCircleNoPrimaryKey.ID, parent.ID); Assert.AreEqual(objCircleNoPrimaryKey.GetPropertyValue("ShapeID"), parent.GetPropertyValue("ShapeID")); }
public void TestLoad_SingleTableInheritance() { //---------------Set up test pack------------------- CircleNoPrimaryKey.GetClassDefWithSingleInheritance(); CircleNoPrimaryKey circle = CircleNoPrimaryKey.CreateSavedCircle(); //---------------Execute Test ---------------------- CircleNoPrimaryKey loadedCircle = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <CircleNoPrimaryKey>(circle.ID); //---------------Test Result ----------------------- Assert.AreSame(circle, loadedCircle); }
public void TestLoad_SingleTableInheritance_Hierarchy_LoadingMiddleType_ShouldLoadSubType() { //---------------Set up test pack------------------- FilledCircleNoPrimaryKey.GetClassDefWithSingleInheritanceHierarchy(); FilledCircleNoPrimaryKey filledCircle = FilledCircleNoPrimaryKey.CreateSavedFilledCircle(); Shape shape = Shape.CreateSavedShape(); CircleNoPrimaryKey circle = CircleNoPrimaryKey.CreateSavedCircle(); //---------------Execute Test ---------------------- BusinessObjectCollection <CircleNoPrimaryKey> loadedCircles = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObjectCollection <CircleNoPrimaryKey>(""); //---------------Test Result ----------------------- Assert.AreEqual(2, loadedCircles.Count); }
public void TestPrepareDiscriminatorCriteria() { //---------------Set up test pack------------------- IClassDef circleClassDef = CircleNoPrimaryKey.GetClassDefWithSingleInheritance(); SelectQuery selectQuery = (SelectQuery)QueryBuilder.CreateSelectQuery(circleClassDef); Criteria discCriteria = selectQuery.DiscriminatorCriteria; //---------------Execute Test ---------------------- QueryBuilder.PrepareDiscriminatorCriteria(circleClassDef, discCriteria); //---------------Test Result ----------------------- Assert.AreEqual("ShapeType_field", discCriteria.Field.PropertyName); Assert.AreEqual("ShapeType_field", discCriteria.Field.FieldName); Assert.AreEqual("Shape", discCriteria.Field.Source.Name); Assert.AreEqual("Shape_table", discCriteria.Field.Source.EntityName); }
public void Test_GetBusinessObjectCollection_NonGeneric_LoadOfSubTypeDoesntLoadSuperTypedObjects() { //---------------Set up test pack------------------- IClassDef classDef = CircleNoPrimaryKey.GetClassDefWithSingleInheritance(); Shape shape = Shape.CreateSavedShape(); Criteria criteria = Criteria.FromPrimaryKey(shape.ID); //---------------Execute Test ---------------------- IBusinessObjectCollection loadedCircles = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObjectCollection(classDef, criteria); //---------------Test Result ----------------------- Assert.AreEqual(0, loadedCircles.Count); Assert.IsInstanceOf(typeof(BusinessObjectCollection <CircleNoPrimaryKey>), loadedCircles); }
public void TestGetBusinessObject_ReturnsSubType_Fresh() { //---------------Set up test pack------------------- SetupDataAccessor(); CircleNoPrimaryKey.GetClassDefWithSingleInheritance(); CircleNoPrimaryKey circle = CircleNoPrimaryKey.CreateSavedCircle(); FixtureEnvironment.ClearBusinessObjectManager(); //---------------Execute Test ---------------------- Shape loadedShape = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <Shape>(circle.ID); //---------------Test Result ----------------------- Assert.IsInstanceOf(typeof(CircleNoPrimaryKey), loadedShape); }
public void TestLoad_SingleTableInheritance_Fresh() { //---------------Set up test pack------------------- CircleNoPrimaryKey.GetClassDefWithSingleInheritance(); CircleNoPrimaryKey circle = CircleNoPrimaryKey.CreateSavedCircle(); //---------------Execute Test ---------------------- FixtureEnvironment.ClearBusinessObjectManager(); CircleNoPrimaryKey loadedCircle = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <CircleNoPrimaryKey>(circle.ID); //---------------Test Result ----------------------- Assert.AreNotSame(loadedCircle, circle); Assert.AreEqual(circle.Radius, loadedCircle.Radius); Assert.AreEqual(circle.ShapeName, loadedCircle.ShapeName); }
public void TestSingleTableInheritance_Fields() { //---------------Set up test pack------------------- IClassDef circleClassDef = CircleNoPrimaryKey.GetClassDefWithSingleInheritance(); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- ISelectQuery selectQuery = QueryBuilder.CreateSelectQuery(circleClassDef); //---------------Test Result ----------------------- Assert.AreEqual(4, selectQuery.Fields.Count); Assert.IsTrue(selectQuery.Fields.ContainsKey("ShapeID")); Assert.IsTrue(selectQuery.Fields.ContainsKey("ShapeName")); Assert.IsTrue(selectQuery.Fields.ContainsKey("Radius")); Assert.IsTrue(selectQuery.Fields.ContainsKey("ShapeType_field")); Assert.AreEqual("Shape_table", selectQuery.Source.EntityName); }
public void Test_GetBusinessObjectCollection_Generic_LoadOfSubTypeDoesntLoadSuperTypedObjects_Fresh() { //---------------Set up test pack------------------- CircleNoPrimaryKey.GetClassDefWithSingleInheritance(); Shape shape = Shape.CreateSavedShape(); Criteria criteria = Criteria.FromPrimaryKey(shape.ID); FixtureEnvironment.ClearBusinessObjectManager(); //---------------Execute Test ---------------------- BusinessObjectCollection <CircleNoPrimaryKey> loadedCircles = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObjectCollection <CircleNoPrimaryKey> (criteria); //---------------Test Result ----------------------- Assert.AreEqual(0, loadedCircles.Count); }
public void TestLoadUpdatedShapes() { //-------------Setup Test Pack ------------------ Shape shape = CreateSavedShape(); CircleNoPrimaryKey circle = CreateSavedCircle(); FilledCircleInheritsCircleNoPK filledCircle = CreateSavedFilledCircle(); shape.ShapeName = "MyShapeChanged"; shape.Save(); circle.ShapeName = "CircleChanged"; circle.Radius = 10; circle.Save(); filledCircle.ShapeName = "FilledCircleChanged"; filledCircle.Radius = 12; filledCircle.Colour = 4; filledCircle.Save(); //-------------Execute test --------------------- BusinessObjectCollection <Shape> shapes = new BusinessObjectCollection <Shape>(); BusinessObjectCollection <CircleNoPrimaryKey> circles = new BusinessObjectCollection <CircleNoPrimaryKey>(); BusinessObjectCollection <FilledCircleInheritsCircleNoPK> filledCircles = new BusinessObjectCollection <FilledCircleInheritsCircleNoPK>(); shapes.LoadAll("ShapeName"); circles.LoadAll("ShapeName"); filledCircles.LoadAll("ShapeName"); //-------------Test Result ---------------------- Assert.AreEqual(3, shapes.Count); Assert.AreEqual("CircleChanged", shapes[0].ShapeName); Assert.AreEqual("FilledCircleChanged", shapes[1].ShapeName); Assert.AreEqual("MyShapeChanged", shapes[2].ShapeName); Assert.AreEqual(2, circles.Count); Assert.AreEqual(10, circles[0].Radius); Assert.AreEqual(12, circles[1].Radius); Assert.AreEqual("CircleChanged", circles[0].ShapeName); Assert.AreEqual("FilledCircleChanged", circles[1].ShapeName); Assert.AreEqual(1, filledCircles.Count); Assert.AreEqual(4, filledCircles[0].Colour); Assert.AreEqual(12, filledCircles[0].Radius); Assert.AreEqual("FilledCircleChanged", filledCircles[0].ShapeName); }
public void Test_GetBusinessObjectCollection_Generic_ReturnsSubType_NonFresh() { //---------------Set up test pack------------------- CircleNoPrimaryKey.GetClassDefWithSingleInheritance(); CircleNoPrimaryKey circle = CircleNoPrimaryKey.CreateSavedCircle(); Criteria criteria = Criteria.FromPrimaryKey(circle.ID); //---------------Execute Test ---------------------- BusinessObjectCollection <Shape> loadedShapes = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObjectCollection <Shape>(criteria); //---------------Test Result ----------------------- Assert.AreEqual(1, loadedShapes.Count); Shape loadedShape = loadedShapes[0]; Assert.IsInstanceOf(typeof(CircleNoPrimaryKey), loadedShape); Assert.AreSame(circle, loadedShape); }
public void TestUniqueKeyValidationForSubTypesOfSingleTableInheritanceStructure() { //Should not be allowed to save circle with the same shape name as shape. //---------------Set up test pack------------------- DatabaseConnection.CurrentConnection.ExecuteRawSql( "delete from filledcircle_table; delete from circle_table; delete from shape_table"); Shape shape = new Shape { ShapeName = "MyShape" }; shape.Save(); CircleNoPrimaryKey circle = new CircleNoPrimaryKey(); circle.Radius = 5; circle.ShapeName = "MyShape"; //---------------Execute Test ---------------------- circle.Save(); }
public void TestLoadCreatedShapes_ShapeAndCircleAndFilledCircle() { //-------------Setup Test Pack ------------------ CreateSavedShape(); CreateSavedCircle(); CreateSavedFilledCircle(); //-------------Execute test --------------------- BusinessObjectCollection <Shape> shapes = new BusinessObjectCollection <Shape>(); shapes.LoadAll("ShapeName"); BusinessObjectCollection <CircleNoPrimaryKey> circles = new BusinessObjectCollection <CircleNoPrimaryKey>(); circles.LoadAll("ShapeName"); BusinessObjectCollection <FilledCircleInheritsCircleNoPK> filledCircles = new BusinessObjectCollection <FilledCircleInheritsCircleNoPK>(); filledCircles.LoadAll(); //-------------Test Result ---------------------- Assert.AreEqual(3, shapes.Count); Assert.AreEqual("Circle", shapes[0].ShapeName); Assert.AreEqual("FilledCircle", shapes[1].ShapeName); Assert.AreEqual("MyShape", shapes[2].ShapeName); Shape filledCircleShape = shapes[1]; Assert.AreEqual(2, circles.Count); Assert.AreEqual("FilledCircle", circles[1].ShapeName); CircleNoPrimaryKey filledCircleCircle = circles[1]; Assert.AreEqual(filledCircleShape.ShapeID, filledCircleCircle.ShapeID); Assert.AreEqual(7, filledCircleCircle.Radius); Assert.AreEqual(1, filledCircles.Count); Assert.AreEqual(filledCircles[0].ShapeID, filledCircleShape.ShapeID); FilledCircleInheritsCircleNoPK filledCircle = filledCircles[0]; Assert.AreEqual(7, filledCircle.Radius); Assert.AreEqual("FilledCircle", filledCircle.ShapeName); Assert.AreEqual(3, filledCircle.Colour); }
public void TestSingleTableInheritance_SubTypeHasDiscriminator() { //---------------Set up test pack------------------- IClassDef circleClassDef = CircleNoPrimaryKey.GetClassDefWithSingleInheritance(); Criteria expected = new Criteria("ShapeType_field", Criteria.ComparisonOp.Equals, "CircleNoPrimaryKey"); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- SelectQuery selectQuery = (SelectQuery)QueryBuilder.CreateSelectQuery(circleClassDef); //---------------Test Result ----------------------- Assert.AreEqual(expected, selectQuery.DiscriminatorCriteria); Criteria discCriteria = selectQuery.DiscriminatorCriteria; Assert.AreEqual("ShapeType_field", discCriteria.Field.PropertyName); Assert.AreEqual("ShapeType_field", discCriteria.Field.FieldName); Assert.AreEqual("Shape", discCriteria.Field.Source.Name); Assert.AreEqual("Shape_table", discCriteria.Field.Source.EntityName); }
public void TestFindAll_ClassDef_WhenIsSubType() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); CircleNoPrimaryKey.GetClassDef().SuperClassDef = new SuperClassDef(Shape.GetClassDef(), ORMapping.SingleTableInheritance); CircleNoPrimaryKey.GetClassDef().SuperClassDef.Discriminator = "ShapeType_field"; Shape.GetClassDef().PropDefcol.Add(new PropDef("ShapeType_field", typeof(string), PropReadWriteRule.WriteOnce, "ShapeType_field", null)); DataStoreInMemory dataStore = new DataStoreInMemory(); CircleNoPrimaryKey circleNoPrimaryKey = new CircleNoPrimaryKey(); dataStore.Add(circleNoPrimaryKey); //---------------Execute Test ---------------------- IBusinessObjectCollection col = dataStore.FindAll(ClassDef.Get <Shape>(), null); //---------------Test Result ----------------------- Assert.AreEqual(1, col.Count); Assert.Contains(circleNoPrimaryKey, col); Assert.IsNull(col.SelectQuery.Criteria); }
public void TestSingleTableInheritance_BaseHasDiscriminator() { //---------------Set up test pack------------------- ClassDef circleClassDef = (ClassDef)CircleNoPrimaryKey.GetClassDefWithSingleInheritance(); IClassDef shapeClassDef = circleClassDef.SuperClassClassDef; Criteria expectedShapeCriteria = new Criteria("ShapeType_field", Criteria.ComparisonOp.Is, "null"); Criteria expectedCircleCriteria = new Criteria("ShapeType_field", Criteria.ComparisonOp.Equals, "CircleNoPrimaryKey"); Criteria expected = new Criteria(expectedShapeCriteria, Criteria.LogicalOp.Or, expectedCircleCriteria); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- SelectQuery selectQuery = (SelectQuery)QueryBuilder.CreateSelectQuery(shapeClassDef); //---------------Test Result ----------------------- Assert.AreEqual(3, selectQuery.Fields.Count); Assert.IsTrue(selectQuery.Fields.ContainsKey("ShapeID")); Assert.IsTrue(selectQuery.Fields.ContainsKey("ShapeName")); Assert.IsTrue(selectQuery.Fields.ContainsKey("ShapeType_field")); Assert.AreEqual(expected, selectQuery.DiscriminatorCriteria); Assert.AreEqual("Shape_table", selectQuery.Source.EntityName); }
public void Test_GetBusinessObjectCollection_NonGeneric_ReturnsSubType_Fresh() { //---------------Set up test pack------------------- CircleNoPrimaryKey.GetClassDefWithSingleInheritance(); CircleNoPrimaryKey circle = CircleNoPrimaryKey.CreateSavedCircle(); Criteria criteria = Criteria.FromPrimaryKey(circle.ID); FixtureEnvironment.ClearBusinessObjectManager(); IClassDef classDef = ClassDef.Get <Shape>(); //---------------Execute Test ---------------------- IBusinessObjectCollection loadedShapes = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObjectCollection(classDef, criteria); //---------------Test Result ----------------------- Assert.AreEqual(1, loadedShapes.Count); Assert.IsInstanceOf(typeof(Shape), loadedShapes[0]); Shape loadedShape = (Shape)loadedShapes[0]; Assert.IsInstanceOf(typeof(CircleNoPrimaryKey), loadedShape); Assert.IsInstanceOf(typeof(BusinessObjectCollection <Shape>), loadedShapes); }
public void TestLoad_SingleTableInheritance__GetBOAsParent_ThenGetBOAsShape_ThenGetAsCircle_ShouldLoadCircle() { //---------------Set up test pack------------------- CircleNoPrimaryKey.GetClassDefWithSingleInheritance(); CircleNoPrimaryKey circle = CircleNoPrimaryKey.CreateSavedCircle(); FixtureEnvironment.ClearBusinessObjectManager(); //---------------Assert Preconditions--------------- //---------------Execute Test ---------------------- Shape circleLoadedAsShape = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <Shape>("ShapeID = " + circle.ShapeID); CircleNoPrimaryKey loadedCircle = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <CircleNoPrimaryKey>(circle.ID); //---------------Test Result ----------------------- Assert.IsNotNull(circleLoadedAsShape); Assert.AreEqual(circle.ShapeName, circleLoadedAsShape.ShapeName); Assert.IsNotNull(loadedCircle); Assert.AreNotSame(loadedCircle, circle); Assert.AreSame(loadedCircle, circleLoadedAsShape); Assert.AreEqual(circle.Radius, loadedCircle.Radius); Assert.AreEqual(circle.ShapeName, loadedCircle.ShapeName); }
public void TestLoadingRelatedObjectWithSingleTableInheritance() { //---------------Set up test pack------------------- DatabaseConnection.CurrentConnection.ExecuteRawSql( "delete from filledcircle_table; delete from circle_table; delete from shape_table"); //MyBO has a relationship to Shape. Shape potentially has a circle for single table inheritance. MyBO.LoadClassDefWithShape_SingleTableInheritance_Relationship(); MyBO bo = new MyBO(); CircleNoPrimaryKey circle = new CircleNoPrimaryKey(); circle.Radius = 5; circle.ShapeName = "MyShape"; circle.Save(); bo.SetPropertyValue("ShapeID", circle.ShapeID); bo.Save(); FixtureEnvironment.ClearBusinessObjectManager(); //---------------Execute Test ---------------------- bo = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject<MyBO>(bo.ID); Shape shape = bo.Shape; //---------------Test Result ----------------------- Assert.AreSame(typeof (CircleNoPrimaryKey), shape.GetType()); Assert.IsFalse(shape.Status.IsNew); Assert.IsFalse(shape.Status.IsDeleted); Assert.IsFalse(shape.Status.IsEditing); Assert.IsFalse(shape.Status.IsDirty); Assert.IsTrue(shape.Status.IsValid()); }
public void TestDatabaseReadWrite() { FixtureEnvironment.ClearBusinessObjectManager(); // Test inserting & selecting Shape shape = new Shape(); shape.ShapeName = "MyShape"; shape.Save(); BusinessObjectCollection<Shape> shapes = new BusinessObjectCollection<Shape>(); shapes.LoadAll(); Assert.AreEqual(1, shapes.Count); BusinessObjectCollection<CircleNoPrimaryKey> circles = new BusinessObjectCollection<CircleNoPrimaryKey>(); circles.LoadAll(); Assert.AreEqual(0, circles.Count); CircleNoPrimaryKey circle = new CircleNoPrimaryKey(); circle.Radius = 5; circle.ShapeName = "Circle"; circle.Save(); shapes.LoadAll("ShapeName"); Assert.AreEqual(2, shapes.Count); Assert.AreEqual("Circle", shapes[0].ShapeName); Assert.AreEqual("MyShape", shapes[1].ShapeName); circles.LoadAll(); Assert.AreEqual(1, circles.Count); Assert.AreEqual(circles[0].ShapeID, shapes[0].ShapeID); Assert.IsFalse(circles[0].Props.Contains("CircleID")); Assert.AreEqual(5, circles[0].Radius); Assert.AreEqual("Circle", circles[0].ShapeName); // Test updating shape.ShapeName = "MyShapeChanged"; shape.Save(); circle.ShapeName = "CircleChanged"; circle.Radius = 10; circle.Save(); shapes.LoadAll("ShapeName"); Assert.AreEqual("CircleChanged", shapes[0].ShapeName); Assert.AreEqual("MyShapeChanged", shapes[1].ShapeName); circles.LoadAll(); Assert.AreEqual(10, circles[0].Radius); Assert.AreEqual("CircleChanged", circles[0].ShapeName); // Test deleting shape.MarkForDelete(); shape.Save(); circle.MarkForDelete(); circle.Save(); shapes.LoadAll(); Assert.AreEqual(0, shapes.Count); circles.LoadAll(); Assert.AreEqual(0, circles.Count); }
public void TestFilledCircleIsUsingCorrectInheritance() { Assert.AreEqual(ORMapping.SingleTableInheritance, CircleNoPrimaryKey.GetClassDef().SuperClassDef.ORMapping); Assert.AreEqual(ORMapping.ClassTableInheritance, FilledCircleInheritsCircleNoPK.GetClassDef().SuperClassDef.ORMapping); }
public void TestCircleIsNotDirty() { CircleNoPrimaryKey circle = new CircleNoPrimaryKey(); Assert.IsFalse(circle.Status.IsDirty); }
public void TestDatabaseReadWrite() { // Test inserting & selecting Shape shape = new Shape(); string shapeName = "MyShape"; shape.ShapeName = shapeName; shape.Save(); BusinessObjectCollection<Shape> shapes = new BusinessObjectCollection<Shape>(); shapes.LoadAll(); Assert.AreEqual(1, shapes.Count); BusinessObjectCollection<CircleNoPrimaryKey> circles = new BusinessObjectCollection<CircleNoPrimaryKey>(); circles.LoadAll(); Assert.AreEqual(0, circles.Count); CircleNoPrimaryKey circle = new CircleNoPrimaryKey(); circle.Radius = 5; circle.ShapeName = "Circle"; circle.Save(); shapes.LoadAll("ShapeName"); Assert.AreEqual(2, shapes.Count); Assert.AreEqual("Circle", shapes[0].ShapeName); Assert.AreEqual(shapeName, shapes[1].ShapeName); circles.LoadAll(); Assert.AreEqual(1, circles.Count); Assert.AreEqual(circles[0].ShapeID, shapes[0].ShapeID); Assert.AreEqual(5, circles[0].Radius); Assert.AreEqual("Circle", circles[0].ShapeName); // Test updating shape.ShapeName = "MyShapeChanged"; shape.Save(); circle.ShapeName = "CircleChanged"; circle.Radius = 10; circle.Save(); shapes.LoadAll("ShapeName"); Assert.AreEqual("CircleChanged", shapes[0].ShapeName); Assert.AreEqual("MyShapeChanged", shapes[1].ShapeName); circles.LoadAll(); Assert.AreEqual(10, circles[0].Radius); Assert.AreEqual("CircleChanged", circles[0].ShapeName); // Test deleting shape.MarkForDelete(); shape.Save(); circle.MarkForDelete(); circle.Save(); shapes.LoadAll(); Assert.AreEqual(0, shapes.Count); circles.LoadAll(); Assert.AreEqual(0, circles.Count); }
public void TestDatabaseReadWrite() { // Test inserting & selecting Shape shape = new Shape { ShapeName = "MyShape" }; shape.Save(); BusinessObjectCollection <Shape> shapes = new BusinessObjectCollection <Shape>(); shapes.LoadAll(); Assert.AreEqual(1, shapes.Count); BusinessObjectCollection <CircleNoPrimaryKey> circles = new BusinessObjectCollection <CircleNoPrimaryKey>(); circles.LoadAll(); Assert.AreEqual(0, circles.Count); BusinessObjectCollection <FilledCircleNoPrimaryKey> filledCircles = new BusinessObjectCollection <FilledCircleNoPrimaryKey>(); filledCircles.LoadAll(); Assert.AreEqual(0, filledCircles.Count); CircleNoPrimaryKey circle = new CircleNoPrimaryKey { Radius = 5, ShapeName = "Circle" }; circle.Save(); FixtureEnvironment.ClearBusinessObjectManager(); shapes.LoadAll("ShapeName"); Assert.AreEqual(2, shapes.Count); Assert.AreEqual("Circle", shapes[0].ShapeName); Assert.AreEqual("MyShape", shapes[1].ShapeName); FixtureEnvironment.ClearBusinessObjectManager(); circles.LoadAll(); Assert.AreEqual(1, circles.Count); Assert.AreEqual(circles[0].ShapeID, shapes[0].ShapeID); Assert.AreEqual(5, circles[0].Radius); Assert.AreEqual("Circle", circles[0].ShapeName); FilledCircleNoPrimaryKey filledCircle = new FilledCircleNoPrimaryKey { Colour = 3, Radius = 7, ShapeName = "FilledCircle" }; filledCircle.Save(); FixtureEnvironment.ClearBusinessObjectManager(); shapes.LoadAll("ShapeName"); Assert.AreEqual(3, shapes.Count); Assert.AreEqual("Circle", shapes[0].ShapeName); Assert.AreEqual("FilledCircle", shapes[1].ShapeName); Assert.AreEqual("MyShape", shapes[2].ShapeName); Assert.That(shapes[0], Is.InstanceOf(typeof(CircleNoPrimaryKey))); Assert.That(shapes[1], Is.InstanceOf(typeof(FilledCircleNoPrimaryKey))); Assert.That(shapes[2], Is.InstanceOf(typeof(Shape))); circles.LoadAll("ShapeName"); Assert.AreEqual(2, circles.Count); Assert.AreEqual(circles[1].ShapeID, shapes[1].ShapeID); Assert.AreEqual(7, circles[1].Radius); Assert.AreEqual("FilledCircle", circles[1].ShapeName); filledCircles.LoadAll(); Assert.AreEqual(1, filledCircles.Count); Assert.AreEqual(filledCircles[0].ShapeID, shapes[1].ShapeID); Assert.AreEqual(7, filledCircles[0].Radius); Assert.AreEqual("FilledCircle", filledCircles[0].ShapeName); Assert.AreEqual(3, filledCircles[0].Colour); // Test updating shape.ShapeName = "MyShapeChanged"; shape.Save(); circle.ShapeName = "CircleChanged"; circle.Radius = 10; circle.Save(); filledCircle.ShapeName = "FilledCircleChanged"; filledCircle.Radius = 12; filledCircle.Colour = 4; filledCircle.Save(); shapes.LoadAll("ShapeName"); Assert.AreEqual("CircleChanged", shapes[0].ShapeName); Assert.AreEqual("FilledCircleChanged", shapes[1].ShapeName); Assert.AreEqual("MyShapeChanged", shapes[2].ShapeName); circles.LoadAll("ShapeName"); Assert.AreEqual(10, circles[0].Radius); Assert.AreEqual(12, circles[1].Radius); Assert.AreEqual("CircleChanged", circles[0].ShapeName); Assert.AreEqual("FilledCircleChanged", circles[1].ShapeName); filledCircles.LoadAll(); Assert.AreEqual(4, filledCircles[0].Colour); Assert.AreEqual(12, filledCircles[0].Radius); Assert.AreEqual("FilledCircleChanged", filledCircles[0].ShapeName); // Test deleting shape.MarkForDelete(); shape.Save(); circle.MarkForDelete(); circle.Save(); filledCircle.MarkForDelete(); filledCircle.Save(); shapes.LoadAll(); Assert.AreEqual(0, shapes.Count); Assert.AreEqual(0, shapes.PersistedBusinessObjects.Count); Assert.AreEqual(0, shapes.CreatedBusinessObjects.Count); circles.LoadAll(); Assert.AreEqual(0, circles.Count); filledCircles.LoadAll(); Assert.AreEqual(0, filledCircles.Count); }
public void TestFindAll_ClassDef_WhenIsSubType() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); CircleNoPrimaryKey.GetClassDef().SuperClassDef = new SuperClassDef(Shape.GetClassDef(), ORMapping.SingleTableInheritance); CircleNoPrimaryKey.GetClassDef().SuperClassDef.Discriminator = "ShapeType_field"; Shape.GetClassDef().PropDefcol.Add(new PropDef("ShapeType_field", typeof(string), PropReadWriteRule.WriteOnce, "ShapeType_field", null)); DataStoreInMemory dataStore = new DataStoreInMemory(); CircleNoPrimaryKey circleNoPrimaryKey = new CircleNoPrimaryKey (); dataStore.Add(circleNoPrimaryKey); //---------------Execute Test ---------------------- IBusinessObjectCollection col = dataStore.FindAll(ClassDef.Get<Shape>(), null); //---------------Test Result ----------------------- Assert.AreEqual(1, col.Count); Assert.Contains(circleNoPrimaryKey, col); Assert.IsNull(col.SelectQuery.Criteria); }
public void TestUniqueKeyValidationForSubTypesOfSingleTableInheritanceStructure() { //Should not be allowed to save circle with the same shape name as shape. //---------------Set up test pack------------------- DatabaseConnection.CurrentConnection.ExecuteRawSql( "delete from filledcircle_table; delete from circle_table; delete from shape_table"); Shape shape = new Shape {ShapeName = "MyShape"}; shape.Save(); CircleNoPrimaryKey circle = new CircleNoPrimaryKey(); circle.Radius = 5; circle.ShapeName = "MyShape"; //---------------Execute Test ---------------------- circle.Save(); }
protected static CircleNoPrimaryKey CreateSavedCircle() { CircleNoPrimaryKey circle = new CircleNoPrimaryKey(); circle.Radius = 5; circle.ShapeName = "Circle"; circle.Save(); return circle; }
public void TestDatabaseReadWrite() { // Test inserting & selecting Shape shape = new Shape {ShapeName = "MyShape"}; shape.Save(); BusinessObjectCollection<Shape> shapes = new BusinessObjectCollection<Shape>(); shapes.LoadAll(); Assert.AreEqual(1, shapes.Count); BusinessObjectCollection<CircleNoPrimaryKey> circles = new BusinessObjectCollection<CircleNoPrimaryKey>(); circles.LoadAll(); Assert.AreEqual(0, circles.Count); BusinessObjectCollection<FilledCircleNoPrimaryKey> filledCircles = new BusinessObjectCollection<FilledCircleNoPrimaryKey>(); filledCircles.LoadAll(); Assert.AreEqual(0, filledCircles.Count); CircleNoPrimaryKey circle = new CircleNoPrimaryKey {Radius = 5, ShapeName = "Circle"}; circle.Save(); FixtureEnvironment.ClearBusinessObjectManager(); shapes.LoadAll("ShapeName"); Assert.AreEqual(2, shapes.Count); Assert.AreEqual("Circle", shapes[0].ShapeName); Assert.AreEqual("MyShape", shapes[1].ShapeName); FixtureEnvironment.ClearBusinessObjectManager(); circles.LoadAll(); Assert.AreEqual(1, circles.Count); Assert.AreEqual(circles[0].ShapeID, shapes[0].ShapeID); Assert.AreEqual(5, circles[0].Radius); Assert.AreEqual("Circle", circles[0].ShapeName); FilledCircleNoPrimaryKey filledCircle = new FilledCircleNoPrimaryKey { Colour = 3, Radius = 7, ShapeName = "FilledCircle" }; filledCircle.Save(); FixtureEnvironment.ClearBusinessObjectManager(); shapes.LoadAll("ShapeName"); Assert.AreEqual(3, shapes.Count); Assert.AreEqual("Circle", shapes[0].ShapeName); Assert.AreEqual("FilledCircle", shapes[1].ShapeName); Assert.AreEqual("MyShape", shapes[2].ShapeName); Assert.That(shapes[0], Is.InstanceOf(typeof(CircleNoPrimaryKey))); Assert.That(shapes[1], Is.InstanceOf(typeof(FilledCircleNoPrimaryKey))); Assert.That(shapes[2], Is.InstanceOf(typeof(Shape))); circles.LoadAll("ShapeName"); Assert.AreEqual(2, circles.Count); Assert.AreEqual(circles[1].ShapeID, shapes[1].ShapeID); Assert.AreEqual(7, circles[1].Radius); Assert.AreEqual("FilledCircle", circles[1].ShapeName); filledCircles.LoadAll(); Assert.AreEqual(1, filledCircles.Count); Assert.AreEqual(filledCircles[0].ShapeID, shapes[1].ShapeID); Assert.AreEqual(7, filledCircles[0].Radius); Assert.AreEqual("FilledCircle", filledCircles[0].ShapeName); Assert.AreEqual(3, filledCircles[0].Colour); // Test updating shape.ShapeName = "MyShapeChanged"; shape.Save(); circle.ShapeName = "CircleChanged"; circle.Radius = 10; circle.Save(); filledCircle.ShapeName = "FilledCircleChanged"; filledCircle.Radius = 12; filledCircle.Colour = 4; filledCircle.Save(); shapes.LoadAll("ShapeName"); Assert.AreEqual("CircleChanged", shapes[0].ShapeName); Assert.AreEqual("FilledCircleChanged", shapes[1].ShapeName); Assert.AreEqual("MyShapeChanged", shapes[2].ShapeName); circles.LoadAll("ShapeName"); Assert.AreEqual(10, circles[0].Radius); Assert.AreEqual(12, circles[1].Radius); Assert.AreEqual("CircleChanged", circles[0].ShapeName); Assert.AreEqual("FilledCircleChanged", circles[1].ShapeName); filledCircles.LoadAll(); Assert.AreEqual(4, filledCircles[0].Colour); Assert.AreEqual(12, filledCircles[0].Radius); Assert.AreEqual("FilledCircleChanged", filledCircles[0].ShapeName); // Test deleting shape.MarkForDelete(); shape.Save(); circle.MarkForDelete(); circle.Save(); filledCircle.MarkForDelete(); filledCircle.Save(); shapes.LoadAll(); Assert.AreEqual(0, shapes.Count); Assert.AreEqual(0, shapes.PersistedBusinessObjects.Count); Assert.AreEqual(0, shapes.CreatedBusinessObjects.Count); circles.LoadAll(); Assert.AreEqual(0, circles.Count); filledCircles.LoadAll(); Assert.AreEqual(0, filledCircles.Count); }