private int ReplicateBidirectional(ITestableReplicationProviderInside providerA,
                                           ITestableReplicationProviderInside providerB, Type clazz)
        {
            int replicatedObjects = 0;
            IReplicationSession replicationSession = Replication.Begin(providerA, providerB,
                                                                       null, _fixtures.reflector);
            IObjectSet changedInA = clazz == null?providerA.ObjectsChangedSinceLastReplication
                                        () : providerA.ObjectsChangedSinceLastReplication(clazz);

            foreach (object obj in changedInA)
            {
                replicatedObjects++;
                replicationSession.Replicate(obj);
            }
            IObjectSet changedInB = clazz == null?providerB.ObjectsChangedSinceLastReplication
                                        () : providerB.ObjectsChangedSinceLastReplication(clazz);

            foreach (object obj in changedInB)
            {
                replicatedObjects++;
                replicationSession.Replicate(obj);
            }
            replicationSession.Commit();
            return(replicatedObjects);
        }
        private void DeleteObject(ITestableReplicationProviderInside container, string name
                                  )
        {
            Replicated obj = Find(container, name);

            container.Delete(obj);
        }
		private void StoreNewPilotIn(ITestableReplicationProviderInside provider)
		{
			Pilot pilot = new Pilot();
			provider.StoreNew(pilot);
			provider.Commit();
			provider.WaitForPreviousCommits();
		}
        private Replicated Find(ITestableReplicationProviderInside container, string name
                                )
        {
            IEnumerator storedObjects = container.GetStoredObjects(typeof(Replicated)).GetEnumerator
                                            ();
            int        resultCount = 0;
            Replicated result      = null;

            while (storedObjects.MoveNext())
            {
                Replicated replicated = (Replicated)storedObjects.Current;
                if (replicated == null)
                {
                    throw new Exception();
                }
                if (name.Equals(replicated.GetName()))
                {
                    result = replicated;
                    resultCount++;
                }
            }
            if (resultCount > 1)
            {
                Fail("At most one object with name " + name + " was expected.");
            }
            return(result);
        }
Пример #5
0
        public virtual void Test()
        {
            ITestableReplicationProviderInside providerA = A().Provider();
            ITestableReplicationProviderInside providerB = B().Provider();

            providerA.StoreNew(new Pilot());
            providerA.Commit();
            IReplicationSession replication = Replication.Begin(providerA, providerB, null, _fixtures
                                                                .reflector);
            TimeStamps initialTimeStampsB = AssertTimeStampsForFirstReplication(providerB);
            IObjectSet modifiedObjects    = providerA.ObjectsChangedSinceLastReplication();

            while (modifiedObjects.HasNext())
            {
                replication.Replicate(modifiedObjects.Next());
            }
            replication.Commit();
            Pilot replicatedPilot = (Pilot)providerB.GetStoredObjects(typeof(Pilot)).Next();
            long  version         = providerB.ObjectVersion(replicatedPilot);

            Assert.AreEqual(initialTimeStampsB.Commit(), version);
            replication = Replication.Begin(providerA, providerB, null, _fixtures.reflector);
            TimeStamps timestampsBAfterReplication = AssertTimeStampsForSecondReplication(initialTimeStampsB
                                                                                          , providerB);

            replication.Commit();
            Pilot pilotStoredAfterReplication = new Pilot();

            providerB.StoreNew(pilotStoredAfterReplication);
            providerB.Commit();
            providerB.WaitForPreviousCommits();
            version = providerB.ObjectVersion(pilotStoredAfterReplication);
            Assert.IsGreater(timestampsBAfterReplication.Commit(), version);
        }
Пример #6
0
        protected virtual void Delete(ITestableReplicationProviderInside provider)
        {
            ArrayList   toDelete = new ArrayList();
            IEnumerator rr       = provider.GetStoredObjects(typeof(R0)).GetEnumerator();

            while (rr.MoveNext())
            {
                object        o     = rr.Current;
                IReflectClass claxx = ReplicationReflector().ForObject(o);
                SetFieldsToNull(o, claxx);
                toDelete.Add(o);
            }
            object commitObject = null;

            for (IEnumerator iterator = toDelete.GetEnumerator(); iterator.MoveNext();)
            {
                object o = iterator.Current;
                //System.out.println("o = " + o);
                provider.Delete(o);
                commitObject = o;
            }
            if (commitObject != null)
            {
                provider.Commit();
            }
            else
            {
                provider.Commit();
            }
        }
