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);
 }
Exemplo n.º 3
0
 private static Engine CreateUnsavedEngine(string engineNo)
 {
     Engine engine = new Engine();
     engine.EngineNo = engineNo;
     return engine;
 }
Exemplo n.º 4
0
 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);
 }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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 -------------------------     
        }
Exemplo n.º 7
0
 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 -------------------------     
 }