public void CreateInstance_IsNotEmpty_WhenStringNotEmpty()
        {
            // Arrange
            var stringDetails = new MarkupExtensionTokenDetails(".", true);

            // Act
            var target = new MarkupExtensionArgumentInfo(null, null, ".", stringDetails);

            // Assert
            Assert.IsFalse(target.IsEmpty);
        }
        public void CreateInstance_IsNotNested_WhenStringIsString()
        {
            // Arrange
            var stringDetails = new MarkupExtensionTokenDetails(string.Empty, true);

            // Act
            var target = new MarkupExtensionArgumentInfo(null, null, string.Empty, stringDetails);

            // Assert
            Assert.IsFalse(target.IsNested);
        }
        public void CreateInstance_IsEmpty_WhenEmpty()
        {
            // Arrange
            var stringDetails = new MarkupExtensionTokenDetails(string.Empty, false);

            // Act
            var target = new MarkupExtensionArgumentInfo(null, null, string.Empty, stringDetails);

            // Assert
            Assert.IsTrue(target.IsEmpty);
        }
        public void CreateInstance_MemberNameParameterNull_Positional()
        {
            // Arrange
            var stringDetails = new MarkupExtensionTokenDetails("B", false);

            // Act
            var target = new MarkupExtensionArgumentInfo(null, null, "String", stringDetails);

            // Assert
            Assert.AreEqual(MarkupExtensionArgumentType.Positional, target.ArgumentType);
        }
        public void CreateInstance_MemberNameDetailsParameter_CanBeNull()
        {
            // Arrange
            var stringDetails = new MarkupExtensionTokenDetails("B", false);

            // Act
            var target = new MarkupExtensionArgumentInfo("Member", null, "String", stringDetails);

            // Assert
            Assert.IsNull(target.MemberNameDetails);
        }
        public void CreateInstance_IsNotEmpty_Nested()
        {
            // Arrange
            var stringDetails = new MarkupExtensionTokenDetails("{A}", true);

            // Act
            var target = new MarkupExtensionArgumentInfo(
                null, null, new MarkupExtensionInfo("A", new IMarkupExtensionArgumentInfo[0]), stringDetails);

            // Assert
            Assert.IsFalse(target.IsEmpty);
        }
        public void CreateInstance_IsNotEmpty_WhenNamed()
        {
            // Arrange
            var memberNameDetails = new MarkupExtensionTokenDetails(".", true);
            var stringDetails     = new MarkupExtensionTokenDetails(string.Empty, true);

            // Act
            var target = new MarkupExtensionArgumentInfo("Member", memberNameDetails, string.Empty, stringDetails);

            // Assert
            Assert.IsFalse(target.IsEmpty);
        }
        public void CreateInstance_MemberNameParameterNotNull_Named()
        {
            // Arrange
            var memberNameDetails = new MarkupExtensionTokenDetails("A", false);
            var stringDetails     = new MarkupExtensionTokenDetails("B", false);

            // Act
            var target = new MarkupExtensionArgumentInfo("Member", memberNameDetails, "String", stringDetails);

            // Assert
            Assert.AreEqual(MarkupExtensionArgumentType.Named, target.ArgumentType);
        }
        public void CreateInstance_IsNotNested_WhenStringIsMarkupExtension()
        {
            // Arrange
            var stringDetails = new MarkupExtensionTokenDetails("{A}", true);

            // Act
            var target = new MarkupExtensionArgumentInfo(
                null, null, new MarkupExtensionInfo("A", new IMarkupExtensionArgumentInfo[0]), stringDetails);

            // Assert
            Assert.IsTrue(target.IsNested);
        }
