private static void VerifyReassembly(string inputString) { var expectedModel = new MemDocModel(); expectedModel.ParseFromString(inputString, false); Assert.AreEqual(inputString.TrimEndAndNewlines(), expectedModel.ToString().TrimEndAndNewlines()); }
public void MemberWithOnlySummary() { const string inputString = "This is our summary"; var derivedModel = new MemDocModel(inputString); Assert.AreEqual(inputString, derivedModel.Summary); Assert.AreEqual(0, derivedModel.TextBlocks.Count); Assert.AreEqual(0, derivedModel.Parameters.Count); Assert.AreEqual(0, derivedModel.SignatureList.Count); }
public void MemberWithOnlySummary() { const string inputString = "This is our summary"; var derivedModel = new MemDocModel(inputString); Assert.AreEqual(inputString, derivedModel.Summary); Assert.AreEqual(0, derivedModel.TextBlocks.Count); Assert.AreEqual(0, derivedModel.Parameters.Count); Assert.AreEqual(0, derivedModel.SignatureList.Count); }
public static MemDocModel MemDocFor(MemberReference memberReference) { try { var inputFromMem = File.ReadAllText(MemFileNameFor(memberReference)); var memDoc = new MemDocModel(inputFromMem); return(memDoc); } catch { return(null); } }
public void MemberWithSignatureListAndSummary() { const string inputString = ParserToken.SignatureOpen + @" sig1 sig2 sig3 sig4 " + ParserToken.SignatureClose + @" Summary for all sigs"; var derivedModel = new MemDocModel(inputString); Assert.AreEqual("Summary for all sigs", derivedModel.Summary); Assert.AreEqual(0, derivedModel.TextBlocks.Count); Assert.AreEqual(0, derivedModel.Parameters.Count); Assert.AreEqual(4, derivedModel.SignatureList.Count); }
public void MemberWithSignatureListAndSummary() { const string inputString = ParserToken.SignatureOpen + @" sig1 sig2 sig3 sig4 " + ParserToken.SignatureClose + @" Summary for all sigs"; var derivedModel = new MemDocModel(inputString); Assert.AreEqual("Summary for all sigs", derivedModel.Summary); Assert.AreEqual(0, derivedModel.TextBlocks.Count); Assert.AreEqual(0, derivedModel.Parameters.Count); Assert.AreEqual(4, derivedModel.SignatureList.Count); }
public void MemberWith2MeaningfulBlocks() { const string inputString = ParserToken.SignatureOpen + @" sig1 sig2 " + ParserToken.SignatureClose + @" Summary for first sigs "+ParserToken.SignatureOpen + @" sig3 sig4 " + ParserToken.SignatureClose + @" Summary for second sigs "; var derivedModel = new MemDocModel(inputString); Assert.AreEqual(2, derivedModel.MeaningfulBlocks.Count); Assert.AreEqual("Summary for first sigs", derivedModel.MeaningfulBlocks[0].Summary); Assert.AreEqual("Summary for second sigs", derivedModel.MeaningfulBlocks[1].Summary); }
public void MemberWith2MeaningfulBlocks() { const string inputString = ParserToken.SignatureOpen + @" sig1 sig2 " + ParserToken.SignatureClose + @" Summary for first sigs " + ParserToken.SignatureOpen + @" sig3 sig4 " + ParserToken.SignatureClose + @" Summary for second sigs "; var derivedModel = new MemDocModel(inputString); Assert.AreEqual(2, derivedModel.MeaningfulBlocks.Count); Assert.AreEqual("Summary for first sigs", derivedModel.MeaningfulBlocks[0].Summary); Assert.AreEqual("Summary for second sigs", derivedModel.MeaningfulBlocks[1].Summary); }
public void MemberWith2MeaningfulBlocks() { const string kInputString = @"<signature> sig1 sig2 </signature> Summary for first sigs <signature> sig3 sig4 </signature> Summary for second sigs "; var derivedModel = new MemDocModel(); derivedModel.ParseFromString(kInputString, true); Assert.AreEqual(2, derivedModel.SubSections.Count); Assert.AreEqual("Summary for first sigs", derivedModel.SubSections[0].Summary); Assert.AreEqual("Summary for second sigs", derivedModel.SubSections[1].Summary); }
private void WriteSummaryAndTextBlocksFor(TextWriter tw, MemDocModel memdoc) { tw.Write(@" <p>{0}</p> ", ReplaceSpecialSyntaxWithProperTags(InjectLinksToApiReferences(memdoc.Summary))); foreach (var block in memdoc.TextBlocks) { var descriptionBlock = block as DescriptionBlock; if (descriptionBlock != null) { tw.Write("<p>{0}</P>", ReplaceSpecialSyntaxWithProperTags(InjectLinksToApiReferences(descriptionBlock.Text))); } var exampleblock = block as ExampleBlock; if (exampleblock != null) { tw.Write(ExampleHtmlGenerator.ExamleHtmlFor(exampleblock.Text)); } } }
private static void VerifyReassembly(string inputString) { var expectedModel = new MemDocModel(inputString); Assert.AreEqual(inputString.TrimEndAndNewlines(), expectedModel.ToString().TrimEndAndNewlines()); }
private MemberSession MergeTranslated(MemDocModel english, MemDocModel translatedOld) { MemberSession translatedNewMember = new MemberSession(m_Browser.docProject, m_Item, translatedOld.Language); MemDocModel translatedNew = translatedNewMember.Model; // If number of sections don't match at all, make new list of sections if (english.SubSections.Count != translatedNew.SubSections.Count) { translatedNew.SubSections.Clear(); for (int i = 0; i < english.SubSections.Count; i++) { translatedNew.SubSections.Add(new MemberSubSection("")); } } for (int s = 0; s < english.SubSections.Count; s++) { MemberSubSection engSec = english.SubSections[s]; MemberSubSection newSec = translatedNew.SubSections[s]; // Replace signatures newSec.SignatureList = engSec.SignatureList; // Replace flags newSec.IsCsNone = engSec.IsCsNone; newSec.IsUndoc = engSec.IsUndoc; // Merge parameters List <ParameterWithDoc> oldParams = newSec.Parameters; newSec.Parameters = new List <ParameterWithDoc> (); foreach (ParameterWithDoc engParam in engSec.Parameters) { ParameterWithDoc newParam = new ParameterWithDoc(engParam.Name); newParam.Types = engParam.Types; ParameterWithDoc oldParam = oldParams.FirstOrDefault(e => e.Name == engParam.Name); if (oldParam != null && !string.IsNullOrEmpty(oldParam.Doc)) { newParam.Doc = oldParam.Doc; } else { newParam.Doc = GetInitialTranslationString(engParam.Doc); } newSec.Parameters.Add(newParam); } // Merge return type if (engSec.ReturnDoc == null) { newSec.ReturnDoc = null; } else { string returnDocString = newSec.ReturnDoc != null ? newSec.ReturnDoc.Doc : GetInitialTranslationString(engSec.ReturnDoc.Doc); newSec.ReturnDoc = new ReturnWithDoc(); newSec.ReturnDoc.ReturnType = engSec.ReturnDoc.ReturnType; newSec.ReturnDoc.Doc = returnDocString; } // Merge text blocks bool blockTypesMatch = true; if (newSec.TextBlocks.Count != engSec.TextBlocks.Count) { blockTypesMatch = false; } else { for (int i = 0; i < engSec.TextBlocks.Count; i++) { if (engSec.TextBlocks[i].GetType() != newSec.TextBlocks[i].GetType()) { blockTypesMatch = false; } } } // If block types match, only replace examples if (blockTypesMatch) { for (int i = 0; i < engSec.TextBlocks.Count; i++) { TextBlock engBlock = engSec.TextBlocks[i]; if (engBlock is ExampleBlock) { newSec.TextBlocks[i] = engBlock; } } } // If block types don't match, replace examples and make all description // blocks have TODO in them (except if the English one is empty too). else { newSec.TextBlocks.Clear(); for (int i = 0; i < engSec.TextBlocks.Count; i++) { TextBlock engBlock = engSec.TextBlocks[i]; if (engBlock is ExampleBlock) { newSec.TextBlocks.Add(engBlock); } else if (engBlock is DescriptionBlock) { newSec.TextBlocks.Add(new DescriptionBlock(GetInitialTranslationString(engBlock.Text))); } } } } translatedNewMember.TextOrig = translatedOld.ToString(); translatedNewMember.TextCurrent = translatedNew.ToString(); translatedNewMember.Diff.Compare(translatedNewMember.TextOrig, translatedNewMember.TextCurrent); return(translatedNewMember); }