Пример #7
0
        private void ReplicateR4(ITestableReplicationProviderInside peerA, ITestableReplicationProviderInside
                                 peerB)
        {
            int replicatedObjectsCount = ReplicateAll(peerA, peerB, true);

            Assert.AreEqual(Linkers, replicatedObjectsCount);
        }
Пример #8
0
 public _IBlock4_60(PerformanceTestCase _enclosing, ITestableReplicationProviderInside
                    from, ITestableReplicationProviderInside to)
 {
     this._enclosing = _enclosing;
     this.from       = from;
     this.to         = to;
 }
        public object QueryItem(ITestableReplicationProviderInside provider, Type type)
        {
            IObjectSet result = provider.GetStoredObjects(type);

            Assert.AreEqual(1, result.Count);
            return(result.Next());
        }
Пример #10
0
		protected virtual void Delete(ITestableReplicationProviderInside provider)
		{
			ArrayList toDelete = new ArrayList();
			IEnumerator rr = provider.GetStoredObjects(typeof(R0)).GetEnumerator();
			while (rr.MoveNext())
			{
				object o = rr.Current;
				IReflectClass claxx = ReplicationReflector().ForObject(o);
				SetFieldsToNull(o, claxx);
				toDelete.Add(o);
			}
			object commitObject = null;
			for (IEnumerator iterator = toDelete.GetEnumerator(); iterator.MoveNext(); )
			{
				object o = iterator.Current;
				//System.out.println("o = " + o);
				provider.Delete(o);
				commitObject = o;
			}
			if (commitObject != null)
			{
				provider.Commit();
			}
			else
			{
				provider.Commit();
			}
		}
 private void StoreNewAndCommit(ITestableReplicationProviderInside provider, CollectionHolder
                                h1)
 {
     provider.StoreNew(h1);
     provider.Activate(h1);
     provider.Commit();
 }
 private void CheckEmpty(ITestableReplicationProviderInside provider)
 {
     if (provider.GetStoredObjects(typeof(Replicated)).GetEnumerator().MoveNext())
     {
         throw new Exception(provider.GetName() + " is not empty");
     }
 }
        private void StoreToProviderA()
        {
            ITestableReplicationProviderInside providerA = A().Provider();

            providerA.StoreNew(CreateItem());
            providerA.Commit();
        }
Пример #14
0
		public virtual void Store(ITestableReplicationProviderInside provider)
		{
			provider.StoreNew(r4);
			provider.StoreNew(r3);
			provider.StoreNew(r2);
			provider.StoreNew(r1);
			provider.StoreNew(r0);
		}
Пример #15
0
        private void Replicate(ITestableReplicationProviderInside from, ITestableReplicationProviderInside
                               to)
        {
            long duration = StopWatch.Time(new _IBlock4_60(this, from, to));

            Sharpen.Runtime.Out.WriteLine("Time to replicate " + TotalObjectCount + " objects: "
                                          + duration + "ms");
        }
Пример #16
0
 public override void EnsureContent(ITestableReplicationProviderInside provider)
 {
     Container replicated = (Container)QueryItem(provider, typeof(Container));
     Container expected = (Container)CreateItem();
     Assert.AreNotSame(expected, replicated);
     Assert.AreEqual(expected._name, replicated._name);
     Iterator4Assert.AreEqual(expected._items.GetEnumerator(), replicated._items.GetEnumerator());
 }
        private void StoreNewPilotIn(ITestableReplicationProviderInside provider)
        {
            Pilot pilot = new Pilot();

            provider.StoreNew(pilot);
            provider.Commit();
            provider.WaitForPreviousCommits();
        }
Пример #18
0
		private void EnsureContent(Container container, ITestableReplicationProviderInside
			 provider)
		{
			IObjectSet result = provider.GetStoredObjects(container.GetType());
			Assert.AreEqual(1, result.Count);
			Container c = Next(result);
			Assert.AreEqual(template.GetValue(), c.GetValue());
		}
Пример #19
0
 public virtual void Store(ITestableReplicationProviderInside provider)
 {
     provider.StoreNew(r4);
     provider.StoreNew(r3);
     provider.StoreNew(r2);
     provider.StoreNew(r1);
     provider.StoreNew(r0);
 }
