public void TestDereferenceRelatedObjects() { //The Car has a single relationship to engine. The car->engine relationship is marked // as a dereference related relationship. BORegistry.DataAccessor = new DataAccessorInMemory(); //---------------Set up test pack------------------- Car car = new Car(); car.SetPropertyValue("CarRegNo", "NP32459"); car.Save(); Engine engine = new Engine(); engine.SetPropertyValue("EngineNo", "NO111"); const string carIDProp = "CarID"; engine.SetPropertyValue(carIDProp, car.GetPropertyValue(carIDProp)); engine.Save(); BORegistry.DataAccessor.BusinessObjectLoader.Refresh(engine); Assert.AreSame(engine.GetCar(), car); //---------------Execute Test ---------------------- car.MarkForDelete(); car.Save(); //---------------Test Result ----------------------- Assert.IsNull(engine.GetPropertyValue(carIDProp)); Assert.IsNull(engine.GetCar()); //---------------Test TearDown ----------------------- }
public void Test_DereferenceRelatedObjects_ForSingle_IsOwner_WhenHasNoRelatedBO() { //The Car has a single relationship to engine. The car->engine relationship is marked // as a dereference related relationship. BORegistry.DataAccessor = new DataAccessorInMemory(); //---------------Set up test pack------------------- new Car(); Engine engine = new Engine(); engine.SetPropertyValue("EngineNo", "NO111"); engine.Save(); engine.MarkForDelete(); SingleRelationshipDef relationshipDef = (SingleRelationshipDef)engine.Relationships["Car"].RelationshipDef; relationshipDef.DeleteParentAction = DeleteParentAction.DereferenceRelated; //---------------Assert Precondition---------------- Assert.IsTrue(relationshipDef.OwningBOHasForeignKey); Assert.AreEqual(DeleteParentAction.DereferenceRelated, relationshipDef.DeleteParentAction); Assert.IsNull(engine.GetCar()); //---------------Execute Test ---------------------- engine.Save(); //---------------Test Result ----------------------- Assert.IsNull(engine.GetCar()); Assert.IsTrue(engine.Status.IsNew && engine.Status.IsDeleted); }
private static Engine CreateUnsavedEngine(string engineNo) { Engine engine = new Engine(); engine.EngineNo = engineNo; return engine; }
public void Test_CancelEdit_ShouldFirePropertyUpdatedEvent() { //---------------Set up test pack------------------- Engine engine1 = new Engine(); bool propertyEventFired = false; IBusinessObject eventBusinessObject = null; IBOProp eventProp = null; engine1.EngineNo = "20"; engine1.PropertyUpdated += delegate(object sender, BOPropUpdatedEventArgs eventArgs) { eventBusinessObject = eventArgs.BusinessObject; eventProp = eventArgs.Prop; propertyEventFired = true; }; //-------------Assert Preconditions ------------- Assert.IsFalse(propertyEventFired); Assert.IsNull(eventBusinessObject); Assert.IsNull(eventProp); //---------------Execute Test ---------------------- engine1.CancelEdits(); //---------------Test Result ----------------------- Assert.IsTrue(propertyEventFired); Assert.AreSame(engine1, eventBusinessObject); }
public void Test_SaveFiresUpdatedEvent() { //---------------Set up test pack------------------- Engine engine1 = new Engine(); bool updatedEventFired = false; //-------------Assert Preconditions ------------- Assert.IsFalse(updatedEventFired); //---------------Execute Test ---------------------- engine1.Updated += delegate { updatedEventFired = true; }; engine1.EngineNo = "20"; engine1.Save(); //---------------Test Result ----------------------- Assert.IsTrue(updatedEventFired); }
public void TestGetPropertyValue_ThroughRelationship() { //---------------Set up test pack------------------- Car car1 = new Car(); car1.CarRegNo = "5"; Engine engine1 = new Engine(); engine1.CarID = car1.CarID; engine1.EngineNo = "20"; ITransactionCommitter committer = BORegistry.DataAccessor.CreateTransactionCommitter(); committer.AddBusinessObject(car1); committer.AddBusinessObject(engine1); committer.CommitTransaction(); //---------------Assert PreConditions--------------- //---------------Execute Test ---------------------- object carregno = engine1.GetPropertyValue(new Source("Car"), "CarRegNo"); //---------------Test Result ----------------------- Assert.AreEqual(car1.CarRegNo, carregno); //---------------Tear Down ------------------------- }
public void TestGetPropertyValue_NullSource() { //---------------Set up test pack------------------- Engine engine1 = new Engine(); engine1.EngineNo = "20"; //---------------Assert PreConditions--------------- //---------------Execute Test ---------------------- object engineNo = engine1.GetPropertyValue(null, "EngineNo"); //---------------Test Result ----------------------- Assert.AreEqual(engine1.EngineNo, engineNo); //---------------Tear Down ------------------------- }