public void CreateAndUpdateSingleFt()
        {
            string paraContents = "Das buch ist rot";
            string trans        = "The book is red";

            m_para.Contents.UnderlyingTsString = m_tsf.MakeString(paraContents, m_wsVern);
            ICmIndirectAnnotation ft      = MakeFt(m_para, trans, 0, paraContents.Length);
            FreeTransEditMonitor  monitor = new FreeTransEditMonitor(Cache, m_wsTrans);            // BEFORE propChanged!

            Cache.PropChanged(ft.Hvo, (int)CmAnnotation.CmAnnotationTags.kflidComment, 0, 0, 0);
            monitor.LoseFocus();
            Assert.AreEqual(1, m_para.TranslationsOC.Count, "monitor should have made a CmTranslation");
            Assert.AreEqual(trans, m_para.TranslationsOC.ToList()[0].Translation.GetAlternative(m_wsTrans).Text);
            string trans2 = "The book is green";

            ft.Comment.SetAlternative(trans2, m_wsTrans);
            monitor.Dispose();             // should trigger update.
            Assert.AreEqual(1, m_para.TranslationsOC.Count, "monitor should not have made another translation");
            Assert.AreEqual(trans2, m_para.TranslationsOC.ToList()[0].Translation.GetAlternative(m_wsTrans).Text);
        }
        public void NonScriptureText()
        {
            IText text = new Text();

            Cache.LangProject.TextsOC.Add(text);
            StText sttext = new StText();

            text.ContentsOA = sttext;
            m_para          = new StTxtPara();
            sttext.ParagraphsOS.Append(m_para);
            string paraContents = "Das buch ist rot";
            string trans        = "The book is red";

            m_para.Contents.UnderlyingTsString = m_tsf.MakeString(paraContents, m_wsVern);
            ICmIndirectAnnotation ft      = MakeFt(m_para, trans, 0, paraContents.Length);
            FreeTransEditMonitor  monitor = new FreeTransEditMonitor(Cache, m_wsTrans);            // BEFORE propChanged!

            Cache.PropChanged(ft.Hvo, (int)CmAnnotation.CmAnnotationTags.kflidComment, 0, 0, 0);
            monitor.LoseFocus();
            Assert.AreEqual(0, m_para.TranslationsOC.Count, "monitor should not make CmTranslation for non-Scripture");
        }