コード例 #1
0
ファイル: MiscTests.cs プロジェクト: sillsdev/WorldPad
		//TODO: (JDH) fix this so that only an exception *on the last line* will produce a PASS

		// Validity checking in DEBUG mode has been turned off.  It complicates performance testing too much.
		//        [ExpectedException(typeof(ArgumentException))]
		//#if !DEBUG
		//        [Ignore("This test doesn't get an exception in release mode due to CmObject c'tor")]
		//#endif

		//TODO (Steve Miller): The above test fails if the followeng lines are remarked
		// out in CmObject.cs, like below. I have frequently remarked out lines there
		// like this, because they foul up SQL performance tests:
		//
		// (InitExisting method)
		//  //#if DEBUG
		//  //	if (!fcCache.IsDummyObject(hvo))
		//  //		fCheckValidity = true;
		//  //#endif
		//
		// (CreateFromDBObject method)
		// //#if DEBUG
		// //     true/*validity check*/,
		// //#else
		//		false,
		// //#endif

		public void DeleteUnderlyingObject()
		{
			CheckDisposed();

			LexEntry se = new LexEntry();
			m_fdoCache.LangProject.LexDbOA.EntriesOC.Add(se);
			LexSense ls = new LexSense();
			se.SensesOS.Append(ls);
			int khvoLexSense = ls.Hvo;

			ls.DeleteUnderlyingObject();

			Assert.IsTrue(m_fdoCache.VwOleDbDaAccessor.get_ObjOwner(khvoLexSense) <= 0); // khvoLexSense not removed from cache.

			// See if FDO object is valid. It should not be.
			Assert.IsFalse(ls.IsValidObject());

			// Test to see if it is really gone from DB.
			// An exception should be thrown by CmObject.InitExisting,
			// since khvoLexSense isn't in DB now.
			ls = new LexSense(m_fdoCache, khvoLexSense, true, true);
			Assert.IsFalse(ls.IsValidObject());
		}