示例#10
0
        /// <summary>
        /// Adds a named argument to the current level.
        /// </summary>
        /// <param name="memberName">
        /// The member name of the argument.
        /// </param>
        /// <param name="string">
        /// The string value of the argument.
        /// </param>
        /// <param name="isQuoted">
        /// A value indicating whether the string is quoted.
        /// </param>
        /// <returns>
        /// An object that allows further configuration of the markup extension.
        /// </returns>
        public MarkupExensionInfoBuilder AddArgument(string memberName, object @string, bool isQuoted)
        {
            var argument = new MarkupExtensionArgumentInfo(
                memberName,
                new MarkupExtensionTokenDetails(string.Empty, false),
                @string,
                new MarkupExtensionTokenDetails(string.Empty, isQuoted));

            this.trail.Peek().Item2.Add(argument);

            return(this);
        }
        public void GetHashCode_ToSame_Equal()
        {
            // Arrange
            var stringDetails = new MarkupExtensionTokenDetails(string.Empty, true);
            var @this         = new MarkupExtensionArgumentInfo(null, null, string.Empty, stringDetails);

            // Act
            var hash1 = @this.GetHashCode();
            var hash2 = @this.GetHashCode();

            // Assert
            Assert.AreEqual(hash1, hash2);
        }
        public void CreateInstance_Parameters_AreAssignedToProperties()
        {
            // Arrange
            var memberNameDetails = new MarkupExtensionTokenDetails("A", false);
            var stringDetails     = new MarkupExtensionTokenDetails("B", false);

            // Act
            var target = new MarkupExtensionArgumentInfo("Member", memberNameDetails, "String", stringDetails);

            // Assert
            Assert.AreEqual("Member", target.MemberNameValue);
            Assert.AreEqual(memberNameDetails, target.MemberNameDetails);
            Assert.AreEqual("String", target.StringValue);
            Assert.AreEqual(stringDetails, target.StringDetails);
        }
        public void GetHashCode_ToIdenticalDifferentStringDetails_Equal()
        {
            // Arrange
            var stringDetails1 = new MarkupExtensionTokenDetails(string.Empty, true);
            var stringDetails2 = new MarkupExtensionTokenDetails(string.Empty, true);
            var @this          = new MarkupExtensionArgumentInfo(null, null, string.Empty, stringDetails1);
            var other          = new MarkupExtensionArgumentInfo(null, null, string.Empty, stringDetails2);

            // Act
            var hash1 = @this.GetHashCode();
            var hash2 = other.GetHashCode();

            // Assert
            Assert.AreEqual(hash1, hash2);
        }
        public void Equals_ToSame_Equal()
        {
            // Arrange
            var stringDetails = new MarkupExtensionTokenDetails(string.Empty, true);
            var @this         = new MarkupExtensionArgumentInfo(null, null, string.Empty, stringDetails);

            // Act
// ReSharper disable EqualExpressionComparison
            var equal = @this.Equals(@this);

// ReSharper restore EqualExpressionComparison

            // Assert
            Assert.IsTrue(equal);
        }
        public void GetHashCode_DifferentQuotedString_Unequal()
        {
            // Arrange
            var stringDetails1     = new MarkupExtensionTokenDetails("String", true);
            var stringDetails2     = new MarkupExtensionTokenDetails("String", false);
            var memberNameDetails1 = new MarkupExtensionTokenDetails("Member", false);
            var memberNameDetails2 = new MarkupExtensionTokenDetails("Member", false);
            var @this = new MarkupExtensionArgumentInfo("Member", memberNameDetails1, "String", stringDetails1);
            var other = new MarkupExtensionArgumentInfo("Member", memberNameDetails2, "String", stringDetails2);

            // Act
            var hash1 = @this.GetHashCode();
            var hash2 = other.GetHashCode();

            // Assert
            Assert.AreNotEqual(hash1, hash2);
        }
        public void GetHashCode_ToIdenticalWithMemberName_Equal()
        {
            // Arrange
            var stringDetails1     = new MarkupExtensionTokenDetails("String", false);
            var stringDetails2     = new MarkupExtensionTokenDetails("String", false);
            var memberNameDetails1 = new MarkupExtensionTokenDetails("Member", false);
            var memberNameDetails2 = new MarkupExtensionTokenDetails("Member", false);
            var @this = new MarkupExtensionArgumentInfo("Member", memberNameDetails1, "String", stringDetails1);
            var other = new MarkupExtensionArgumentInfo("Member", memberNameDetails2, "String", stringDetails2);

            // Act
            var hash1 = @this.GetHashCode();
            var hash2 = other.GetHashCode();

            // Assert
            Assert.AreEqual(hash1, hash2);
        }
        public void Equals_ToIdenticalDifferentStringDetails_Equal()
        {
            // Arrange
            var stringDetails1 = new MarkupExtensionTokenDetails(string.Empty, true);
            var stringDetails2 = new MarkupExtensionTokenDetails(string.Empty, true);
            var @this          = new MarkupExtensionArgumentInfo(null, null, string.Empty, stringDetails1);
            var other          = new MarkupExtensionArgumentInfo(null, null, string.Empty, stringDetails2);

            // Act
            // ReSharper disable EqualExpressionComparison
            var equal = @this.Equals(other);

            // ReSharper restore EqualExpressionComparison

            // Assert
            Assert.IsTrue(equal);
        }
        public void Equals_DifferentQuotedString_Unequal()
        {
            // Arrange
            var stringDetails1     = new MarkupExtensionTokenDetails("String", true);
            var stringDetails2     = new MarkupExtensionTokenDetails("String", false);
            var memberNameDetails1 = new MarkupExtensionTokenDetails("Member", false);
            var memberNameDetails2 = new MarkupExtensionTokenDetails("Member", false);
            var @this = new MarkupExtensionArgumentInfo("Member", memberNameDetails1, "String", stringDetails1);
            var other = new MarkupExtensionArgumentInfo("Member", memberNameDetails2, "String", stringDetails2);

            // Act
            // ReSharper disable EqualExpressionComparison
            var equal = @this.Equals(other);

            // ReSharper restore EqualExpressionComparison

            // Assert
            Assert.IsFalse(equal);
        }