Пример #20
0
        internal virtual void StoreToProviderA()
        {
            ITestableReplicationProviderInside provider = A().Provider();

            provider.StoreNew(template);
            provider.Commit();
            EnsureContent(template, provider);
        }
Пример #21
0
        protected virtual void ReplicateAll(ITestableReplicationProviderInside from, ITestableReplicationProviderInside
                                            to, IReplicationEventListener listener)
        {
            IReplicationSession replication = Replication.Begin(from, to, listener, _fixtures
                                                                .reflector);

            ReplicateAll(replication, from.ObjectsChangedSinceLastReplication().GetEnumerator
                             ());
        }
Пример #22
0
        public override void EnsureContent(ITestableReplicationProviderInside provider)
        {
            Container replicated = (Container)QueryItem(provider, typeof(Container));
            Container expected   = (Container)CreateItem();

            Assert.AreNotSame(expected, replicated);
            Assert.AreEqual(expected._name, replicated._name);
            Iterator4Assert.AreEqual(expected._items.GetEnumerator(), replicated._items.GetEnumerator());
        }
Пример #23
0
		private void EnsureCount(ITestableReplicationProviderInside provider, int linkers
			)
		{
			EnsureCount(provider, typeof(R0), linkers * 5);
			EnsureCount(provider, typeof(R1), linkers * 4);
			EnsureCount(provider, typeof(R2), linkers * 3);
			EnsureCount(provider, typeof(R3), linkers * 2);
			EnsureCount(provider, typeof(R4), linkers * 1);
		}
Пример #24
0
 private void EnsureCount(ITestableReplicationProviderInside provider, int linkers
                          )
 {
     EnsureCount(provider, typeof(R0), linkers * 5);
     EnsureCount(provider, typeof(R1), linkers * 4);
     EnsureCount(provider, typeof(R2), linkers * 3);
     EnsureCount(provider, typeof(R3), linkers * 2);
     EnsureCount(provider, typeof(R4), linkers * 1);
 }
Пример #25
0
		private TimeStamps AssertTimeStampsForFirstReplication(ITestableReplicationProviderInside
			 provider)
		{
			TimeStamps timeStamps = provider.TimeStamps();
			Assert.IsNotNull(timeStamps);
			Assert.AreEqual(0, timeStamps.From());
			Assert.IsGreater(0, timeStamps.To());
			Assert.AreEqual(timeStamps.To() + 1, timeStamps.Commit());
			return timeStamps;
		}
Пример #26
0
        protected virtual void ReplicateClass(ITestableReplicationProviderInside providerA
                                              , ITestableReplicationProviderInside providerB, Type clazz)
        {
            IReplicationSession replication = Replication.Begin(providerA, providerB, null, _fixtures
                                                                .reflector);
            IEnumerator allObjects = providerA.ObjectsChangedSinceLastReplication(clazz).GetEnumerator
                                         ();

            ReplicateAll(replication, allObjects);
        }
Пример #27
0
        private void EnsureContent(Container container, ITestableReplicationProviderInside
                                   provider)
        {
            IObjectSet result = provider.GetStoredObjects(container.GetType());

            Assert.AreEqual(1, result.Count);
            Container c = Next(result);

            Assert.AreEqual(template.GetValue(), c.GetValue());
        }
Пример #28
0
		private TimeStamps AssertTimeStampsForSecondReplication(TimeStamps initialTimeStamps
			, ITestableReplicationProviderInside provider)
		{
			TimeStamps timeStamps = provider.TimeStamps();
			Assert.IsNotNull(timeStamps);
			Assert.AreEqual(initialTimeStamps.Commit(), timeStamps.From());
			Assert.IsGreater(timeStamps.From(), timeStamps.To());
			Assert.AreEqual(timeStamps.To() + 1, timeStamps.Commit());
			return timeStamps;
		}
Пример #29
0
        private void Store(IDrsProviderFixture fixture, SimpleListHolder listHolder)
        {
            ITestableReplicationProviderInside provider = fixture.Provider();

            provider.StoreNew(listHolder);
            provider.StoreNew(GetItem(listHolder, "foo"));
            provider.StoreNew(GetItem(listHolder, "foobar"));
            provider.Commit();
            EnsureContents(fixture, listHolder);
        }
