예제 #1
0
        public void DifferentNodesAreNotEqualAccordingToTags(
            ISpecimenBuilderNode first,
            ISpecimenBuilderNode second)
        {
            // Arrange
            // Act
            var actual = first.GraphEquals(second, new TaggedNodeComparer());

            // Assert
            Assert.False(actual);
        }
예제 #2
0
        public void SimilarNodesAreEqualAccordingToTags(
            ISpecimenBuilderNode first,
            ISpecimenBuilderNode second)
        {
            // Arrange
            // Act
            var actual = first.GraphEquals(second, new TaggedNodeComparer());

            // Assert
            Assert.True(actual);
        }
예제 #3
0
        public void DifferentNodesAreNotEqualWhenComparerIsOmitted(
            ISpecimenBuilderNode first,
            ISpecimenBuilderNode second)
        {
            // Arrange
            // Act
            var actual = first.GraphEquals(second);

            // Assert
            Assert.False(actual);
        }
예제 #4
0
        public void IdenticalNodesAreEqual(
            ISpecimenBuilderNode first,
            ISpecimenBuilderNode second)
        {
            // Arrange
            // Act
            var actual = first.GraphEquals(second);

            // Assert
            Assert.True(actual);
        }
예제 #5
0
        public void DifferentNodesAreNotEqualAccordingToTags(
            ISpecimenBuilderNode first,
            ISpecimenBuilderNode second)
        {
            // Fixture setup
            // Exercise system
            var actual = first.GraphEquals(second, new TaggedNodeComparer());

            // Verify outcome
            Assert.False(actual);
            // Teardown
        }
예제 #6
0
        public void DifferentNodesAreNotEqualWhenComparerIsOmitted(
            ISpecimenBuilderNode first,
            ISpecimenBuilderNode second)
        {
            // Fixture setup
            // Exercise system
            var actual = first.GraphEquals(second);

            // Verify outcome
            Assert.False(actual);
            // Teardown
        }
예제 #7
0
        public void IdenticalNodesAreEqual(
            ISpecimenBuilderNode first,
            ISpecimenBuilderNode second)
        {
            // Fixture setup
            // Exercise system
            var actual = first.GraphEquals(second);

            // Verify outcome
            Assert.True(actual);
            // Teardown
        }
예제 #8
0
        public void NodesWithDifferentShapesAreNotEqualEvenWhenComparerIsAlwaysTrue(
            ISpecimenBuilderNode first,
            ISpecimenBuilderNode second)
        {
            // Arrange
            var trueComparer = new TrueComparer <ISpecimenBuilder>();
            // Act
            var actual = first.GraphEquals(second, trueComparer);

            // Assert
            Assert.False(actual);
        }
예제 #9
0
        public void NodesWithIdenticalShapesAreEqualWhenComparerIsAlwaysTrue(
            ISpecimenBuilderNode first,
            ISpecimenBuilderNode second)
        {
            // Arrange
            var trueComparer = new TrueComparer <ISpecimenBuilder>();
            // Act
            var actual = first.GraphEquals(second, trueComparer);

            // Assert
            Assert.True(actual);
        }
예제 #10
0
        /// <summary>
        /// Determines whether two <see cref="ISpecimenBuilderNode" />
        /// instances are define the same graph.
        /// </summary>
        /// <param name="first">
        /// An <see cref="ISpecimenBuilderNode" /> to compare against
        /// <paramref name="second" />.
        /// </param>
        /// <param name="second">
        /// An <see cref="ISpecimenBuilderNode" /> to compare against
        /// <paramref name="first" />.
        /// </param>
        /// <returns>
        /// <see langword="true" /> if the two
        /// <see cref="ISpecimenBuilderNode" /> define the same graph;
        /// otherwise, <see langword="false" />.
        /// </returns>
        /// <remarks>
        /// <para>
        /// Two <see cref="ISpecimenBuilderNode" /> instances define the same
        /// graph if they themselves are equal to each other, and all their
        /// child nodes recursively are equal to each other.
        /// </para>
        /// </remarks>
        /// <exception cref="System.ArgumentNullException">first</exception>
        /// <exception cref="System.ArgumentNullException">second</exception>
        /// <seealso cref="GraphEquals(ISpecimenBuilderNode, ISpecimenBuilderNode, IEqualityComparer{ISpecimenBuilder})"/>
        public static bool GraphEquals(this ISpecimenBuilderNode first, ISpecimenBuilderNode second)
        {
            if (first == null)
            {
                throw new ArgumentNullException(nameof(first));
            }
            if (second == null)
            {
                throw new ArgumentNullException(nameof(second));
            }

            return(first.GraphEquals(second, EqualityComparer <ISpecimenBuilder> .Default));
        }
예제 #11
0
        public void NodesWithDifferentShapesAreNotEqualEvenWhenComparerIsAlwaysTrue(
            ISpecimenBuilderNode first,
            ISpecimenBuilderNode second)
        {
            // Fixture setup
            var trueComparer = new TrueComparer <ISpecimenBuilder>();
            // Exercise system
            var actual = first.GraphEquals(second, trueComparer);

            // Verify outcome
            Assert.False(actual);
            // Teardown
        }