diff options
author | James Ahlborn <jtahlborn@yahoo.com> | 2007-12-05 18:58:27 +0000 |
---|---|---|
committer | James Ahlborn <jtahlborn@yahoo.com> | 2007-12-05 18:58:27 +0000 |
commit | c44e3f479969b5e324033573b5bed31d3644c4e8 (patch) | |
tree | b29effeba6d8b30dbe9c0588909ee15fd7b5f2c2 /test/src/java | |
parent | 6d8b4e03a880377e2b97d448837252a53ec0b452 (diff) | |
download | jackcess-c44e3f479969b5e324033573b5bed31d3644c4e8.tar.gz jackcess-c44e3f479969b5e324033573b5bed31d3644c4e8.zip |
test cursorbuilder
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@199 f203690c-595d-4dc9-a70b-905162fa7fd2
Diffstat (limited to 'test/src/java')
-rw-r--r-- | test/src/java/com/healthmarketscience/jackcess/CursorBuilderTest.java | 166 | ||||
-rw-r--r-- | test/src/java/com/healthmarketscience/jackcess/CursorTest.java | 2 |
2 files changed, 167 insertions, 1 deletions
diff --git a/test/src/java/com/healthmarketscience/jackcess/CursorBuilderTest.java b/test/src/java/com/healthmarketscience/jackcess/CursorBuilderTest.java new file mode 100644 index 0000000..2788f65 --- /dev/null +++ b/test/src/java/com/healthmarketscience/jackcess/CursorBuilderTest.java @@ -0,0 +1,166 @@ +/* +Copyright (c) 2007 Health Market Science, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +USA + +You can contact Health Market Science at info@healthmarketscience.com +or at the following address: + +Health Market Science +2700 Horizon Drive +Suite 200 +King of Prussia, PA 19406 +*/ + +package com.healthmarketscience.jackcess; + +import junit.framework.TestCase; + +/** + * @author James Ahlborn + */ +public class CursorBuilderTest extends TestCase { + + public CursorBuilderTest(String name) throws Exception { + super(name); + } + + private static void assertCursor( + Cursor expected, Cursor found) + { + assertSame(expected.getTable(), found.getTable()); + assertSame(expected.getIndex(), found.getIndex()); + + assertEquals(expected.getSavepoint().getCurrentPosition(), + found.getSavepoint().getCurrentPosition()); + } + + public void test() throws Exception + { + Database db = CursorTest.createTestIndexTable(); + + Table table = db.getTable("test"); + Index idx = table.getIndexes().get(0); + + Cursor expected = Cursor.createCursor(table); + + Cursor found = new CursorBuilder(table).toCursor(); + assertCursor(expected, found); + + expected = Cursor.createIndexCursor(table, idx); + found = new CursorBuilder(table) + .setIndex(idx) + .toCursor(); + assertCursor(expected, found); + + expected = Cursor.createIndexCursor(table, idx); + found = new CursorBuilder(table) + .setIndexByName("id") + .toCursor(); + assertCursor(expected, found); + + try { + new CursorBuilder(table) + .setIndexByName("foo"); + fail("IllegalArgumentException should have been thrown"); + } catch(IllegalArgumentException ignored) { + // success + } + + expected = Cursor.createIndexCursor(table, idx); + found = new CursorBuilder(table) + .setIndexByColumns(table.getColumn("id")) + .toCursor(); + assertCursor(expected, found); + + try { + new CursorBuilder(table) + .setIndexByColumns(table.getColumn("value")); + fail("IllegalArgumentException should have been thrown"); + } catch(IllegalArgumentException ignored) { + // success + } + + try { + new CursorBuilder(table) + .setIndexByColumns(table.getColumn("id"), table.getColumn("value")); + fail("IllegalArgumentException should have been thrown"); + } catch(IllegalArgumentException ignored) { + // success + } + + expected = Cursor.createCursor(table); + expected.beforeFirst(); + found = new CursorBuilder(table) + .beforeFirst() + .toCursor(); + assertCursor(expected, found); + + expected = Cursor.createCursor(table); + expected.afterLast(); + found = new CursorBuilder(table) + .afterLast() + .toCursor(); + assertCursor(expected, found); + + expected = Cursor.createCursor(table); + expected.moveNextRows(2); + Cursor.Savepoint sp = expected.getSavepoint(); + found = new CursorBuilder(table) + .afterLast() + .restoreSavepoint(sp) + .toCursor(); + assertCursor(expected, found); + + expected = Cursor.createIndexCursor(table, idx); + expected.moveNextRows(2); + sp = expected.getSavepoint(); + found = new CursorBuilder(table) + .setIndex(idx) + .beforeFirst() + .restoreSavepoint(sp) + .toCursor(); + assertCursor(expected, found); + + expected = Cursor.createIndexCursor(table, idx, + idx.constructIndexRowFromEntry(3), + null); + found = new CursorBuilder(table) + .setIndex(idx) + .setStartEntry(3) + .toCursor(); + assertCursor(expected, found); + + expected = Cursor.createIndexCursor(table, idx, + idx.constructIndexRowFromEntry(3), + false, + idx.constructIndexRowFromEntry(7), + false); + found = new CursorBuilder(table) + .setIndex(idx) + .setStartEntry(3) + .setStartRowInclusive(false) + .setEndEntry(7) + .setEndRowInclusive(false) + .toCursor(); + assertCursor(expected, found); + + + + db.close(); + } + +} diff --git a/test/src/java/com/healthmarketscience/jackcess/CursorTest.java b/test/src/java/com/healthmarketscience/jackcess/CursorTest.java index 87210ff..0aa9c70 100644 --- a/test/src/java/com/healthmarketscience/jackcess/CursorTest.java +++ b/test/src/java/com/healthmarketscience/jackcess/CursorTest.java @@ -104,7 +104,7 @@ public class CursorTest extends TestCase { return expectedRows; } - private static Database createTestIndexTable() throws Exception { + static Database createTestIndexTable() throws Exception { File srcFile = new File("test/data/indexCursorTest.mdb"); File dbFile = File.createTempFile("databaseTest", ".mdb"); dbFile.deleteOnExit(); |