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()
 {
     CircleNoPrimaryKey.GetClassDef().SuperClassDef =
         new SuperClassDef(Shape.GetClassDef(), ORMapping.SingleTableInheritance);
     CircleNoPrimaryKey.GetClassDef().SuperClassDef.Discriminator = "ShapeType_field";
     FilledCircleInheritsCircleNoPK.GetClassDef().SuperClassDef =
         new SuperClassDef(CircleNoPrimaryKey.GetClassDef(), ORMapping.ClassTableInheritance);
 }
        protected static FilledCircleInheritsCircleNoPK CreateSavedFilledCircle()
        {
            FilledCircleInheritsCircleNoPK filledCircle = new FilledCircleInheritsCircleNoPK();

            filledCircle.Colour    = 3;
            filledCircle.Radius    = 7;
            filledCircle.ShapeName = "FilledCircle";
            filledCircle.Save();
            return(filledCircle);
        }
        public void TestSuperClassKey()
        {
            IBOKey msuperKey = BOPrimaryKey.GetSuperClassKey((ClassDef)FilledCircleInheritsCircleNoPK.GetClassDef(), _filledCircle);

            Assert.IsFalse(msuperKey.Contains("CircleID"), "Super class key should not contain the CircleID property");
            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(_filledCircle.Props["ShapeID"].Value, //msuperKey["ShapeID"].Value,
                            _filledCircle.ID["FilledCircleID"].Value,
                            "ShapeID and FilledCircleID should be the same");
        }
        public void TestUpdateWhenOnlyOneLevelUpdates()
        {
            var myCircle  = new FilledCircleInheritsCircleNoPK();
            var committer = new TransactionCommitterStub();

            committer.AddBusinessObject(myCircle);
            committer.CommitTransaction();
            myCircle.SetPropertyValue("Colour", 4);

            var myUpdateSql =
                new UpdateStatementGenerator(myCircle, DatabaseConnection.CurrentConnection).Generate();

            Assert.AreEqual(1, myUpdateSql.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 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 TestUpdateWhenOnlyOneLevelUpdates()
        {
            var myCircle = new FilledCircleInheritsCircleNoPK();
            var committer = new TransactionCommitterStub();
            committer.AddBusinessObject(myCircle);
            committer.CommitTransaction();
            myCircle.SetPropertyValue("Colour", 4);

            var myUpdateSql =
                new UpdateStatementGenerator(myCircle, DatabaseConnection.CurrentConnection).Generate();
            Assert.AreEqual(1, myUpdateSql.Count());
        }
 public void TestFilledCircleIsUsingCorrectInheritance()
 {
     Assert.AreEqual(ORMapping.SingleTableInheritance, CircleNoPrimaryKey.GetClassDef().SuperClassDef.ORMapping);
     Assert.AreEqual(ORMapping.ClassTableInheritance,
                     FilledCircleInheritsCircleNoPK.GetClassDef().SuperClassDef.ORMapping);
 }
        public void TestUpdateWhenOnlyOneLevelUpdates()
        {
            IMock connectionControl = new DynamicMock(typeof (IDatabaseConnection));
            IDatabaseConnection connection = (IDatabaseConnection) connectionControl.MockInstance;
            FilledCircleInheritsCircleNoPK myCircle = new FilledCircleInheritsCircleNoPK();
            TransactionCommitterStub committer = new TransactionCommitterStub();
            committer.AddBusinessObject(myCircle);
            committer.CommitTransaction();
            myCircle.SetPropertyValue("Colour", 4);

            var myUpdateSql =
                new UpdateStatementGenerator(myCircle, DatabaseConnection.CurrentConnection).Generate();
            Assert.AreEqual(1, myUpdateSql.Count());
            connectionControl.Verify();
        }
 protected static FilledCircleInheritsCircleNoPK CreateSavedFilledCircle()
 {
     FilledCircleInheritsCircleNoPK filledCircle = new FilledCircleInheritsCircleNoPK();
     filledCircle.Colour = 3;
     filledCircle.Radius = 7;
     filledCircle.ShapeName = "FilledCircle";
     filledCircle.Save();
     return filledCircle;
 }