/// <summary>
 /// Creates a new <see cref="SourceCollection"/>.
 /// </summary>
 public SourceCollection(ComparisonSourceType sourceType, IReadOnlyList <ComparisonSource> sources)
 {
     SourceType = sourceType;
     _sources   = sources;
     _status    = new int[_sources.Count];
     Count      = _sources.Count;
 }
        public void Test11(int otherIndex, string otherPath, ComparisonSourceType otherSourceType)
        {
            var node        = ToNode("<br>");
            var source      = new ComparisonSource(node, 1, "path", ComparisonSourceType.Control);
            var otherSource = new ComparisonSource(node, otherIndex, otherPath, otherSourceType);

            source.Equals(otherSource).ShouldBeFalse();
            (source == otherSource).ShouldBeFalse();
            (source != otherSource).ShouldBeTrue();
        }
Esempio n. 3
0
        /// <summary>
        /// Creates a <see cref="ComparisonSource"/>.
        /// </summary>
        /// <param name="node">The node of the source.</param>
        /// <param name="index">The node's absolute index/position in the DOM tree</param>
        /// <param name="parentsPath">The path to the parent node in the DOM tree.</param>
        /// <param name="sourceType">The source type.</param>
        public ComparisonSource(INode node, int index, string parentsPath, ComparisonSourceType sourceType)
        {
            if (node is null)
            {
                throw new ArgumentNullException(nameof(node));
            }

            var pathSegment = GetNodePathSegment(node);

            Node  = node;
            Index = index;
            Path  = string.IsNullOrEmpty(parentsPath)
                ? pathSegment
                : CombinePath(parentsPath, pathSegment);

            SourceType = sourceType;
            _hashCode  = (Node, Index, Path, SourceType).GetHashCode();
        }
Esempio n. 4
0
        protected SourceMap ToSourceMap(string html, ComparisonSourceType sourceType = ComparisonSourceType.Control)
        {
            var source = ToComparisonSource(html, sourceType);

            return(new SourceMap(source));
        }
Esempio n. 5
0
        protected SourceCollection ToSourceCollection(string html, ComparisonSourceType sourceType = ComparisonSourceType.Control)
        {
            var sources = ToComparisonSourceList(html);

            return(new SourceCollection(sourceType, sources));
        }
Esempio n. 6
0
        protected AttributeComparisonSource ToAttributeComparisonSource(string html, string attrName, ComparisonSourceType sourceType = ComparisonSourceType.Control)
        {
            var elementSource = ToComparisonSource(html, sourceType);

            return(new AttributeComparisonSource(attrName, elementSource));
        }
Esempio n. 7
0
 protected ComparisonSource ToComparisonSource(string html, ComparisonSourceType sourceType = ComparisonSourceType.Control)
 {
     return(ToNode(html).ToComparisonSource(0, sourceType));
 }
Esempio n. 8
0
 /// <summary>
 /// Creates a <see cref="ComparisonSource"/>.
 /// </summary>
 /// <param name="node">The node of the source.</param>
 /// <param name="sourceType">The source type.</param>
 public ComparisonSource(INode node, ComparisonSourceType sourceType)
     : this(node, GetNodeIndex(node), CalculateParentPath(node), sourceType)
 {
 }
Esempio n. 9
0
 /// <summary>
 /// Creates a comparison source from a node.
 /// </summary>
 public static ComparisonSource ToComparisonSource(this INode node, int index, ComparisonSourceType sourceType, string path = "")
 => new ComparisonSource(node, index, path, sourceType);
Esempio n. 10
0
        /// <summary>
        /// Creates a comparison source list from a node list.
        /// </summary>
        public static IEnumerable <ComparisonSource> ToComparisonSourceList(this IEnumerable <INode> nodes, ComparisonSourceType sourceType, string path = "")
        {
            if (nodes is null)
            {
                throw new ArgumentNullException(nameof(nodes));
            }

            var index = 0;

            foreach (var node in nodes)
            {
                yield return(node.ToComparisonSource(index, sourceType, path));

                index += 1;
            }
            yield break;
        }
Esempio n. 11
0
 /// <summary>
 /// Creates a source collection from a node list.
 /// </summary>
 public static SourceCollection ToSourceCollection(this IEnumerable <INode> nodelist, ComparisonSourceType sourceType, string path = "")
 {
     return(new SourceCollection(sourceType, nodelist.ToComparisonSourceList(sourceType, path)));
 }
        public void Test0(ComparisonSourceType sourceType)
        {
            var sut = new SourceCollection(sourceType, Array.Empty <ComparisonSource>());

            sut.SourceType.ShouldBe(sourceType);
        }
Esempio n. 13
0
 /// <summary>
 /// Creates a new <see cref="SourceCollection"/>.
 /// </summary>
 public SourceCollection(ComparisonSourceType sourceType, IEnumerable <ComparisonSource> sources) : this(sourceType, sources.ToArray())
 {
 }