OpenTween.LRUCacheDictionaryTest.CopyToTest C# (CSharp) Method

CopyToTest() private method

private CopyToTest ( ) : void
return void
        public void CopyToTest()
        {
            var dict = new LRUCacheDictionary<string, string>
            {
                ["key1"] = "value1",
                ["key2"] = "value2",
                ["key3"] = "value3",
            };

            var array = new KeyValuePair<string, string>[5];
            dict.CopyTo(array, 0);
            Assert.Equal(new KeyValuePair<string, string>("key1", "value1"), array[0]);
            Assert.Equal(new KeyValuePair<string, string>("key2", "value2"), array[1]);
            Assert.Equal(new KeyValuePair<string, string>("key3", "value3"), array[2]);
            Assert.Equal(new KeyValuePair<string, string>(), array[3]);
            Assert.Equal(new KeyValuePair<string, string>(), array[4]);

            array = new KeyValuePair<string, string>[5];
            dict.CopyTo(array, 1);
            Assert.Equal(new KeyValuePair<string, string>(), array[0]);
            Assert.Equal(new KeyValuePair<string, string>("key1", "value1"), array[1]);
            Assert.Equal(new KeyValuePair<string, string>("key2", "value2"), array[2]);
            Assert.Equal(new KeyValuePair<string, string>("key3", "value3"), array[3]);
            Assert.Equal(new KeyValuePair<string, string>(), array[4]);

            array = new KeyValuePair<string, string>[5];
            Assert.Throws<ArgumentException>(() => dict.CopyTo(array, 3));
            Assert.Throws<ArgumentException>(() => dict.CopyTo(array, 5));
            Assert.Throws<ArgumentOutOfRangeException>(() => dict.CopyTo(array, -1));
            Assert.Throws<ArgumentNullException>(() => dict.CopyTo(null, 0));
        }