public static void CopyExceptions()
        {
            AsnEncodedData a0 = new AsnEncodedData("1.0", Array.Empty <byte>());
            AsnEncodedData a1 = new AsnEncodedData("1.1", Array.Empty <byte>());
            AsnEncodedData a2 = new AsnEncodedData("1.2", Array.Empty <byte>());

            AsnEncodedDataCollection c = new AsnEncodedDataCollection();

            c.Add(a0);
            c.Add(a1);
            c.Add(a2);

            Assert.Throws <ArgumentNullException>(() => c.CopyTo(null, 0));
            AsnEncodedData[] a = new AsnEncodedData[3];
            Assert.Throws <ArgumentOutOfRangeException>(() => c.CopyTo(a, -1));
            Assert.Throws <ArgumentOutOfRangeException>(() => c.CopyTo(a, 3));
            Assert.Throws <ArgumentException>(() => c.CopyTo(a, 1));

            // Array has non-zero lower bound
            ICollection ic    = c;
            Array       array = Array.CreateInstance(typeof(object), new int[] { 10 }, new int[] { 10 });

            Assert.Throws <IndexOutOfRangeException>(() => ic.CopyTo(array, 0));
        }
	static Oid badOid = new Oid( "1.3.14.3.2.27" ) ; //bogus OID
	static void TestCopyTo()
		{
		asn = GetCollection( new AsnEncodedData( oid , new byte[]{1,2,3} ) ); 
		AsnEncodedData[] array = new AsnEncodedData[asn.Count] ; 

		//straight up copy
		asn.CopyTo( array , 0 ) ; 
		Result = array[0] != null ; 

		//ary is null
		try
			{
			asn.CopyTo( null , 0 ) ;
			Result = false ; 
			}
		catch(ArgumentNullException)
			{
			Result = true ; 
			}
		catch(Exception e)
			{
			Result = false ; 
			Console.WriteLine(e) ;
			}

		//index is too big/small
		try
			{
			asn.CopyTo( array , -1 ) ;
			Result = false ; 
			}
		catch(ArgumentOutOfRangeException)
			{
			Result = true ; 
			}
		catch(Exception e)
			{
			Result = false ; 
			Console.WriteLine(e) ;
			}

		try
			{
			asn.CopyTo( array , 10 ) ;
			Result = false ; 
			}
		catch(ArgumentOutOfRangeException)
			{
			Result = true ; 
			}
		catch(Exception e)
			{
			Result = false ; 
			Console.WriteLine(e) ;
			}

		//count + length mistmatch
		try
			{
			asn.CopyTo( array , 1 ) ;
			Result = false ; 
			}
		catch(ArgumentException)
			{
			Result = true ; 
			}
		catch(Exception e)
			{
			Result = false ; 
			Console.WriteLine(e) ;
			}

		}
        private static void AssertEquals(AsnEncodedDataCollection c, IList<AsnEncodedData> expected)
        {
            Assert.Equal(expected.Count, c.Count);

            for (int i = 0; i < c.Count; i++)
            {
                Assert.Equal(expected[i], c[i]);
            }

            int index = 0;
            foreach (AsnEncodedData a in c)
            {
                Assert.Equal(expected[index++], a);
            }
            Assert.Equal(c.Count, index);

            ValidateEnumerator(c.GetEnumerator(), expected);
            ValidateEnumerator(((ICollection)c).GetEnumerator(), expected);

            AsnEncodedData[] dumped = new AsnEncodedData[c.Count + 3];
            c.CopyTo(dumped, 2);
            Assert.Equal(null, dumped[0]);
            Assert.Equal(null, dumped[1]);
            Assert.Equal(null, dumped[dumped.Length - 1]);
            Assert.Equal<AsnEncodedData>(expected, dumped.Skip(2).Take(c.Count));
        }
        public static void CopyExceptions()
        {
            AsnEncodedData a0 = new AsnEncodedData("1.0", Array.Empty<byte>());
            AsnEncodedData a1 = new AsnEncodedData("1.1", Array.Empty<byte>());
            AsnEncodedData a2 = new AsnEncodedData("1.2", Array.Empty<byte>());

            AsnEncodedDataCollection c = new AsnEncodedDataCollection();
            c.Add(a0);
            c.Add(a1);
            c.Add(a2);

            Assert.Throws<ArgumentNullException>(() => c.CopyTo(null, 0));
            AsnEncodedData[] a = new AsnEncodedData[3];
            Assert.Throws<ArgumentOutOfRangeException>(() => c.CopyTo(a, -1));
            Assert.Throws<ArgumentOutOfRangeException>(() => c.CopyTo(a, 3));
            Assert.Throws<ArgumentException>(() => c.CopyTo(a, 1));
        }
        public static void CopyExceptions()
        {
            AsnEncodedData a0 = new AsnEncodedData("1.0", Array.Empty<byte>());
            AsnEncodedData a1 = new AsnEncodedData("1.1", Array.Empty<byte>());
            AsnEncodedData a2 = new AsnEncodedData("1.2", Array.Empty<byte>());

            AsnEncodedDataCollection c = new AsnEncodedDataCollection();
            c.Add(a0);
            c.Add(a1);
            c.Add(a2);

            Assert.Throws<ArgumentNullException>(() => c.CopyTo(null, 0));
            AsnEncodedData[] a = new AsnEncodedData[3];
            Assert.Throws<ArgumentOutOfRangeException>(() => c.CopyTo(a, -1));
            Assert.Throws<ArgumentOutOfRangeException>(() => c.CopyTo(a, 3));
            Assert.Throws<ArgumentException>(() => c.CopyTo(a, 1));

            // Array has non-zero lower bound
            ICollection ic = c;
            Array array = Array.CreateInstance(typeof(object), new int[] { 10 }, new int[] { 10 });
            Assert.Throws<IndexOutOfRangeException>(() => ic.CopyTo(array, 0));
        }
Example #6
0
    static Oid badOid = new Oid("1.3.14.3.2.27");     //bogus OID
    static void TestCopyTo()
    {
        asn = GetCollection(new AsnEncodedData(oid, new byte[] { 1, 2, 3 }));
        AsnEncodedData[] array = new AsnEncodedData[asn.Count];

        //straight up copy
        asn.CopyTo(array, 0);
        Result = array[0] != null;

        //ary is null
        try
        {
            asn.CopyTo(null, 0);
            Result = false;
        }
        catch (ArgumentNullException)
        {
            Result = true;
        }
        catch (Exception e)
        {
            Result = false;
            Console.WriteLine(e);
        }

        //index is too big/small
        try
        {
            asn.CopyTo(array, -1);
            Result = false;
        }
        catch (ArgumentOutOfRangeException)
        {
            Result = true;
        }
        catch (Exception e)
        {
            Result = false;
            Console.WriteLine(e);
        }

        try
        {
            asn.CopyTo(array, 10);
            Result = false;
        }
        catch (ArgumentOutOfRangeException)
        {
            Result = true;
        }
        catch (Exception e)
        {
            Result = false;
            Console.WriteLine(e);
        }

        //count + length mistmatch
        try
        {
            asn.CopyTo(array, 1);
            Result = false;
        }
        catch (ArgumentException)
        {
            Result = true;
        }
        catch (Exception e)
        {
            Result = false;
            Console.WriteLine(e);
        }
    }