Esempio n. 1
0
        private Flughafen CreateFlughafen(string name)
        {
            Flughafen f = new Flughafen();

            f.Kürzel = name;
            return(f);
        }
Esempio n. 2
0
        public void TestAssignRelatedObjectsSave()
        {
            pm.MakePersistent(l);
            for (int i = 0; i < 3; i++)
            {
                Flughafen f = CreateFlughafen(i.ToString());
                pm.MakePersistent(f);
                l.AddFlughafen(f);
            }
            pm.Save();
            IList     neueFlughäfen = new ArrayList();
            Flughafen nr            = CreateFlughafen("Test");

            pm.MakePersistent(nr);
            neueFlughäfen.Add(nr);

            IList ff = new ArrayList(l.Flughäfen);

            l.ErsetzeFlughäfen(neueFlughäfen);
            Assert.AreEqual(1, l.Flughäfen.Count, "1. Wrong number of objects");
            for (int i = 0; i < 3; i++)
            {
                Assert.AreEqual(NDOObjectState.PersistentDirty, ((Flughafen)ff[i]).NDOObjectState, "2. Wrong state");
            }
            Assert.AreEqual(NDOObjectState.Created, nr.NDOObjectState, "3. Wrong state");

            pm.Save();
            Assert.AreEqual(1, l.Flughäfen.Count, "4. Wrong number of objects");
            for (int i = 0; i < 3; i++)
            {
                Assert.AreEqual(NDOObjectState.Persistent, ((Flughafen)ff[i]).NDOObjectState, "5. Wrong state");
            }
            Assert.AreEqual(NDOObjectState.Persistent, nr.NDOObjectState, "6. Wrong state");
        }
Esempio n. 3
0
        public void TestAssignRelatedObjectsNullAbort()
        {
            pm.MakePersistent(l);
            for (int i = 0; i < 3; i++)
            {
                Flughafen f = CreateFlughafen(i.ToString());
                pm.MakePersistent(f);
                l.AddFlughafen(f);
            }
            pm.Save();
            IList ff = new ArrayList(l.Flughäfen);

            l.ErsetzeFlughäfen(null);
            Assert.Null(l.Flughäfen, "No objects should be there");
            for (int i = 0; i < 3; i++)
            {
                Assert.AreEqual(NDOObjectState.PersistentDirty, ((Flughafen)ff[i]).NDOObjectState, "2. Wrong state");
            }
            pm.Abort();
            Assert.AreEqual(3, l.Flughäfen.Count, "3. Wrong number of objects");
            for (int i = 0; i < 3; i++)
            {
                Assert.AreEqual(NDOObjectState.Persistent, ((Flughafen)ff[i]).NDOObjectState, "4. Wrong state");
            }
        }
Esempio n. 4
0
        public void TestClearRelatedObjectsAbort()
        {
            pm.MakePersistent(l);
            for (int i = 0; i < 10; i++)
            {
                Flughafen f = CreateFlughafen(i.ToString());
                pm.MakePersistent(f);
                l.AddFlughafen(f);
            }
            pm.Save();
            IList ff = new ArrayList(l.Flughäfen);

            l.LöscheFlughäfen();
            Assert.AreEqual(0, l.Flughäfen.Count, "1. Wrong number of objects");
            for (int i = 0; i < 10; i++)
            {
                Assert.AreEqual(NDOObjectState.PersistentDirty, ((Flughafen)ff[i]).NDOObjectState, "2. Wrong state");
            }
            pm.Abort();
            Assert.AreEqual(10, l.Flughäfen.Count, "3. Wrong number of objects");
            for (int i = 0; i < 10; i++)
            {
                Assert.AreEqual(NDOObjectState.Persistent, ((Flughafen)ff[i]).NDOObjectState, "4. Wrong state");
            }
        }
Esempio n. 5
0
        public void AbortedDeferredMultiStepTransactionDoesNotCommit()
        {
            PersistenceManager pm = new PersistenceManager();
            var landCount         = LänderCount(pm);
            var fhCount           = FlughafenCount(pm);

            pm.LogAdapter      = new TestLogAdapter();
            pm.VerboseMode     = true;
            pm.TransactionMode = TransactionMode.Optimistic;

            Land land = new Land();

            land.Name = "Germany";
            pm.MakePersistent(land);
            pm.Save(true);

            var flughafen = new Flughafen();

            flughafen.Kürzel = "MUC";
            pm.MakePersistent(flughafen);
            land.AddFlughafen(flughafen);
            pm.Save(true);

            pm.Abort();

            string log = pm.LogAdapter.ToString();

            //Assert.That( new Regex( "Creating a new TransactionScope" ).Matches( log ).Count == 1, "One Transactions should be started" );
            //Assert.That( log.IndexOf( "Completing" ) == -1, "Transaction should be committed" );
            //Assert.That( new Regex( "Rollback transaction" ).Matches( log ).Count == 1, "One Transactions should be rolled back" );

            pm.TransactionMode = TransactionMode.None;
            Assert.AreEqual(landCount, LänderCount(pm));
            Assert.AreEqual(fhCount, FlughafenCount(pm));
        }
