public void StandardValidator_EditingHintsCanReorder() { MarkedSpan mrk; Segment segment; SpanningCode span; Unit unit; Console.WriteLine("Test with no at start in source."); this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); segment.Source.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); segment.Target.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.Yes }); this.VerifyValidationException(ValidationError.CodeBaseSequenceStartsWithCanReorderNo); Console.WriteLine("Test with no at start in target."); this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); segment.Source.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.Yes }); segment.Target.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); this.VerifyValidationException(ValidationError.CodeBaseSequenceStartsWithCanReorderNo); Console.WriteLine("Test with 1 element in sequence."); this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); segment.Source.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); segment.Target.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.Yes }); StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with missing element in sequence."); this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); segment.Source.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); mrk = new MarkedSpan("mrk1"); segment.Source.Text.Add(mrk); mrk.Text.Add(new StandaloneCode("ph1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); segment.Target.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); this.VerifyValidationException(ValidationError.CodeBaseTagDeleted); Console.WriteLine("Test with reordered sequence."); this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); segment.Source.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); mrk = new MarkedSpan("mrk1"); segment.Source.Text.Add(mrk); mrk.Text.Add(new StandaloneCode("ph1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); segment.Target.Text.Add(new StandaloneCode("ph1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); segment.Target.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); this.VerifyValidationException(ValidationError.CodeBaseSequenceNotFound); Console.WriteLine("Test with added element in sequence."); this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); segment.Source.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); mrk = new MarkedSpan("mrk1"); segment.Source.Text.Add(mrk); mrk.Text.Add(new StandaloneCode("ph1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); segment.Target.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); segment.Target.Text.Add(new StandaloneCode("ph1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); segment.Target.Text.Add(new SpanningCodeStart("sc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); this.VerifyValidationException(ValidationError.CodeBaseSequenceMismatch); Console.WriteLine("Test with missing sequence."); this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); segment.Source.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); mrk = new MarkedSpan("mrk1"); segment.Source.Text.Add(mrk); mrk.Text.Add(new StandaloneCode("ph1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); this.VerifyValidationException(ValidationError.CodeBaseTagDeleted); Console.WriteLine("Test with CanCopy = true."); this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); segment.Source.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); mrk = new MarkedSpan("mrk1"); segment.Source.Text.Add(mrk); mrk.Text.Add(new StandaloneCode("ph1") { CanCopy = true, CanDelete = false, CanReorder = CanReorderValue.No }); segment.Target.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); segment.Target.Text.Add(new StandaloneCode("ph1") { CanCopy = true, CanDelete = false, CanReorder = CanReorderValue.No }); this.VerifyValidationException(ValidationError.CodeBaseMismatchedCanReorderCopyDelete); Console.WriteLine("Test with CanDelete = true."); this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); segment.Source.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); mrk = new MarkedSpan("mrk1"); segment.Source.Text.Add(mrk); mrk.Text.Add(new StandaloneCode("ph1") { CanCopy = false, CanDelete = true, CanReorder = CanReorderValue.No }); segment.Target.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); segment.Target.Text.Add(new StandaloneCode("ph1") { CanCopy = false, CanDelete = true, CanReorder = CanReorderValue.No }); this.VerifyValidationException(ValidationError.CodeBaseMismatchedCanReorderCopyDelete); Console.WriteLine("Test with multiple sequence where sequences are reordered."); this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); segment.Source.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); mrk = new MarkedSpan("mrk1"); segment.Source.Text.Add(mrk); mrk.Text.Add(new StandaloneCode("ph1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); segment.Source.Text.Add(new SpanningCode("pc2") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); mrk = new MarkedSpan("mrk2"); segment.Source.Text.Add(mrk); mrk.Text.Add(new StandaloneCode("ph2") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); mrk.Text.Add(new StandaloneCode("ph3") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); segment.Source.Text.Add(new SpanningCodeStart("sc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No, Isolated = true }); segment.Source.Text.Add(new SpanningCodeEnd("ec1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No, Isolated = true }); segment.Source.Text.Add(new SpanningCodeEnd("ec2") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.Yes, Isolated = true }); segment.Target.Text.Add(new StandaloneCode("ph2") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); segment.Target.Text.Add(new StandaloneCode("ph3") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); segment.Target.Text.Add(new SpanningCodeStart("sc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No, Isolated = true }); segment.Target.Text.Add(new SpanningCodeEnd("ec1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No, Isolated = true }); segment.Target.Text.Add(new SpanningCodeEnd("ec2") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.Yes, Isolated = true }); segment.Target.Text.Add(new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); segment.Target.Text.Add(new StandaloneCode("ph1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); segment.Target.Text.Add(new SpanningCode("pc2") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with invalid source hierarchy."); this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); span = new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.Yes }; span.Text.Add(new SpanningCode("pc2") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); segment.Source.Text.Add(span); segment.Source.Text.Add(new SpanningCode("pc3") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); segment.Target = null; this.VerifyValidationException(ValidationError.CodeBaseInvalidSourceSequenceHierarchy); Console.WriteLine("Test with invalid target hierarchy."); this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); span = new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.Yes }; span.Text.Add(new SpanningCode("pc2") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); span.Text.Add(new SpanningCode("pc3") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); segment.Source.Text.Add(span); span = new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.Yes }; span.Text.Add(new SpanningCode("pc2") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }); segment.Target.Text.Add(span); segment.Target.Text.Add(new SpanningCode("pc3") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); this.VerifyValidationException(ValidationError.CodeBaseInvalidTargetSequenceHierarchy); Console.WriteLine("Test with mismatched hierarchy."); this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); span = new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }; span.Text.Add(new SpanningCode("pc2") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); span.Text.Add(new SpanningCode("pc3") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); segment.Source.Text.Add(span); span = new SpanningCode("pc1") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.FirstNo }; span.Text.Add(new SpanningCode("pc2") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); segment.Target.Text.Add(span); segment.Target.Text.Add(new SpanningCode("pc3") { CanCopy = false, CanDelete = false, CanReorder = CanReorderValue.No }); this.VerifyValidationException(ValidationError.CodeBaseSequenceHierarchyMismatch); }
public void StandardValidator_EditingHintsCanDelete() { MarkedSpan mrk; Segment segment; SpanningCode sourceCode; SpanningCodeStart startCode; Unit unit; this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); sourceCode = new SpanningCode("pc1"); sourceCode.CanDelete = false; segment.Source.Text.Add(sourceCode); mrk = new MarkedSpan("mrk1"); segment.Target.Text.Add(mrk); this.VerifyValidationException(ValidationError.CodeBaseTagDeleted); // Add a start tag to the target. Since the Id doesn't match the pc, validation still fails. startCode = new SpanningCodeStart("sc1"); segment.Target.Text.Add(startCode); this.VerifyValidationException(ValidationError.CodeBaseTagDeleted); // Name the sc tag the same as the pc tag. Validation fails because the sc tag is isolated. startCode.Id = "pc1"; startCode.Isolated = true; this.VerifyValidationException(ValidationError.ContainerResourceTypesWithSameIdMismatch); // Add the ec and make the sc not isolated. Now validation should pass because sc and pc are equivalent. startCode.Isolated = false; segment.Target.Text.Add(new SpanningCodeEnd() { StartReference = startCode.Id }); StandardValidatorTests._validator.Validate(this._document); }
public void StandardValidator_SpanningCode() { SpanningCode span; Segment segment; Unit unit; span = new SpanningCode(); Console.WriteLine("Test with null Id."); this.DeserializeDocument(); unit = (Unit)this._document.Files[0].Containers.First(c => c is Unit); segment = (Segment)unit.Resources.First(r => r is Segment); segment.Source.Text.Add(span); this.VerifyValidationException(ValidationError.CodeBaseIdNull); Console.WriteLine("Test with empty Id."); span.Id = String.Empty; this.VerifyValidationException(ValidationError.CodeBaseIdNull); Console.WriteLine("Test with duplicate Id."); segment.Id = "duplicateId"; span.Id = segment.Id; this.VerifyValidationException(ValidationError.ElementIdDuplicate); Console.WriteLine("Test with item on target not matching source."); span.Id = "newSpanId"; segment.Target.Text.Add(new MarkedSpan("bogus")); StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with DataReferenceEnd matching data."); span = new SpanningCode("spanId"); span.Type = CodeType.Formatting; this.DeserializeDocument(); unit = (Unit)this._document.Files[0].Containers.First(c => c is Unit); unit.OriginalData = new OriginalData(); unit.OriginalData.AddData("dataId", "text"); segment = (Segment)unit.Resources.First(r => r is Segment); segment.Source.Text.Add(span); span.DataReferenceEnd = "dataId"; span.DataReferenceStart = "dataId"; StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with DataReferenceEnd not matching data."); span.DataReferenceEnd = "bogus"; this.VerifyValidationException(ValidationError.SpanningCodeInvalidDataRefEnd); Console.WriteLine("Test with DataReferenceEnd is null."); span.DataReferenceEnd = null; StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with DataReferenceEnd is empty."); span.DataReferenceEnd = String.Empty; this.VerifyValidationException(ValidationError.SpanningCodeInvalidDataRefEnd); span.DataReferenceEnd = "dataId"; Console.WriteLine("Test with DataReferenceStart not matching data."); span.DataReferenceStart = "bogus"; this.VerifyValidationException(ValidationError.SpanningCodeInvalidDataRefStart); Console.WriteLine("Test with DataReferenceStart is null."); span.DataReferenceStart = null; StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with DataReferenceStart is empty."); span.DataReferenceStart = String.Empty; this.VerifyValidationException(ValidationError.SpanningCodeInvalidDataRefStart); Console.WriteLine("Test with SubFlowsEnd is null."); span = new SpanningCode("spanId"); span.Type = CodeType.Formatting; this.DeserializeDocument(); unit = (Unit)this._document.Files[0].Containers.First(c => c is Unit); unit.OriginalData = new OriginalData(); unit.OriginalData.AddData("dataId", "text"); segment = (Segment)unit.Resources.First(r => r is Segment); segment.Source.Text.Add(span); span.DataReferenceEnd = "dataId"; span.DataReferenceStart = "dataId"; span.SubFlowsEnd = null; StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with SubFlowsEnd is empty."); span.SubFlowsEnd = String.Empty; this.VerifyValidationException(ValidationError.SpanningCodeInvalidSubFlowsEnd); Console.WriteLine("Test with SubFlowsEnd matching a unit."); span.SubFlowsEnd = "u1"; StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with SubFlowsEnd matching multiple units."); span.SubFlowsEnd = "u1 u2 u3"; StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with SubFlowsEnd multiple units with one not matching."); span.SubFlowsEnd = "u1 u200 u3"; this.VerifyValidationException(ValidationError.SpanningCodeInvalidSubFlowsEnd); Console.WriteLine("Test with SubFlowsStart is null."); span = new SpanningCode("spanId"); span.Type = CodeType.Formatting; this.DeserializeDocument(); unit = (Unit)this._document.Files[0].Containers.First(c => c is Unit); unit.OriginalData = new OriginalData(); unit.OriginalData.AddData("dataId", "text"); segment = (Segment)unit.Resources.First(r => r is Segment); segment.Source.Text.Add(span); span.DataReferenceEnd = "dataId"; span.DataReferenceStart = "dataId"; span.SubFlowsStart = null; StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with SubFlowsStart is empty."); span.SubFlowsStart = String.Empty; this.VerifyValidationException(ValidationError.SpanningCodeInvalidSubFlowsStart); Console.WriteLine("Test with SubFlowsStart matching a unit."); span.SubFlowsStart = "u1"; StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with SubFlowsStart matching multiple units."); span.SubFlowsStart = "u1 u2 u3"; StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with SubFlowsStart multiple units with one not matching."); span.SubFlowsStart = "u1 u200 u3"; this.VerifyValidationException(ValidationError.SpanningCodeInvalidSubFlowsStart); Console.WriteLine("Test with SubType not like prefix:value."); span = new SpanningCode("spanId"); span.Type = CodeType.Formatting; this.DeserializeDocument(); unit = (Unit)this._document.Files[0].Containers.First(c => c is Unit); unit.OriginalData = new OriginalData(); unit.OriginalData.AddData("dataId", "text"); segment = (Segment)unit.Resources.First(r => r is Segment); segment.Source.Text.Add(span); span.DataReferenceEnd = "dataId"; span.DataReferenceStart = "dataId"; span.SubType = "a"; StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with SubType using xlf:value."); span.SubType = "Xlf:value"; this.VerifyValidationException(ValidationError.CodeBaseSubTypeInvalid); Console.WriteLine("Test with SubType using prefix:value:value is ok."); span.SubType = "prefix:value:value"; StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with SubType set and Type not."); span.SubType = "prefix:value"; span.Type = null; this.VerifyValidationException(ValidationError.CodeBaseTypeNotSpecified); Console.WriteLine("Test with SubType is null."); span.SubType = null; span.Type = CodeType.Formatting; StandardValidatorTests._validator.Validate(this._document); foreach (string name in new string[] { "lb", "pb", "b", "i", "u" }) { Console.WriteLine("Test with SubType set to {0} and Type set to fmt.", name); span.SubType = "xlf:" + name; span.Type = CodeType.Formatting; StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with SubType set to {0} and Type not set to fmt.", name); span.Type = CodeType.Image; this.VerifyValidationException(ValidationError.CodeBaseSubTypeMismatchFormatting); } Console.WriteLine("Test with SubType set to var and Type set to var."); span.SubType = "xlf:var"; span.Type = CodeType.UserInterface; StandardValidatorTests._validator.Validate(this._document); Console.WriteLine("Test with SubType set to var and Type not set to var."); span.Type = CodeType.Image; this.VerifyValidationException(ValidationError.CodeBaseSubTypeMismatchUserInterface); }
public void StandardValidator_EditingHintsCanCopy() { MarkedSpan mrk; Segment segment; SpanningCode sourceCode; SpanningCode targetCode; Unit unit; Console.WriteLine("Test with copy from source."); this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); sourceCode = new SpanningCode("pc1"); sourceCode.CanCopy = false; segment.Source.Text.Add(sourceCode); mrk = new MarkedSpan("mrk1"); segment.Target.Text.Add(mrk); targetCode = new SpanningCode("pc2"); targetCode.CopyOf = "pc1"; targetCode.DataReferenceEnd = null; targetCode.DataReferenceStart = null; mrk.Text.Add(targetCode); this.VerifyValidationException(ValidationError.CodeBaseTargetCopyOfTypeMismatchOrNotCanCopy); Console.WriteLine("Test with copy from target."); this.DeserializeDocument(); unit = this._document.Files[0].Containers.Where(c => c is Unit).First() as Unit; segment = unit.Resources.Where(c => c is Segment).Cast<Segment>().First(); sourceCode = new SpanningCode("pc1"); sourceCode.CanCopy = false; segment.Target.Text.Add(sourceCode); mrk = new MarkedSpan("mrk1"); segment.Target.Text.Add(mrk); targetCode = new SpanningCode("pc2"); targetCode.CopyOf = "pc1"; mrk.Text.Add(targetCode); this.VerifyValidationException(ValidationError.CodeBaseTargetCopyOfTypeMismatchOrNotCanCopy); }
/// <summary> /// Creates a <see cref="SpanningCode"/> with every element and attribute. /// </summary> /// <param name="copyOf">The Id of the element to copy, or null.</param> /// <returns>The created <see cref="SpanningCode"/>.</returns> private SpanningCode CreatePc(string copyOf) { SpanningCode result; result = new SpanningCode("pc" + this.GetNextId(typeof(SpanningCode))); result.CanCopy = true; result.CanDelete = true; result.CanOverlap = true; result.CanReorder = CanReorderValue.Yes; result.CopyOf = copyOf; result.DataReferenceEnd = null; result.DataReferenceStart = null; result.Directionality = ContentDirectionality.Auto; result.DisplayTextEnd = "end"; result.DisplayTextStart = "start"; result.EquivalentStorage = "storage"; result.EquivalentTextEnd = "equivend"; result.EquivalentTextStart = "equivstart"; result.FormatStyle = FormatStyleValue.Anchor; result.SizeInfoReference = "sizeref"; result.SizeRestriction = "restriction"; result.StorageRestriction = "restriction"; result.SubFlowsEnd = "u1"; result.SubFlowsStart = "u1"; result.SubFormatStyle.Add("key1", "value1"); result.SubFormatStyle.Add("key2", "value2"); result.SubType = "pre:subtype"; result.Text.Add(new PlainText("text")); result.Type = CodeType.Formatting; return result; }