/// <exception cref="System.Exception"></exception>
		public virtual void TestStoreObject()
		{
			ClassHandlerTestCase.Item expectedItem = new ClassHandlerTestCase.Item("parent", 
				new ClassHandlerTestCase.Item("child", null));
			Db().Store(expectedItem);
			Db().Purge(expectedItem);
			IQuery q = Db().Query();
			q.Constrain(typeof(ClassHandlerTestCase.Item));
			q.Descend("_name").Constrain("parent");
			IObjectSet objectSet = q.Execute();
			ClassHandlerTestCase.Item readItem = (ClassHandlerTestCase.Item)objectSet.Next();
			Assert.AreNotSame(expectedItem, readItem);
			AssertAreEqual(expectedItem, readItem);
		}
        /// <exception cref="System.Exception"></exception>
        public virtual void TestStoreObject()
        {
            ClassHandlerTestCase.Item expectedItem = new ClassHandlerTestCase.Item("parent",
                                                                                   new ClassHandlerTestCase.Item("child", null));
            Db().Store(expectedItem);
            Db().Purge(expectedItem);
            IQuery q = Db().Query();

            q.Constrain(typeof(ClassHandlerTestCase.Item));
            q.Descend("_name").Constrain("parent");
            IObjectSet objectSet = q.Execute();

            ClassHandlerTestCase.Item readItem = (ClassHandlerTestCase.Item)objectSet.Next();
            Assert.AreNotSame(expectedItem, readItem);
            AssertAreEqual(expectedItem, readItem);
        }
			public Item(string name, ClassHandlerTestCase.Item child)
			{
				_name = name;
				_child = child;
			}
 private void AssertAreEqual(ClassHandlerTestCase.Item expectedItem, ClassHandlerTestCase.Item
                             readItem)
 {
     Assert.AreEqual(expectedItem._name, readItem._name);
     Assert.AreEqual(expectedItem._child._name, readItem._child._name);
 }
 public Item(string name, ClassHandlerTestCase.Item child)
 {
     _name  = name;
     _child = child;
 }