Esempio n. 6
0
 public void TestAddObjectSave()
 {
     pm.MakePersistent(l);
     pm.Save();
     pm.MakePersistent(f);
     l.AddFlughafen(f);
     Assert.AreEqual(NDOObjectState.Created, f.NDOObjectState, "1. Wrong state");
     pm.Save();
     l = (Land)pm.FindObject(l.NDOObjectId);
     f = (Flughafen)pm.FindObject(f.NDOObjectId);
     Assert.NotNull(l, "1. Land not found");
     Assert.NotNull(f, "1. Flughafen not found");
     Assert.AreEqual(NDOObjectState.Persistent, f.NDOObjectState, "2. Wrong state");
 }
Esempio n. 7
0
        public void TestCreateObjectsSave()
        {
            pm.MakePersistent(l);
            pm.MakePersistent(f);
            l.AddFlughafen(f);
            pm.Save();
            Assert.That(!l.NDOObjectId.Equals(f.NDOObjectId), "Ids should be different");
            l = (Land)pm.FindObject(l.NDOObjectId);
            f = (Flughafen)pm.FindObject(f.NDOObjectId);
            Assert.NotNull(l, "1. Land not found");
            Assert.NotNull(f, "1. Flughafen not found");

            pm.UnloadCache();
            l = (Land)pm.FindObject(l.NDOObjectId);
            f = (Flughafen)pm.FindObject(f.NDOObjectId);
            Assert.NotNull(l, "2. Land not found");
            Assert.NotNull(f, "2. Flughafen not found");
        }
Esempio n. 8
0
 public void TestCreateObjects()
 {
     pm.MakePersistent(l);
     pm.MakePersistent(f);
     if (!pm.HasOwnerCreatedIds)
     {
         if (l.NDOObjectId.Id[0] is Int32)
         {
             Assert.AreEqual(-1, l.NDOObjectId.Id[0], "Land key wrong");
         }
         if (f.NDOObjectId.Id[0] is Int32)
         {
             Assert.AreEqual(-1, f.NDOObjectId.Id[0], "Flughafen key wrong");
         }
     }
     Assert.That(!l.NDOObjectId.Equals(f.NDOObjectId), "Ids should be different");
     l = (Land)pm.FindObject(l.NDOObjectId);
     f = (Flughafen)pm.FindObject(f.NDOObjectId);
 }
Esempio n. 9
0
        public void TestRemoveObjectSaveReloadNonHollow()
        {
            pm.MakePersistent(l);
            pm.MakePersistent(f);
            l.AddFlughafen(f);
            pm.Save();
            pm.UnloadCache();
            IQuery q = new NDOQuery <Land>(pm, null, false);

            l = (Land)q.ExecuteSingle(true);
            Assert.AreEqual(NDOObjectState.Persistent, l.NDOObjectState, "1. Wrong state");
            Assert.AreEqual(1, l.Flughäfen.Count, "1. Wrong number of objects");
            f = (Flughafen)l.Flughäfen[0];
            l.RemoveFlughafen(f);
            // f keeps the foreign key - so it get's dirty
            Assert.AreEqual(NDOObjectState.PersistentDirty, f.NDOObjectState, "2. Wrong state");
            Assert.AreEqual(0, l.Flughäfen.Count, "2. Wrong number of objects");
            pm.Save();
            l = (Land)q.ExecuteSingle(true);
            pm.UnloadCache();
            Assert.AreEqual(0, l.Flughäfen.Count, "3. Wrong number of objects");
        }
Esempio n. 10
0
        public void TestAddFlughafen()
        {
            pm.MakePersistent(l);
            pm.MakePersistent(f);
            l.AddFlughafen(f);
            pm.Save();
            pm.UnloadCache();
            IQuery q = new NDOQuery <Land>(pm, null);

            l = (Land)q.ExecuteSingle(true);
            Assert.NotNull(l, "Land not found");
            Assert.AreEqual(1, l.Flughäfen.Count, "Count wrong");
            Flughafen f2 = CreateFlughafen("FRA");

            pm.MakePersistent(f2);
            l.AddFlughafen(f2);
            pm.VerboseMode = true;
            pm.Save();
            pm.VerboseMode = false;
            pm.UnloadCache();
            l = (Land)q.ExecuteSingle(true);
            Assert.AreEqual(2, l.Flughäfen.Count, "Count wrong");
        }
Esempio n. 11
0
 public void Setup()
 {
     pm = PmFactory.NewPersistenceManager();
     l  = CreateLand("Deutschland");
     f  = CreateFlughafen("MUC");
 }