Example #1
0
        /// <summary>
        /// Instantiates a new <see cref="TagHelperContext"/>.
        /// </summary>
        /// <param name="allAttributes">Every attribute associated with the current HTML element.</param>
        /// <param name="items">Collection of items used to communicate with other <see cref="ITagHelper"/>s.</param>
        /// <param name="uniqueId">The unique identifier for the source element this <see cref="TagHelperContext" />
        /// applies to.</param>
        public TagHelperContext(
            IEnumerable <IReadOnlyTagHelperAttribute> allAttributes,
            IDictionary <object, object> items,
            string uniqueId)
        {
            if (allAttributes == null)
            {
                throw new ArgumentNullException(nameof(allAttributes));
            }

            if (items == null)
            {
                throw new ArgumentNullException(nameof(items));
            }

            if (uniqueId == null)
            {
                throw new ArgumentNullException(nameof(uniqueId));
            }

            AllAttributes = new ReadOnlyTagHelperAttributeList <IReadOnlyTagHelperAttribute>(
                allAttributes.Select(attribute => new TagHelperAttribute(attribute.Name, attribute.Value)));
            Items    = items;
            UniqueId = uniqueId;
        }
Example #2
0
        public void IntIndexer_ThrowsIfInvalidIndex(int index)
        {
            // Arrange
            var attributes = new ReadOnlyTagHelperAttributeList <IReadOnlyTagHelperAttribute>(
                new[]
            {
                new TagHelperAttribute("a", "av"),
                new TagHelperAttribute("b", "bv")
            });

            // Act & Assert
            var exception = Assert.Throws <ArgumentOutOfRangeException>("index", () => attributes[index]);
        }
Example #3
0
        public void IndexOf_ReturnsExpectedResult(
            IEnumerable <IReadOnlyTagHelperAttribute> initialAttributes,
            IReadOnlyTagHelperAttribute attributeToLookup,
            int expected)
        {
            // Arrange
            var attributes = new ReadOnlyTagHelperAttributeList <IReadOnlyTagHelperAttribute>(initialAttributes);

            // Act
            var index = attributes.IndexOf(attributeToLookup);

            // Assert
            Assert.Equal(expected, index);
        }
Example #4
0
        public void IntIndexer_ReturnsExpectedAttribute(
            IEnumerable <IReadOnlyTagHelperAttribute> initialAttributes,
            int indexToLookup,
            IReadOnlyTagHelperAttribute expectedAttribute)
        {
            // Arrange
            var attributes = new ReadOnlyTagHelperAttributeList <IReadOnlyTagHelperAttribute>(initialAttributes);

            // Act
            var attribute = attributes[indexToLookup];

            // Assert
            Assert.Equal(expectedAttribute, attribute, CaseSensitiveTagHelperAttributeComparer.Default);
        }
Example #5
0
        public void ContainsName_ReturnsExpectedResult(
            IEnumerable <IReadOnlyTagHelperAttribute> initialAttributes,
            string nameToLookup,
            bool expected)
        {
            // Arrange
            var attributes = new ReadOnlyTagHelperAttributeList <IReadOnlyTagHelperAttribute>(initialAttributes);

            // Act
            var contains = attributes.ContainsName(nameToLookup);

            // Assert
            Assert.Equal(expected, contains);
        }
Example #6
0
        public void TryGetAttributes_ReturnsExpectedValueAndAttribute(
            IEnumerable <IReadOnlyTagHelperAttribute> initialAttributes,
            string nameToLookup,
            IEnumerable <IReadOnlyTagHelperAttribute> expectedAttributes,
            bool expectedResult)
        {
            // Arrange
            var attributes = new ReadOnlyTagHelperAttributeList <IReadOnlyTagHelperAttribute>(initialAttributes);
            IEnumerable <IReadOnlyTagHelperAttribute> resolvedAttributes;

            // Act
            var result = attributes.TryGetAttributes(nameToLookup, out resolvedAttributes);

            // Assert
            Assert.Equal(expectedResult, result);
            Assert.Equal(expectedAttributes, resolvedAttributes, CaseSensitiveTagHelperAttributeComparer.Default);
        }
Example #7
0
        public void Count_ReturnsNumberOfAttributes()
        {
            // Arrange
            var attributes = new ReadOnlyTagHelperAttributeList <IReadOnlyTagHelperAttribute>(
                new[]
            {
                new TagHelperAttribute(),
                new TagHelperAttribute(),
                new TagHelperAttribute()
            });

            // Act
            var count = attributes.Count;

            // Assert
            Assert.Equal(3, count);
        }