Пример #30
0
        private void PrintProviderContent(ITestableReplicationProviderInside provider)
        {
            IObjectSet storedObjects = provider.GetStoredObjects(typeof(Replicated));

            Sharpen.Runtime.Out.WriteLine("PROVIDER: " + provider);
            while (storedObjects.HasNext())
            {
                Sharpen.Runtime.Out.WriteLine(storedObjects.Next());
            }
        }
		private void ModifyPilotIn(ITestableReplicationProviderInside provider, string newName
			)
		{
			Pilot pilot;
			pilot = (Pilot)provider.GetStoredObjects(typeof(Pilot)).Next();
			pilot.SetName(newName);
			provider.Update(pilot);
			provider.Commit();
			provider.WaitForPreviousCommits();
		}
        private void ModifyPilotIn(ITestableReplicationProviderInside provider, string newName
                                   )
        {
            Pilot pilot;

            pilot = (Pilot)provider.GetStoredObjects(typeof(Pilot)).Next();
            pilot.SetName(newName);
            provider.Update(pilot);
            provider.Commit();
            provider.WaitForPreviousCommits();
        }
Пример #33
0
        private TimeStamps AssertTimeStampsForFirstReplication(ITestableReplicationProviderInside
                                                               provider)
        {
            TimeStamps timeStamps = provider.TimeStamps();

            Assert.IsNotNull(timeStamps);
            Assert.AreEqual(0, timeStamps.From());
            Assert.IsGreater(0, timeStamps.To());
            Assert.AreEqual(timeStamps.To() + 1, timeStamps.Commit());
            return(timeStamps);
        }
Пример #34
0
        private TimeStamps AssertTimeStampsForSecondReplication(TimeStamps initialTimeStamps
                                                                , ITestableReplicationProviderInside provider)
        {
            TimeStamps timeStamps = provider.TimeStamps();

            Assert.IsNotNull(timeStamps);
            Assert.AreEqual(initialTimeStamps.Commit(), timeStamps.From());
            Assert.IsGreater(timeStamps.From(), timeStamps.To());
            Assert.AreEqual(timeStamps.To() + 1, timeStamps.Commit());
            return(timeStamps);
        }
        private void PrintProviderContent(ITestableReplicationProviderInside provider)
        {
            IObjectSet storedObjects = provider.GetStoredObjects(typeof(Replicated));

            Sharpen.Runtime.Out.WriteLine("PROVIDER: " + provider);
            while (storedObjects.HasNext())
            {
                object @object = storedObjects.Next();
                Sharpen.Runtime.Out.WriteLine("-> " + @object + " - c:" + CreationTime(provider,
                                                                                       @object) + " v:" + Version(provider, @object));
            }
        }
Пример #36
0
        private void EnsureCount(ITestableReplicationProviderInside provider, Type clazz,
                                 int count)
        {
            IEnumerator instances = provider.GetStoredObjects(clazz).GetEnumerator();
            int         i         = count;

            while (instances.MoveNext())
            {
                object o = instances.Current;
                i--;
            }
            Assert.AreEqual(0, i);
        }
Пример #37
0
        protected virtual void ReplicateAll(ITestableReplicationProviderInside providerFrom
                                            , ITestableReplicationProviderInside providerTo)
        {
            IReplicationSession replication = Replication.Begin(providerFrom, providerTo, _fixtures
                                                                .reflector);
            IObjectSet changedSet = providerFrom.ObjectsChangedSinceLastReplication();

            if (changedSet.Count == 0)
            {
                throw new Exception("Can't find any objects to replicate");
            }
            ReplicateAll(replication, changedSet.GetEnumerator());
        }
        private void ChangeObject(ITestableReplicationProviderInside container, string name
                                  , string newName)
        {
            Replicated obj = Find(container, name);

            if (obj == null)
            {
                return;
            }
            obj.SetName(newName);
            container.Update(obj);
            Out("CHANGED: " + container + ": " + name + " => " + newName + " - " + obj);
        }
Пример #39
0
        private void ModifyR4(ITestableReplicationProviderInside provider)
        {
            object      commitObject = null;
            IEnumerator it           = provider.GetStoredObjects(typeof(R4)).GetEnumerator();

            while (it.MoveNext())
            {
                R4 r4 = (R4)it.Current;
                r4.SetName(r4.GetName() + "_");
                provider.Update(r4);
                commitObject = r4;
            }
            provider.Commit();
        }
