Esempio n. 1
0
		public void MergeGuids()
		{
			CheckDisposed();

			// Use LangProject.Filters.
			FdoOwningCollection<ICmFilter> filtersCol = Cache.LangProject.FiltersOC;
			ICmFilter keeper = filtersCol.Add(new CmFilter());
			ICmFilter src = filtersCol.Add(new CmFilter());

			// Ensure empty (new) guid does not get changed.
			Assert.IsTrue(keeper.App == Guid.Empty);
			src.App = Guid.NewGuid();
			Guid oldSrcGuid = src.App;
			keeper.MergeObject(src);
			Assert.IsTrue(keeper.App == oldSrcGuid);

			// Should not change extant guid in either of the next two checks.
			Guid newGuid = Guid.NewGuid();
			keeper.App = newGuid;
			src = filtersCol.Add(new CmFilter());
			src.App = Guid.NewGuid();
			keeper.MergeObject(src);
			Assert.IsTrue(keeper.App == newGuid);

			src = filtersCol.Add(new CmFilter());
			src.App = Guid.Empty;
			keeper.MergeObject(src);
			Assert.IsTrue(keeper.App == newGuid);
		}
Esempio n. 2
0
		public void MergeUnicode()
		{
			CheckDisposed();

			// 15 CmFilter.Name
			string goodFilter = "Fram";
			string junkFilter = "Brand X";
			FdoOwningCollection<ICmFilter> filtersCol = Cache.LangProject.FiltersOC;
			ICmFilter keeper = filtersCol.Add(new CmFilter());
			ICmFilter src = filtersCol.Add(new CmFilter());

			// Merge content into null original.
			src.Name = goodFilter;
			keeper.MergeObject(src);
			Assert.AreEqual(keeper.Name, goodFilter);

			// Try to merge empty string into null.
			keeper.Name = null;
			src = filtersCol.Add(new CmFilter());
			src.Name = "";
			keeper.MergeObject(src);
			Assert.IsNull(keeper.Name);

			// Try to merge empty string into content.
			keeper.Name = goodFilter;
			src = filtersCol.Add(new CmFilter());
			src.Name = "";
			keeper.MergeObject(src);
			Assert.AreEqual(keeper.Name, goodFilter);

			// Try to merge content into content.
			keeper.Name = goodFilter;
			src = filtersCol.Add(new CmFilter());
			src.Name = junkFilter;
			keeper.MergeObject(src);
			Assert.AreEqual(keeper.Name, goodFilter);

			// Test merge append
			src = filtersCol.Add(new CmFilter());
			src.Name = junkFilter;
			keeper.MergeObject(src, true);
			Assert.AreEqual(keeper.Name, goodFilter +  ' ' + junkFilter);

			// But don't append if equal.
			keeper.Name = goodFilter;
			src = filtersCol.Add(new CmFilter());
			src.Name = goodFilter;
			keeper.MergeObject(src, true);
			Assert.AreEqual(keeper.Name, goodFilter);
		}