public void CloneClassWithCollectionReferenceViaInterface() { var source = new ClassWithCollectionViaInterface <string>(); var clone = source.Clone(); Assert.IsNull(clone.Collection); source.Collection = new string[] { "Hello", "World!" }; clone = source.Clone(); Assert.AreEqual(clone.Collection.GetType(), typeof(string[])); Assert.IsTrue(clone.Collection.SequenceEqual(new [] { "Hello", "World!" })); source.Collection = new Collection <string> { "Hello", "World!" }; clone = source.Clone(); Assert.AreEqual(clone.Collection.GetType(), typeof(Collection <string>)); Assert.IsTrue(clone.Collection.SequenceEqual(new[] { "Hello", "World!" })); source.Collection = new List <string> { "Hello", "World!" }; clone = source.Clone(); Assert.AreEqual(clone.Collection.GetType(), typeof(List <string>)); Assert.IsTrue(clone.Collection.SequenceEqual(new[] { "Hello", "World!" })); }
public void CloneClassWithCollectionReferenceViaInterface() { var source = new ClassWithCollectionViaInterface<string>(); var clone = source.Clone(); Assert.IsNull(clone.Collection); source.Collection = new string[] {"Hello", "World!"}; clone = source.Clone(); Assert.AreEqual(clone.Collection.GetType(), typeof(string[])); Assert.IsTrue(clone.Collection.SequenceEqual(new []{"Hello", "World!"})); source.Collection = new Collection<string> { "Hello", "World!" }; clone = source.Clone(); Assert.AreEqual(clone.Collection.GetType(), typeof(Collection<string>)); Assert.IsTrue(clone.Collection.SequenceEqual(new[] { "Hello", "World!" })); source.Collection = new List<string> { "Hello", "World!" }; clone = source.Clone(); Assert.AreEqual(clone.Collection.GetType(), typeof(List<string>)); Assert.IsTrue(clone.Collection.SequenceEqual(new[] { "Hello", "World!" })); }