@Test public void testClose() throws Exception { BufferedCircularDiskStack test = null; try { test = openBufferedCircularDiskStack(); assertSizeLengthEquals(0, 0, 0, test); CircularDiskQueueAndStackTest.assertSizeLengthEquals(0, 0, 0, test.stack); test.addFirst(input); test.addFirst(input1); test.addFirst(input2); // now memory has 3 elements but disk has 0. assertSizeLengthEquals(3, 18, 30, test); CircularDiskQueueAndStackTest.assertSizeLengthEquals(0, 0, 0, test.stack); // close and re-open test.close(); test = openBufferedCircularDiskStack(); // should have 3 assertSizeLengthEquals(3, 18, 30, test); // all above should be in disk CircularDiskQueueAndStackTest.assertSizeLengthEquals(3, 18, 30, test.stack); } finally { test.close(); } }
@Test public void testReadWrite() throws Exception { try (BufferedCircularDiskStack test = openBufferedCircularDiskStack()) { assertSizeLengthEquals(0, 0, 0, test); CircularDiskQueueAndStackTest.assertSizeLengthEquals(0, 0, 0, test.stack); test.addFirst(input); assertSizeLengthEquals(1, 6, 10, test); CircularDiskQueueAndStackTest.assertSizeLengthEquals(0, 0, 0, test.stack); test.addFirst(input1); assertSizeLengthEquals(2, 12, 20, test); CircularDiskQueueAndStackTest.assertSizeLengthEquals(0, 0, 0, test.stack); test.addFirst(input2); assertSizeLengthEquals(3, 18, 30, test); CircularDiskQueueAndStackTest.assertSizeLengthEquals(0, 0, 0, test.stack); test.addFirst(input3); assertSizeLengthEquals(4, 24, 40, test); CircularDiskQueueAndStackTest.assertSizeLengthEquals(1, 6, 10, test.stack); assertArrayEquals(input, test.stack.peekFirst()); // the oldest one test.addFirst(input4); assertSizeLengthEquals(5, 30, 50, test); CircularDiskQueueAndStackTest.assertSizeLengthEquals(2, 12, 20, test.stack); assertArrayEquals(input1, test.stack.peekFirst()); // 2nd oldest one byte[] result4 = test.removeFirst(); assertSizeLengthEquals(4, 24, 40, test); CircularDiskQueueAndStackTest.assertSizeLengthEquals( 2, 12, 20, test.stack); // still be the same assertArrayEquals(input4, result4); byte[] result3 = test.removeFirst(); assertSizeLengthEquals(3, 18, 30, test); CircularDiskQueueAndStackTest.assertSizeLengthEquals( 2, 12, 20, test.stack); // still be the same assertArrayEquals(input3, result3); byte[] result2 = test.removeFirst(); assertSizeLengthEquals(2, 12, 20, test); CircularDiskQueueAndStackTest.assertSizeLengthEquals( 2, 12, 20, test.stack); // still be the same assertArrayEquals(input2, result2); byte[] result1 = test.removeFirst(); assertArrayEquals(input1, result1); assertSizeLengthEquals(1, 6, 10, test); CircularDiskQueueAndStackTest.assertSizeLengthEquals(1, 6, 10, test.stack); // one removed byte[] result = test.removeFirst(); assertArrayEquals(input, result); assertSizeLengthEquals(0, 0, 0, test); CircularDiskQueueAndStackTest.assertSizeLengthEquals(0, 0, 0, test.stack); // no more } catch (Exception e) { throw e; } }
public static void assertSizeLengthEquals( long size, long length, long lengthOfStorage, BufferedCircularDiskStack sq) { assertEquals(size, sq.size()); assertEquals(length, sq.length()); assertEquals(lengthOfStorage, sq.lengthOfStorage()); }