/// <summary>
 /// Instantiates a new <see cref="TagHelperBlockBuilder"/> instance based on the given
 /// <paramref name="original"/>.
 /// </summary>
 /// <param name="original">The original <see cref="TagHelperBlock"/> to copy data from.</param>
 public TagHelperBlockBuilder(TagHelperBlock original)
     : base(original)
 {
     TagName       = original.TagName;
     BindingResult = original.Binding;
     Attributes    = new List <TagHelperAttributeNode>(original.Attributes);
 }
 /// <summary>
 /// Instantiates a new <see cref="TagHelperBlockBuilder"/> instance based on the given
 /// <paramref name="original"/>.
 /// </summary>
 /// <param name="original">The original <see cref="TagHelperBlock"/> to copy data from.</param>
 public TagHelperBlockBuilder(TagHelperBlock original)
     : base(original)
 {
     SourceStartTag = original.SourceStartTag;
     SourceEndTag   = original.SourceEndTag;
     TagMode        = original.TagMode;
     BindingResult  = original.Binding;
     Attributes     = new List <TagHelperAttributeNode>(original.Attributes);
     TagName        = original.TagName;
 }
Exemple #3
0
        private static void EvaluateTagHelperBlock(ErrorCollector collector, TagHelperBlock actual, TagHelperBlock expected)
        {
            if (expected == null)
            {
                AddMismatchError(collector, actual, expected);
            }
            else
            {
                if (!string.Equals(expected.TagName, actual.TagName, StringComparison.Ordinal))
                {
                    collector.AddError(
                        "{0} - FAILED :: TagName mismatch for TagHelperBlock :: ACTUAL: {1}",
                        expected.TagName,
                        actual.TagName);
                }

                if (expected.TagMode != actual.TagMode)
                {
                    collector.AddError(
                        $"{expected.TagMode} - FAILED :: {nameof(TagMode)} for {nameof(TagHelperBlock)} " +
                        $"{actual.TagName} :: ACTUAL: {actual.TagMode}");
                }

                var expectedAttributes = expected.Attributes.GetEnumerator();
                var actualAttributes   = actual.Attributes.GetEnumerator();

                while (expectedAttributes.MoveNext())
                {
                    if (!actualAttributes.MoveNext())
                    {
                        collector.AddError("{0} - FAILED :: No more attributes on this node", expectedAttributes.Current);
                    }
                    else
                    {
                        EvaluateTagHelperAttribute(collector, actualAttributes.Current, expectedAttributes.Current);
                    }
                }
                while (actualAttributes.MoveNext())
                {
                    collector.AddError("End of Attributes - FAILED :: Found Attribute: {0}", actualAttributes.Current.Name);
                }
            }
        }