public void ConstraintValidation_DeleteRootWithOneToOneChild_WithRestrictConstraint_ShouldThrowException() { IDbConnection connection = SetupTables(); ITransaction transaction = CreateTransaction(connection); int id = 45; ConstraintTestDeleteRestrictRootEntity entity = new ConstraintTestDeleteRestrictRootEntity(); entity.IdCol = id; entity.Name = "Org-Name"; entity.Persist(transaction); transaction.Commit(); transaction = CreateTransaction(connection); ConstraintTestOne2OneEntity one2OneEntity = new ConstraintTestOne2OneEntity(); one2OneEntity.IdCol = id; one2OneEntity.Name = "Child-Org-Name"; one2OneEntity.Persist(transaction); transaction.Commit(); transaction = CreateTransaction(connection); ConstraintTestDeleteRestrictRootEntity loadedEntity = new ConstraintTestDeleteRestrictRootEntity(); LoadEntityWithId(transaction, loadedEntity, id); loadedEntity.Status = EntityStatus.Deleted; Assert.Throws <PersistException>(() => loadedEntity.Persist(transaction)); transaction.Commit(); connection.Close(); }
public void ConstraintValidation_DeleteOneToOneRoot_WithCascadeConstraint_ShouldDeleteBoth() { try { IDbConnection connection = SetupTables(); ITransaction transaction = CreateTransaction(connection); int id = 45; ConstraintTestDeleteCascadeRootEntity entity = new ConstraintTestDeleteCascadeRootEntity(); entity.IdCol = id; entity.Name = "Org-Name"; entity.Persist(transaction); transaction.Commit(); transaction = CreateTransaction(connection); ConstraintTestOne2OneEntity one2ManyEntity = new ConstraintTestOne2OneEntity(); one2ManyEntity.IdCol = id; one2ManyEntity.Name = "Child-Org-Name"; one2ManyEntity.Persist(transaction); transaction.Commit(); transaction = CreateTransaction(connection); ConstraintTestDeleteCascadeRootEntity loadedEntity = new ConstraintTestDeleteCascadeRootEntity(); LoadEntityWithId(transaction, loadedEntity, id); loadedEntity.Status = EntityStatus.Deleted; loadedEntity.Persist(transaction); transaction.Commit(); transaction = CreateTransaction(connection); bool hasOneToOne = ExistsOne2ManyChild(transaction, id); bool hasRoot = ExistsRoot(transaction, id); transaction.Commit(); connection.Close(); Assert.IsFalse(hasOneToOne); Assert.IsFalse(hasRoot); } catch (System.Exception e) { LogManager.GetLogger(typeof(DbGateConstraintValidationTest)).Fatal(e.Message, e); Assert.Fail(e.Message); } }