Пример #40
0
		protected override void ReplicateClass(ITestableReplicationProviderInside providerA
			, ITestableReplicationProviderInside providerB, Type clazz)
		{
			IReplicationSession replication = Replication.Begin(providerA, providerB, _fixtures
				.reflector);
			IEnumerator allObjects = providerA.ObjectsChangedSinceLastReplication(clazz).GetEnumerator
				();
			while (allObjects.MoveNext())
			{
				object obj = allObjects.Current;
				//System.out.println("obj = " + obj);
				replication.Replicate(obj);
			}
			replication.Commit();
		}
Пример #41
0
		private void EnsureContent(NewPilot newPilot, ITestableReplicationProviderInside 
			provider)
		{
			IObjectSet objectSet = provider.GetStoredObjects(typeof(NewPilot));
			Assert.AreEqual(1, objectSet.Count);
			IEnumerator iterator = objectSet.GetEnumerator();
			Assert.IsTrue(iterator.MoveNext());
			NewPilot p = (NewPilot)iterator.Current;
			Assert.AreEqual(newPilot.GetName(), p.GetName());
			Assert.AreEqual(newPilot.GetPoints(), p.GetPoints());
			for (int j = 0; j < newPilot.GetArr().Length; j++)
			{
				Assert.AreEqual(newPilot.GetArr()[j], p.GetArr()[j]);
			}
		}
Пример #42
0
		private void CompareR4(ITestableReplicationProviderInside a, ITestableReplicationProviderInside
			 b, bool isSameExpected)
		{
			IEnumerator it = a.GetStoredObjects(typeof(R4)).GetEnumerator();
			while (it.MoveNext())
			{
				string name = ((R4)it.Current).GetName();
				IEnumerator it2 = b.GetStoredObjects(typeof(R4)).GetEnumerator();
				bool found = false;
				while (it2.MoveNext())
				{
					string name2 = ((R4)it2.Current).GetName();
					if (name.Equals(name2))
					{
						found = true;
					}
				}
				Assert.IsTrue(found == isSameExpected);
			}
		}
		private int ReplicateBidirectional(ITestableReplicationProviderInside providerA, 
			ITestableReplicationProviderInside providerB, Type clazz)
		{
			int replicatedObjects = 0;
			IReplicationSession replicationSession = Replication.Begin(providerA, providerB, 
				null, _fixtures.reflector);
			IObjectSet changedInA = clazz == null ? providerA.ObjectsChangedSinceLastReplication
				() : providerA.ObjectsChangedSinceLastReplication(clazz);
			foreach (object obj in changedInA)
			{
				replicatedObjects++;
				replicationSession.Replicate(obj);
			}
			IObjectSet changedInB = clazz == null ? providerB.ObjectsChangedSinceLastReplication
				() : providerB.ObjectsChangedSinceLastReplication(clazz);
			foreach (object obj in changedInB)
			{
				replicatedObjects++;
				replicationSession.Replicate(obj);
			}
			replicationSession.Commit();
			return replicatedObjects;
		}
Пример #44
0
		public virtual void Open()
		{
			_provider = new TransientReplicationProvider(new byte[] { 65 }, _name);
		}
Пример #45
0
		private void ReplicateR4(ITestableReplicationProviderInside peerA, ITestableReplicationProviderInside
			 peerB)
		{
			int replicatedObjectsCount = ReplicateAll(peerA, peerB, true);
			Assert.AreEqual(Linkers, replicatedObjectsCount);
		}
Пример #46
0
		private void ReplicateNoneModified(ITestableReplicationProviderInside peerA, ITestableReplicationProviderInside
			 peerB)
		{
			Assert.IsTrue(Replicate(peerA, peerB) == 0);
		}
