protected override void OnSetUp()
		{
			cfg.Properties[Environment.CacheProvider] = typeof(HashtableCacheProvider).AssemblyQualifiedName;
			cfg.Properties[Environment.UseQueryCache] = "true";
			sessions = (ISessionFactoryImplementor)cfg.BuildSessionFactory();

			using (ISession session = OpenSession())
			using(ITransaction tx = session.BeginTransaction())
			{
				Item item = new Item();
				item.Id = 1;
				session.Save(item);
				for (int i = 0; i < 4; i++)
				{
					Item child = new Item();
					child.Id = i + 2;
					child.Parent = item;
					session.Save(child);
					item.Children.Add(child);
				}

				for (int i = 0; i < 5; i++)
				{
					AnotherItem obj = new AnotherItem("Item #" + i);
					obj.Id = i+1;
					session.Save(obj);
				}

				tx.Commit();
			}

			sessions.Evict(typeof(Item));
			sessions.EvictCollection(typeof(Item).FullName + ".Children");
		}
		public void InsertItemToCollectionOnTheSecondLevelCache()
		{
			using (ISession session = OpenSession())
			{
				Item item = (Item)session.Load(typeof(Item), 1);
				Item child = new Item();
				child.Id = 6;
				item.Children.Add(child);
				session.Save(child);
				session.Flush();
			}

			using (ISession session = OpenSession())
			{
				Item item = (Item)session.Load(typeof(Item), 1);
				int count = item.Children.Count;
				Assert.AreEqual(5, count);
			}
		}