/// <summary> /// Helps test 2D arrays. /// </summary> /// <typeparam name="T">Type of the underlying value stored in the array.</typeparam> /// <param name="values">The values.</param> /// <param name="nullable">If set to <c>true</c> [nullable].</param> public static void Array2DHelper <T>(List <List <T> > values, bool nullable) { System.IO.Stream stream = new SerializedStreamBuilder() .Array <T>(values, nullable) .ToStream(); BinaryReader reader = new BinaryReader(stream, DeserializationHelper.CannedVersion); string methodName = DeserializationHelper.GetReaderMethodName(typeof(T)); MethodInfo methodInfo = GetReaderMethodInfoFromName <T>(methodName, reader); List <List <T> > actual = (List <List <T> >)methodInfo.Invoke(reader, new object[] { string.Empty, nullable, 2U }); Assert.IsNotNull(actual); using (IEnumerator <List <T> > valuesEnumerator = values.GetEnumerator()) { using (IEnumerator <List <T> > actualEnumerator = actual.GetEnumerator()) { Assert.AreEqual <int>(values.Count, actual.Count); while (valuesEnumerator.MoveNext() && actualEnumerator.MoveNext()) { TestHelper.AssertCollectionEquals <T>(valuesEnumerator.Current, actualEnumerator.Current); } } } }
/// <summary> /// Helps test empty arrays. /// </summary> /// <typeparam name="T">Type of the underlying value stored in the array.</typeparam> /// <param name="nullable">If set to <c>true</c> [nullable].</param> public static void EmptyArrayHelper <T>(bool nullable) { SerializedStreamBuilder builder = new SerializedStreamBuilder(); if (nullable) { builder.NullableFlag(false); } System.IO.Stream stream = builder .Size(0) .ToStream(); BinaryReader reader = new BinaryReader(stream, DeserializationHelper.CannedVersion); for (uint rank = 1; rank <= 4; rank++) { string methodName = DeserializationHelper.GetReaderMethodName(typeof(T)); MethodInfo methodInfo = GetReaderMethodInfoFromName <T>(methodName, reader); ICollection obj = (ICollection)methodInfo.Invoke(reader, new object[] { string.Empty, nullable, rank }); Assert.AreEqual <int>(obj.Count, 0); stream.Seek(0L, System.IO.SeekOrigin.Begin); } }
/// <summary> /// Helps test 1D arrays. /// </summary> /// <typeparam name="T">Type of the underlying value stored in the array.</typeparam> /// <param name="values">The values.</param> /// <param name="nullable">If set to <c>true</c> [nullable].</param> public static void Array1DHelper <T>(List <T> values, bool nullable) { System.IO.Stream stream = new SerializedStreamBuilder() .Array <T>(values, nullable) .ToStream(); BinaryReader reader = new BinaryReader(stream, DeserializationHelper.CannedVersion); string methodName = DeserializationHelper.GetReaderMethodName(typeof(T)); MethodInfo methodInfo = GetReaderMethodInfoFromName <T>(methodName, reader); List <T> actual = (List <T>)methodInfo.Invoke(reader, new object[] { string.Empty, nullable, 1U }); if (values != null) { Assert.IsNotNull(actual); } else { Assert.IsNull(actual); } TestHelper.AssertCollectionEquals <T>(values, actual); }