public void SameObjectRepeatedInArray() { object o = new object(); object[] arr = new[] { o, o, o, o, o }; object[] result = BinaryFormatterHelpers.Clone(arr); Assert.Equal(arr.Length, result.Length); Assert.NotSame(arr, result); Assert.NotSame(arr[0], result[0]); for (int i = 1; i < result.Length; i++) { Assert.Same(result[0], result[i]); } }
public void RegexExceptionSerializable() { try { #pragma warning disable RE0001 // Regex issue: {0} new Regex("*"); // parsing "*" - Quantifier {x,y} following nothing. #pragma warning restore RE0001 // Regex issue: {0} } catch (ArgumentException ex) { Assert.Equal(ex.GetType().Name, "RegexParseException"); ArgumentException clone = BinaryFormatterHelpers.Clone(ex); Assert.IsType <ArgumentException>(clone); } }
public void SerializeNonSerializableTypeWithSurrogate() { var p = new NonSerializablePair <int, string>() { Value1 = 1, Value2 = "2" }; Assert.False(p.GetType().IsSerializable); Assert.Throws <SerializationException>(() => BinaryFormatterHelpers.Clone(p)); NonSerializablePair <int, string> result = BinaryFormatterHelpers.Clone(p, new NonSerializablePairSurrogate()); Assert.NotSame(p, result); Assert.Equal(p.Value1, result.Value1); Assert.Equal(p.Value2, result.Value2); }
public void Roundtrip_ArrayContainingArrayAtNonZeroLowerBound() { BinaryFormatterHelpers.Clone(Array.CreateInstance(typeof(uint[]), new[] { 5 }, new[] { 1 })); }