summaryrefslogtreecommitdiffstats
path: root/test/src/java
diff options
context:
space:
mode:
authorJames Ahlborn <jtahlborn@yahoo.com>2007-12-05 18:58:27 +0000
committerJames Ahlborn <jtahlborn@yahoo.com>2007-12-05 18:58:27 +0000
commitc44e3f479969b5e324033573b5bed31d3644c4e8 (patch)
treeb29effeba6d8b30dbe9c0588909ee15fd7b5f2c2 /test/src/java
parent6d8b4e03a880377e2b97d448837252a53ec0b452 (diff)
downloadjackcess-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.java166
-rw-r--r--test/src/java/com/healthmarketscience/jackcess/CursorTest.java2
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();