Пример #47
0
		private int ReplicateAll(ITestableReplicationProviderInside peerA, ITestableReplicationProviderInside
			 peerB, bool modifiedOnly)
		{
			IReplicationSession replication = Replication.Begin(peerA, peerB, null, _fixtures
				.reflector);
			IEnumerator it = modifiedOnly ? peerA.ObjectsChangedSinceLastReplication(typeof(R0
				)).GetEnumerator() : peerA.GetStoredObjects(typeof(R0)).GetEnumerator();
			int replicated = 0;
			while (it.MoveNext())
			{
				R0 r0 = (R0)it.Current;
				replication.Replicate(r0);
				replicated++;
			}
			replication.Commit();
			EnsureCount(peerA, Linkers);
			EnsureCount(peerB, Linkers);
			return replicated;
		}
Пример #48
0
		private int Replicate(ITestableReplicationProviderInside peerA, ITestableReplicationProviderInside
			 peerB)
		{
			return ReplicateAll(peerA, peerB, true);
		}
Пример #49
0
		private void ModifyR4(ITestableReplicationProviderInside provider)
		{
			object commitObject = null;
			IEnumerator it = provider.GetStoredObjects(typeof(R4)).GetEnumerator();
			while (it.MoveNext())
			{
				R4 r4 = (R4)it.Current;
				r4.SetName(r4.GetName() + "_");
				provider.Update(r4);
				commitObject = r4;
			}
			provider.Commit();
		}
Пример #50
0
		private void Init(ITestableReplicationProviderInside peerA)
		{
			R0Linker lCircles = new R0Linker();
			lCircles.SetNames("circles");
			lCircles.LinkCircles();
			lCircles.Store(peerA);
			R0Linker lList = new R0Linker();
			lList.SetNames("list");
			lList.LinkList();
			lList.Store(peerA);
			R0Linker lThis = new R0Linker();
			lThis.SetNames("this");
			lThis.LinkThis();
			lThis.Store(peerA);
			R0Linker lBack = new R0Linker();
			lBack.SetNames("back");
			lBack.LinkBack();
			lBack.Store(peerA);
			peerA.Commit();
		}
			private void StoreNewAndCommit(ITestableReplicationProviderInside provider, CollectionHolder
				 h1)
			{
				provider.StoreNew(h1);
				provider.Activate(h1);
				provider.Commit();
			}
Пример #52
0
		private void Replicate(ITestableReplicationProviderInside from, ITestableReplicationProviderInside
			 to)
		{
			long duration = StopWatch.Time(new _IBlock4_60(this, from, to));
			Sharpen.Runtime.Out.WriteLine("Time to replicate " + TotalObjectCount + " objects: "
				 + duration + "ms");
		}
Пример #53
0
			public _IBlock4_60(PerformanceTestCase _enclosing, ITestableReplicationProviderInside
				 from, ITestableReplicationProviderInside to)
			{
				this._enclosing = _enclosing;
				this.from = from;
				this.to = to;
			}
Пример #54
0
		public virtual void Close()
		{
			_provider.Destroy();
			_db.Close();
			_provider = null;
		}
Пример #55
0
		public virtual void Open()
		{
			_db = Db4oFactory.OpenFile(CloneConfiguration(), testFile.GetPath()).Ext();
			_provider = Db4oProviderFactory.NewInstance(_db, _name);
		}
Пример #56
0
		private void EnsureNotExist(ITestableReplicationProviderInside provider, Type type
			)
		{
			Assert.IsTrue(!provider.GetStoredObjects(type).GetEnumerator().MoveNext());
		}
Пример #57
0
		private void ReplicateAllToB(ITestableReplicationProviderInside peerA, ITestableReplicationProviderInside
			 peerB)
		{
			Assert.AreEqual(Linkers * 5, ReplicateAll(peerA, peerB, false));
		}
Пример #58
0
		private void EnsureR4Same(ITestableReplicationProviderInside peerA, ITestableReplicationProviderInside
			 peerB)
		{
			CompareR4(peerB, peerA, true);
			CompareR4(peerA, peerB, true);
		}
Пример #59
0
		private void EnsureCount(ITestableReplicationProviderInside provider, Type clazz, 
			int count)
		{
			IEnumerator instances = provider.GetStoredObjects(clazz).GetEnumerator();
			int i = count;
			while (instances.MoveNext())
			{
				object o = instances.Current;
				i--;
			}
			Assert.AreEqual(0, i);
		}
Пример #60
0
		private void EnsureR4Different(ITestableReplicationProviderInside peerA, ITestableReplicationProviderInside
			 peerB)
		{
			CompareR4(peerB, peerA, false);
		}