public void Appending() { var page = new SpoolPage(); page.Append("hello"); Assert.IsNull(page.Next); Assert.AreEqual(1, page.Count); Assert.AreEqual("hello", page.Buffer[0]); }
public void AppendMultiple() { var page = new SpoolPage(); page.Append("hello"); page.Append("world"); Assert.IsNull(page.Next); Assert.AreEqual(2, page.Count); Assert.AreEqual("hello", page.Buffer[0]); Assert.AreEqual("world", page.Buffer[1]); }
public void AppendOverBoundary() { var page = new SpoolPage(); var last = page; for (int index = 0; index != SpoolPage.BUFFER_SIZE + 30; ++index) { last = last.Append(index.ToString()); } Assert.AreNotSame(page, last); Assert.AreEqual(SpoolPage.BUFFER_SIZE, page.Count); Assert.AreEqual(30, last.Count); Assert.AreEqual(SpoolPage.BUFFER_SIZE.ToString(), last.Buffer[0]); }
public void CallsReleaseOnNextOnlyIfIsNotReleasedAlready() { var first = new SpoolPage(); var next = first; for (int index = 0; index != SpoolPage.BUFFER_SIZE + 30; ++index) { next = next.Append(index.ToString()); } next.Release(); var second = new SpoolPage(); second.Append("1"); second.Append("2"); second.Append("3"); first.Release(); Assert.AreEqual(3, second.Count); Assert.AreEqual("1", second.Buffer[0]); Assert.AreEqual("2", second.Buffer[1]); Assert.AreEqual("3", second.Buffer[2]); }