Example #1
0
        public void TestNegativeCases()
        {
            TagList list = new TagList {
                new KeyValuePair <string, object?>("1", 1), new KeyValuePair <string, object?>("2", 2)
            };
            KeyValuePair <string, object?> kvp = default;

            Assert.Throws <ArgumentOutOfRangeException>(() => kvp      = list[2]);
            Assert.Throws <ArgumentOutOfRangeException>(() => list[2]  = kvp);
            Assert.Throws <ArgumentOutOfRangeException>(() => kvp      = list[-1]);
            Assert.Throws <ArgumentOutOfRangeException>(() => list[-2] = kvp);

            KeyValuePair <string, object?>[] array = new KeyValuePair <string, object?> [1];
            Assert.Throws <ArgumentException>(() => list.CopyTo(array.AsSpan()));
            Assert.Throws <ArgumentException>(() => list.CopyTo(array, 0));
            Assert.Throws <ArgumentOutOfRangeException>(() => list.CopyTo(array, 1));
            Assert.Throws <ArgumentOutOfRangeException>(() => list.CopyTo(array, -1));
            Assert.Throws <ArgumentNullException>(() => list.CopyTo(null, 0));

            Assert.Throws <ArgumentOutOfRangeException>(() => list.Insert(-1, default));
            Assert.Throws <ArgumentOutOfRangeException>(() => list.Insert(3, default));

            Assert.Throws <ArgumentOutOfRangeException>(() => list.RemoveAt(-1));
            Assert.Throws <ArgumentOutOfRangeException>(() => list.RemoveAt(2));
        }