public void ReopenTest() { const string arrayName = "ReopenLLTest"; const int elementSize = 7; const int userHeaderSize = 33; ILinkedList ll = InitPLL(arrayName, elementSize, userHeaderSize); try { byte[] firstBytes = new byte[] { 1, 1, 1, 1, 1, 1, 1, }; byte[] secondBytes = new byte[] { 2, 2, 2, 2, 2, 2, 2, }; byte[] thirdBytes = new byte[] { 3, 3, 3, 3, 3 ,3,3}; byte[] fourthBytes = new byte[] { 4, 4, 4, 4, 4, 4, 4 }; ll.AddToEnd(firstBytes); ll.AddToEnd(secondBytes); ll.AddToEnd(thirdBytes); ll.AddToEnd(fourthBytes); Assert.AreEqual(4, ll.Length()); ll.Close(); ll = new PersistentLinkedList(arrayName); Assert.AreEqual(4, ll.Length()); Assert.AreEqual(elementSize, ll.GetElementSize()); Assert.AreEqual(userHeaderSize, ll.GetUserHeaderSize()); int first = ll.GetFirst(); TestHelper.AssertByteArraysAreSame(firstBytes, ll.GetData(first)); int second = ll.GetNext(first); TestHelper.AssertByteArraysAreSame(secondBytes, ll.GetData(second)); int third = ll.GetNext(second); TestHelper.AssertByteArraysAreSame(thirdBytes, ll.GetData(third)); int fourth = ll.GetNext(third); TestHelper.AssertByteArraysAreSame(fourthBytes, ll.GetData(fourth)); } finally { ll.Close(); } }
private PersistentLinkedList InitPLL(string arrayName, int elementSize, int userHeaderSize) { PersistentLinkedList pll; try { pll = new PersistentLinkedList(arrayName, elementSize, userHeaderSize); } catch (FileNameConflictException) { pll = new PersistentLinkedList(arrayName); pll.Delete(); pll = new PersistentLinkedList(arrayName, elementSize, userHeaderSize); } return pll; }
public void DeleteTest() { string llName = "LLDelete"; ILinkedList ll = InitPLL(llName, 16, 8); try { ll.Delete(); ll = new PersistentLinkedList(llName, 16, 16); } finally { ll.Delete(); } }