public void Test_UsingGivenDatabaseConnection_Delete()
        {
            //---------------Set up test pack-------------------
            BORegistry.DataAccessor = new DataAccessorInMemory();
            MyBO.LoadDefaultClassDef();
            MyBO bo = new MyBO();

            bo.Save();
            bo.MarkForDelete();
            DatabaseConnection.CurrentConnection = null;

            //---------------Assert preconditions---------------
            Assert.AreNotSame(_databaseConnection, DatabaseConnection.CurrentConnection);
            //---------------Execute Test ----------------------
            TransactionalBusinessObjectDB transactional = new TransactionalBusinessObjectDB(bo, _databaseConnection);
            SqlStatement sqlStatement = (SqlStatement)transactional.GetPersistSql().FirstOrDefault();

            //---------------Test Result -----------------------
            Assert.AreSame(_databaseConnection, sqlStatement.Connection);
            //---------------Tear down -------------------------
        }
        public void TestButtonsControl_ClickSaveAcceptsChanges()
        {
            //---------------Set up test pack-------------------
            MyBO.LoadDefaultClassDef();
            //---------------Clean from previous tests----------
            const string originalText = "testsavechanges";
            const string newText      = "testsavechanges_edited";
            Criteria     criteria     = new Criteria("TestProp", Criteria.ComparisonOp.Equals, originalText);
//            MyBO oldBO1 = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject<MyBO>(criteria);
//            if (oldBO1 != null)
//            {
//                oldBO1.MarkForDelete();
//                oldBO1.Save();
//            }
//            MyBO oldBO2 = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject<MyBO>(criteria);
//            if (oldBO2 != null)
//            {
//                oldBO2.MarkForDelete();
//                oldBO2.Save();
//            }

            MyBO bo = new MyBO {
                TestProp = originalText
            };

            bo.Save();

            BusinessObjectCollection <MyBO> col = new BusinessObjectCollection <MyBO> {
                bo, new MyBO {
                    TestProp = "SomeText"
                }
            };

            IEditableGridControl gridControl = GetControlFactory().CreateEditableGridControl();

            AddControlToForm(gridControl.Grid);
            SetupGridColumnsForMyBo(gridControl.Grid);
            gridControl.Grid.BusinessObjectCollection = col;
            //---------------Assert Precondition----------------
            Assert.AreEqual(3, gridControl.Grid.Rows.Count);
            Assert.AreEqual(originalText, gridControl.Grid.Rows[0].Cells[1].Value);
            criteria = new Criteria("TestProp", Criteria.ComparisonOp.Equals, newText);
            MyBO nullBO = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <MyBO>(criteria);

//            MyBO nullBO = BOLoader.Instance.GetBusinessObject<MyBO>("TestProp='" + newText + "'");
            Assert.IsNull(nullBO);
            //---------------Execute Test ----------------------
            gridControl.Grid.Rows[0].Cells[1].Value = newText;
            //---------------Assert Precondition----------------
            Assert.AreEqual(newText, gridControl.Grid.Rows[0].Cells[1].Value);
            gridControl.Grid.SelectedBusinessObject = col[1];
            //---------------Execute Test ----------------------
            gridControl.Buttons["Save"].PerformClick();
            //---------------Test Result -----------------------
            Assert.AreEqual(newText, gridControl.Grid.Rows[0].Cells[1].Value);
            criteria = new Criteria("TestProp", Criteria.ComparisonOp.Equals, newText);
            MyBO savedBO = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <MyBO>(criteria);

//            MyBO savedBO = BOLoader.Instance.GetBusinessObject<MyBO>("TestProp='" + newText + "'");
            Assert.IsNotNull(savedBO);
            //---------------Tear Down--------------------------
            savedBO.MarkForDelete();
            savedBO.Save();
        }