01: /*
02: * $Id: TestPageManager.java,v 1.3 2003/09/21 15:49:02 boisvert Exp $
03: *
04: * Unit tests for PageManager class
05: *
06: * Simple db toolkit
07: * Copyright (C) 1999, 2000 Cees de Groot <cg@cdegroot.com>
08: *
09: * This library is free software; you can redistribute it and/or
10: * modify it under the terms of the GNU Library General Public License
11: * as published by the Free Software Foundation; either version 2
12: * of the License, or (at your option) any later version.
13: *
14: * This library is distributed in the hope that it will be useful,
15: * but WITHOUT ANY WARRANTY; without even the implied warranty of
16: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17: * Library General Public License for more details.
18: *
19: * You should have received a copy of the GNU Library General Public License
20: * along with this library; if not, write to the Free Software Foundation,
21: * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
22: */
23: package jdbm.recman;
24:
25: import junit.framework.*;
26:
27: /**
28: * This class contains all Unit tests for {@link PageManager}.
29: */
30: public class TestPageManager extends TestCase {
31:
32: public TestPageManager(String name) {
33: super (name);
34: }
35:
36: public void setUp() {
37: TestRecordFile.deleteTestFile();
38: }
39:
40: public void tearDown() {
41: TestRecordFile.deleteTestFile();
42: }
43:
44: /**
45: * Test constructor
46: */
47: public void testCtor() throws Exception {
48: RecordFile f = new RecordFile(TestRecordFile.testFileName);
49: PageManager pm = new PageManager(f);
50:
51: f.forceClose();
52: }
53:
54: /**
55: * Test allocations on a single list.
56: */
57: public void testAllocSingleList() throws Exception {
58: RecordFile f = new RecordFile(TestRecordFile.testFileName);
59: PageManager pm = new PageManager(f);
60: for (int i = 0; i < 100; i++) {
61: assertEquals("allocate ", (long) i + 1, pm
62: .allocate(Magic.USED_PAGE));
63: }
64: pm.close();
65: f.close();
66:
67: f = new RecordFile(TestRecordFile.testFileName);
68: pm = new PageManager(f);
69: PageCursor curs = new PageCursor(pm, Magic.USED_PAGE);
70: long i = 1;
71: while (true) {
72: long cur = curs.next();
73: if (cur == 0)
74: break;
75: assertEquals("next", i++, cur);
76: if (i > 120)
77: fail("list structure not ok");
78: }
79: assertEquals("total", 101, i);
80: pm.close();
81: f.close();
82: }
83:
84: /**
85: * Runs all tests in this class
86: */
87: public static void main(String[] args) {
88: junit.textui.TestRunner
89: .run(new TestSuite(TestPageManager.class));
90: }
91: }
|