public void Insert_ThrowsWhenIndexIsOutOfRange()
    {
        // Arrange
        var attributes = new TagHelperAttributeList(
            new[]
        {
            new TagHelperAttribute("a", "av"),
            new TagHelperAttribute("b", "bv"),
        });

        // Act & Assert
        var exception = Assert.Throws <ArgumentOutOfRangeException>("index",
                                                                    () => attributes.Insert(3, new TagHelperAttribute("c", "cb")));
    }
    public void Insert_InsertsAttributes(
        IEnumerable <TagHelperAttribute> initialAttributes,
        TagHelperAttribute attributeToAdd,
        int locationToInsert,
        IEnumerable <TagHelperAttribute> expectedAttributes)
    {
        // Arrange
        var attributes = new TagHelperAttributeList(initialAttributes);

        // Act
        attributes.Insert(locationToInsert, attributeToAdd);

        // Assert
        Assert.Equal(expectedAttributes, attributes, CaseSensitiveTagHelperAttributeComparer.Default);
    }
        public void Insert_ThrowsWhenNameIsNull()
        {
            // Arrange
            var attributes = new TagHelperAttributeList();
            var expectedMessage = $"Cannot add a '{typeof(TagHelperAttribute).FullName}' with a null " +
                $"'{nameof(TagHelperAttribute.Name)}'.{Environment.NewLine}Parameter name: attribute";

            // Act & Assert
            var exception = Assert.Throws<ArgumentException>("attribute",
                () => attributes.Insert(0, new TagHelperAttribute
                {
                    Value = "Anything"
                }));
            Assert.Equal(expectedMessage, exception.Message);
        }
        public void Insert_ThrowsWhenIndexIsOutOfRange()
        {
            // Arrange
            var attributes = new TagHelperAttributeList(
                new[]
                {
                    new TagHelperAttribute("a", "av"),
                    new TagHelperAttribute("b", "bv"),
                });

            // Act & Assert
            var exception = Assert.Throws<ArgumentOutOfRangeException>("index",
                () => attributes.Insert(3, new TagHelperAttribute("c", "cb")));
        }
        public void Insert_InsertsAttributes(
            IEnumerable<TagHelperAttribute> initialAttributes,
            TagHelperAttribute attributeToAdd,
            int locationToInsert,
            IEnumerable<TagHelperAttribute> expectedAttributes)
        {
            // Arrange
            var attributes = new TagHelperAttributeList(initialAttributes);

            // Act
            attributes.Insert(locationToInsert, attributeToAdd);

            // Assert
            Assert.Equal(expectedAttributes, attributes, CaseSensitiveTagHelperAttributeComparer.Default);
        }