public void CreateOwnedObjects_MultipleAtEnd() { CheckDisposed(); StTxtPara para = (StTxtPara)m_currentText.ParagraphsOS[0]; // We use m_archivedText with para from m_currentText to create a footnote. // This simulates a "paragraph with footnote" just copied from m_archivedText. // The important thing here is that we have a footnote that links to a // different owner. m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, 0, null); m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, para.Contents.Length, null); int paraLen = para.Contents.Length; NMock.DynamicMock mockIObjectMetaInfoProvider = new DynamicMock(typeof(IObjectMetaInfoProvider)); mockIObjectMetaInfoProvider.Strict = true; mockIObjectMetaInfoProvider.ExpectAndReturn("NextFootnoteIndex", 0, new object[] { para, 0 }); mockIObjectMetaInfoProvider.SetupResult("FootnoteMarkerStyle", "Note Marker"); Assert.AreEqual(0, m_currentFootnotesOS.Count); para.CreateOwnedObjects(0, paraLen, (IObjectMetaInfoProvider)mockIObjectMetaInfoProvider.MockInstance); mockIObjectMetaInfoProvider.Verify(); Assert.AreEqual(2, m_currentFootnotesOS.Count); VerifyFootnote((StFootnote)m_currentFootnotesOS[0], para, 0); VerifyFootnote((StFootnote)m_currentFootnotesOS[1], para, paraLen - 1); }
public void CreateOwnedObjects_MultipleFootnotesStartInMiddle() { CheckDisposed(); StTxtPara para = m_inMemoryCache.AddParaToMockedText(m_currentText.Hvo, "Normal"); m_inMemoryCache.AddRunToMockedPara(para, "This is the paragraph of the second section " + "of the first chapter of Genesis. This is here so that we have enough characters " + "to insert footnotes into it.", null); m_inMemoryCache.AddFootnote(m_currentFootnotesOS, para, 0, null); m_inMemoryCache.AddFootnote(m_currentFootnotesOS, para, 20, null); StFootnote footnotePrev = (StFootnote)m_currentFootnotesOS[0]; StFootnote footnoteAfter = (StFootnote)m_currentFootnotesOS[1]; para = (StTxtPara)m_currentText.ParagraphsOS[0]; m_archivedFootnotesOS = m_inMemoryCache.CreateArbitraryFootnoteSequence(m_archivedText); StFootnote footnote1 = m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, 4, null); footnote1.DisplayFootnoteMarker = true; footnote1.DisplayFootnoteReference = false; StFootnote footnote2 = m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, 7, null); footnote2.DisplayFootnoteMarker = false; footnote2.DisplayFootnoteReference = true; Cache.ChangeOwner(para.Hvo, m_currentText.Hvo, (int)StText.StTextTags.kflidParagraphs, 0); NMock.DynamicMock mockIObjectMetaInfoProvider = new DynamicMock(typeof(IObjectMetaInfoProvider)); mockIObjectMetaInfoProvider.Strict = true; mockIObjectMetaInfoProvider.ExpectAndReturn("NextFootnoteIndex", 1, new object[] { para, 0 }); mockIObjectMetaInfoProvider.SetupResult("FootnoteMarkerStyle", "Note Marker"); para.CreateOwnedObjects(0, 10, (IObjectMetaInfoProvider)mockIObjectMetaInfoProvider.MockInstance); mockIObjectMetaInfoProvider.Verify(); Assert.AreEqual(4, m_currentFootnotesOS.Count); IStFootnote testFootnote = m_currentFootnotesOS[0]; Assert.AreEqual(footnotePrev.Hvo, testFootnote.Hvo, "Previous footnote shouldn't have moved"); testFootnote = m_currentFootnotesOS[1]; VerifyFootnote(testFootnote, para, 4); Assert.IsTrue(testFootnote.DisplayFootnoteMarker); Assert.IsFalse(testFootnote.DisplayFootnoteReference); testFootnote = m_currentFootnotesOS[2]; VerifyFootnote(testFootnote, para, 7); Assert.IsFalse(testFootnote.DisplayFootnoteMarker); Assert.IsTrue(testFootnote.DisplayFootnoteReference); testFootnote = m_currentFootnotesOS[3]; Assert.AreEqual(footnoteAfter.Hvo, testFootnote.Hvo, "Following footnote should have gotten bumped two places"); }
public void CreateOwnedObjects_MultipleFootnotesStartAt0() { CheckDisposed(); StTxtPara para = (StTxtPara)m_archivedText.ParagraphsOS[0]; StFootnote footnote1 = m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, 0, null); footnote1.DisplayFootnoteMarker = true; footnote1.DisplayFootnoteReference = false; StFootnote footnote2 = m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, 1, null); footnote2.DisplayFootnoteMarker = false; footnote2.DisplayFootnoteReference = false; StFootnote footnote3 = m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, 2, null); footnote3.DisplayFootnoteMarker = true; footnote3.DisplayFootnoteReference = true; Cache.ChangeOwner(para.Hvo, m_currentText.Hvo, (int)StText.StTextTags.kflidParagraphs, 0); NMock.DynamicMock mockIObjectMetaInfoProvider = new DynamicMock(typeof(IObjectMetaInfoProvider)); mockIObjectMetaInfoProvider.Strict = true; mockIObjectMetaInfoProvider.ExpectAndReturn("NextFootnoteIndex", 0, new object[] { para, 0 }); mockIObjectMetaInfoProvider.SetupResult("FootnoteMarkerStyle", "Note Marker"); para.CreateOwnedObjects(0, 3, (IObjectMetaInfoProvider)mockIObjectMetaInfoProvider.MockInstance); mockIObjectMetaInfoProvider.Verify(); Assert.AreEqual(3, m_currentFootnotesOS.Count); IStFootnote testFootnote = m_currentFootnotesOS[0]; Assert.IsTrue(testFootnote.DisplayFootnoteMarker); Assert.IsFalse(testFootnote.DisplayFootnoteReference); VerifyFootnote(testFootnote, para, 0); testFootnote = m_currentFootnotesOS[1]; Assert.IsFalse(testFootnote.DisplayFootnoteMarker); Assert.IsFalse(testFootnote.DisplayFootnoteReference); VerifyFootnote(testFootnote, para, 1); testFootnote = m_currentFootnotesOS[2]; Assert.IsTrue(testFootnote.DisplayFootnoteMarker); Assert.IsTrue(testFootnote.DisplayFootnoteReference); VerifyFootnote(testFootnote, para, 2); }
public void CreateOwnedObjects_Footnote() { CheckDisposed(); StTxtPara para = (StTxtPara)m_archivedText.ParagraphsOS[0]; StFootnote footnote = m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, 0, null); Cache.ChangeOwner(para.Hvo, m_currentText.Hvo, (int)StText.StTextTags.kflidParagraphs, 0); NMock.DynamicMock mockIObjectMetaInfoProvider = new DynamicMock(typeof(IObjectMetaInfoProvider)); mockIObjectMetaInfoProvider.Strict = true; mockIObjectMetaInfoProvider.ExpectAndReturn("NextFootnoteIndex", 0, new object[] { para, 0 }); mockIObjectMetaInfoProvider.SetupResult("FootnoteMarkerStyle", "Note Marker"); para.CreateOwnedObjects(0, 1, (IObjectMetaInfoProvider)mockIObjectMetaInfoProvider.MockInstance); mockIObjectMetaInfoProvider.Verify(); Assert.AreEqual(1, m_currentFootnotesOS.Count); VerifyFootnote((StFootnote)m_currentFootnotesOS[0], para, 0); }
public void CreateOwnedObjects_Picture() { CheckDisposed(); StTxtPara para = (StTxtPara)m_currentText.ParagraphsOS[0]; ITsString tss = para.Contents.UnderlyingTsString; ITsStrFactory factory = TsStrFactoryClass.Create(); using (DummyFileMaker fileMaker = new DummyFileMaker("junk.jpg", true)) { CmPicture pict = new CmPicture(Cache, fileMaker.Filename, factory.MakeString("Test picture", Cache.DefaultVernWs), StringUtils.LocalPictures); pict.InsertORCAt(tss, 0, para.Hvo, (int)StTxtPara.StTxtParaTags.kflidContents, 0); tss = para.Contents.UnderlyingTsString; int cchOrigStringLength = tss.Length; NMock.DynamicMock mockIObjectMetaInfoProvider = new DynamicMock(typeof(IObjectMetaInfoProvider)); mockIObjectMetaInfoProvider.Strict = true; mockIObjectMetaInfoProvider.ExpectAndReturn(1, "PictureFolder", StringUtils.LocalPictures); para.CreateOwnedObjects(0, 1, (IObjectMetaInfoProvider)mockIObjectMetaInfoProvider.MockInstance); mockIObjectMetaInfoProvider.Verify(); tss = para.Contents.UnderlyingTsString; Assert.AreEqual(cchOrigStringLength, tss.Length); string sObjData = tss.get_Properties(0).GetStrPropValue((int)FwTextPropType.ktptObjData); Guid guid = MiscUtils.GetGuidFromObjData(sObjData.Substring(1)); byte odt = Convert.ToByte(sObjData[0]); Assert.AreEqual((byte)FwObjDataTypes.kodtGuidMoveableObjDisp, odt); Assert.IsTrue(Cache.GetGuidFromId(pict.Hvo) != guid, "New guid was not inserted"); } }