コード例 #1
0
        public virtual void TestNextMatchingFailure()
        {
            object[] elements = new object[] { "foo", "bar" };
            IQueue4  queue    = NewQueue(elements);

            Assert.IsNull(queue.NextMatching(new _IPredicate4_42()));
            AssertNext(elements, queue);
        }
コード例 #2
0
        private void AssertNextMatching(object[] expectedAfterRemoval, object removedElement
                                        , object[] originalElements)
        {
            IQueue4 queue = NewQueue(originalElements);

            Assert.AreEqual(removedElement, queue.NextMatching(new _IPredicate4_73(removedElement
                                                                                   )));
            AssertNext(expectedAfterRemoval, queue);
        }
コード例 #3
0
 private void AssertNext(object[] expected, IQueue4 queue)
 {
     for (var i = 0; i < expected.Length; i++)
     {
         var @object = expected[i];
         Assert.IsTrue(queue.HasNext(), "Expecting '" + @object + "'");
         Assert.AreSame(@object, queue.Next());
     }
     Assert.IsFalse(queue.HasNext());
 }
コード例 #4
0
 private void AssertNext(object[] expected, IQueue4 queue)
 {
     for (var i = 0; i < expected.Length; i++)
     {
         var @object = expected[i];
         Assert.IsTrue(queue.HasNext(), "Expecting '" + @object + "'");
         Assert.AreSame(@object, queue.Next());
     }
     Assert.IsFalse(queue.HasNext());
 }
コード例 #5
0
		protected virtual void AssertIterator(IQueue4 queue, string[] data, int size)
		{
			IEnumerator iter = queue.Iterator();
			for (int idx = 0; idx < size; idx++)
			{
				Assert.IsTrue(iter.MoveNext(), "should be able to move in iteration #" + idx + " of "
					 + size);
				Assert.AreEqual(data[idx], iter.Current);
			}
			Assert.IsFalse(iter.MoveNext());
		}
コード例 #6
0
        protected virtual void AssertIterator(IQueue4 queue, string[] data, int size)
        {
            IEnumerator iter = queue.Iterator();

            for (int idx = 0; idx < size; idx++)
            {
                Assert.IsTrue(iter.MoveNext(), "should be able to move in iteration #" + idx + " of "
                              + size);
                Assert.AreEqual(data[idx], iter.Current);
            }
            Assert.IsFalse(iter.MoveNext());
        }
コード例 #7
0
        public virtual void TestIteratorThrowsOnConcurrentModification()
        {
            object[]    elements = new object[] { "foo", "bar" };
            IQueue4     queue    = NewQueue(elements);
            IEnumerator iterator = queue.Iterator();

            Iterator4Assert.AssertNext("foo", iterator);
            queue.Add("baz");
            Assert.AreEqual("foo", iterator.Current, "accessing current element should be harmless"
                            );
            Assert.Expect(typeof(InvalidOperationException), new _ICodeBlock_31(iterator));
        }
コード例 #8
0
 private void ProcessEachNode(IProcedure4 action)
 {
     if (_nodes == null)
     {
         return;
     }
     ProcessAllNodes();
     while (_processing.HasNext())
     {
         action.Apply((BTreeNode)_processing.Next());
     }
     _processing = null;
 }
コード例 #9
0
ファイル: NoDuplicatesQueue.cs プロジェクト: erdincay/db4o
		public NoDuplicatesQueue(IQueue4 queue)
		{
			_queue = queue;
			_seen = new Hashtable4();
		}
コード例 #10
0
 /// <exception cref="System.Exception"></exception>
 public virtual void TearDown()
 {
     _queue = null;
 }
コード例 #11
0
 /// <exception cref="System.Exception"></exception>
 public virtual void SetUp()
 {
     _queue = new NoDuplicatesQueue(new NonblockingQueue());
 }
コード例 #12
0
 public ClassMetadataRepository(Transaction systemTransaction)
 {
     _systemTransaction     = systemTransaction;
     _initClassMetadataOnUp = new NonblockingQueue();
     _classInits            = new PendingClassInits(_systemTransaction);
 }
コード例 #13
0
		public IdSource(IQueue4 queue)
		{
			_queue = queue;
		}
コード例 #14
0
		/// <exception cref="System.Exception"></exception>
		public virtual void TearDown()
		{
			_queue = null;
		}
コード例 #15
0
ファイル: BTree.cs プロジェクト: erdincay/db4o
		private void ProcessAllNodes()
		{
			_processing = new NonblockingQueue();
			_nodes.Traverse(new _IVisitor4_311(this));
		}
コード例 #16
0
ファイル: BTree.cs プロジェクト: erdincay/db4o
		private void ProcessEachNode(IProcedure4 action)
		{
			if (_nodes == null)
			{
				return;
			}
			ProcessAllNodes();
			while (_processing.HasNext())
			{
				action.Apply((BTreeNode)_processing.Next());
			}
			_processing = null;
		}
コード例 #17
0
ファイル: IdSource.cs プロジェクト: pondyond/db4o
 public IdSource(IQueue4 queue)
 {
     _queue = queue;
 }
コード例 #18
0
			internal NotifyThread(IQueue4 queue, object data)
			{
				_queue = queue;
				_data = data;
			}
コード例 #19
0
		public ClassMetadataRepository(Transaction systemTransaction)
		{
			_systemTransaction = systemTransaction;
			_initClassMetadataOnUp = new NonblockingQueue();
			_classInits = new PendingClassInits(_systemTransaction);
		}
コード例 #20
0
 private void ProcessAllNodes()
 {
     _processing = new NonblockingQueue();
     _nodes.Traverse(new _IVisitor4_311(this));
 }
コード例 #21
0
 internal NotifyThread(IQueue4 queue, object data)
 {
     _queue = queue;
     _data  = data;
 }
コード例 #22
0
ファイル: NoDuplicatesQueue.cs プロジェクト: pondyond/db4o
 public NoDuplicatesQueue(IQueue4 queue)
 {
     _queue = queue;
     _seen  = new Hashtable4();
 }
コード例 #23
0
		/// <exception cref="System.Exception"></exception>
		public virtual void SetUp()
		{
			_queue = new NoDuplicatesQueue(new NonblockingQueue());
		}