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)); }
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); } }