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); }
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); }