private static void ValidateProfileTextBlockData(ContainerFragment containerFragment, GenContainerFragmentBase genContainerFragment) { var textBlock = containerFragment as TextBlock; if (textBlock == null) { return; } var genTextBlock = (GenTextBlock)genContainerFragment; var s = ""; foreach (var fragment in textBlock.Body().FragmentList) { var text = fragment as Text; var placeholder = fragment as Placeholder; if (text != null) { s += text.TextValue; } else if (placeholder != null) { s += String.Format("`{0}.{1}`", placeholder.Class, placeholder.Property); } } Assert.AreEqual( genTextBlock.ProfileText(ProfileFragmentSyntaxDictionary.ActiveProfileFragmentSyntaxDictionary), s, "Text block profile text"); }
private void ScanBody(int classId, GenSegBody body, GenContainerFragmentBase parentContainer, ContainerFragment containerFragment) { var saveClassId = GenDataDef.CurrentClassId; GenDataDef.CurrentClassId = classId; if (!Scan.Eof) { TokenType t; CompactPrimaryBodyParser.ScanPartialBody(classId, body, parentContainer, containerFragment, out t); if (t == TokenType.Secondary) { Scan.SkipChar(); CompactSecondaryBodyParser.ScanPartialBody(classId, body, parentContainer, containerFragment, out t); } if (t != TokenType.Close) { if (Scan.Eof && classId != 0) { //throw new Exception("<<<<Missing Segment end bracket>>>>"); OutputText(parentContainer, true, "<<<<Missing Segment end bracket>>>>"); } if (!Scan.Eof) { //throw new Exception("<<<<Unknown text in profile>>>>"); OutputText(parentContainer, true, "<<<<Unknown text in profile>>>>"); } } else { if (Scan.CheckChar(']')) { Scan.SkipChar(); } } } else if (classId != 0) { //throw new Exception("<<<<<Missing Segment end bracket>>>>>"); OutputText(parentContainer, true, "<<<<Unknown text in profile>>>>"); } GenDataDef.CurrentClassId = saveClassId; }
private static void ValidateProfileSegmentData(GenDataDef genDataDef, ContainerFragment containerFragment, GenContainerFragmentBase genContainerFragment, ref string className) { var segment = containerFragment as Segment; if (segment == null) { return; } var genSegment = (GenSegment)genContainerFragment; className = segment.Class; Assert.AreEqual(genDataDef.GetClassName(genSegment.ClassId), className, "Segment class"); var cardinality = ((Segment)genSegment.Fragment).GenCardinality; Assert.AreEqual(cardinality.ToString(), segment.Cardinality); if (cardinality == GenCardinality.AllDlm || cardinality == GenCardinality.BackDlm) { Assert.AreNotEqual("Empty1", segment.Secondary); Assert.AreNotEqual(0, segment.SecondaryBody().FragmentList.Count); } }
internal void ScanPartialBody(int classId, GenSegBody body, GenContainerFragmentBase parentContainer, ContainerFragment containerFragment, out TokenType t) { FragmentBody = IsPrimary ? containerFragment.Body() : containerFragment.SecondaryBody(); GenTextBlock textBlock = null; var s = Scan.ScanText(); if (Scan.Eof) { if (s.Length > 0) { GenCompactProfileParser.AddText(parentContainer, FragmentBody, ref textBlock, s, GenDataDef, IsPrimary); } t = TokenType.Unknown; return; } if (s.Length > 0) { GenCompactProfileParser.AddText(parentContainer, FragmentBody, ref textBlock, s, GenDataDef, IsPrimary); } t = Scan.ScanTokenType(); while (!Scan.Eof && t != TokenType.Close && t != TokenType.Secondary && t != TokenType.Unknown) { if (t != TokenType.Name && textBlock != null) { textBlock = null; } var frag = GenCompactProfileParser.ScanFragment(classId, ref t, out s, parentContainer, FragmentBody, ref textBlock, IsPrimary); if (t != TokenType.Name) { AddFragment(body, frag); } if (s.Length > 0) { GenCompactProfileParser.AddText(parentContainer, FragmentBody, ref textBlock, s, GenDataDef, IsPrimary); } t = Scan.ScanTokenType(); } }