[Test] // Checks that deletion is prevented when a child exists
public void Test_MultipleRelationshipDeletion_PreventDelete_Drivers()
{
CheckIfTestShouldBeIgnored();
//---------------Set up test pack-------------------
Car car = TestUtilsCar.CreateSavedCar();
TestProject.BO.Driver boForRelationshipDrivers = TestUtilsDriver.CreateUnsavedValidDriver();
boForRelationshipDrivers.CarID = car.VehicleID;
boForRelationshipDrivers.Save();
//---------------Assert Preconditions---------------
Assert.AreEqual(1, car.Drivers.Count);
IRelationshipDef relationshipDef = ClassDef.Get <Car>().RelationshipDefCol["Drivers"];
Assert.AreEqual(DeleteParentAction.Prevent, relationshipDef.DeleteParentAction);
//---------------Execute Test ----------------------
try
{
car.MarkForDelete();
car.Save();
Assert.Fail("Should have thrown exception due to deletion prevention");
}
//---------------Test Result -----------------------
catch (BusObjDeleteException ex)
{
StringAssert.Contains("You cannot delete Car identified by ", ex.Message);
StringAssert.Contains("via the Drivers relationship", ex.Message);
}
}