public void MoveNextThrowsInvalidOperationException_AfterListIsChanged() { var list = new RecentCollection <string>(10) { "Neo", "Morpheus", "Trinity", "Agent Smith", "Oracle" }; var enumerator = list.GetEnumerator(); list.Add("Merovingian"); enumerator.MoveNext(); }
public void CanSerializeAndDeserialize() { var list = new RecentCollection <int>(10); list.Add(3); list.Add(2); list.Add(1); var memStream = new MemoryStream(); var binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memStream, list); memStream.Position = 0; var listCopy = (RecentCollection <int>)binaryFormatter.Deserialize(memStream); memStream.Dispose(); Assert.IsNotNull(listCopy); Assert.AreEqual(list.Count, listCopy.Count); Assert.AreEqual(list.Capacity, listCopy.Capacity); var iter1 = list.GetEnumerator(); var iter2 = listCopy.GetEnumerator(); for (;;) { bool hasNext1 = iter1.MoveNext(); bool hasNext2 = iter2.MoveNext(); Assert.AreEqual(hasNext1, hasNext2); if (!hasNext1 && !hasNext2) { break; } Assert.AreEqual(iter1.Current, iter2.Current); } }
public void MoveNextThrowsInvalidOperationException_AfterListIsChanged() { var list = new RecentCollection<string>(10) { "Neo", "Morpheus", "Trinity", "Agent Smith", "Oracle" }; var enumerator = list.GetEnumerator(); list.Add("Merovingian"); enumerator.MoveNext(); }
public void CanSerializeAndDeserialize() { var list = new RecentCollection<int>(10); list.Add(3); list.Add(2); list.Add(1); var memStream = new MemoryStream(); var binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memStream, list); memStream.Position = 0; var listCopy = (RecentCollection<int>)binaryFormatter.Deserialize(memStream); memStream.Dispose(); Assert.IsNotNull(listCopy); Assert.AreEqual(list.Count, listCopy.Count); Assert.AreEqual(list.Capacity, listCopy.Capacity); var iter1 = list.GetEnumerator(); var iter2 = listCopy.GetEnumerator(); for (;;) { bool hasNext1 = iter1.MoveNext(); bool hasNext2 = iter2.MoveNext(); Assert.AreEqual(hasNext1, hasNext2); if (!hasNext1 && !hasNext2) break; Assert.AreEqual(iter1.Current, iter2.Current); } }