aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJames Ahlborn <jtahlborn@yahoo.com>2011-04-18 01:52:57 +0000
committerJames Ahlborn <jtahlborn@yahoo.com>2011-04-18 01:52:57 +0000
commitbb4ce1424cf8e4ef6c62e969e68884a6a0096024 (patch)
treec38086890e5e1c0b7d092cacd84d736c46c9f4ed /test
parent7f8126d41f3ef11c528ee533e87830d702f2d602 (diff)
downloadjackcess-bb4ce1424cf8e4ef6c62e969e68884a6a0096024.tar.gz
jackcess-bb4ce1424cf8e4ef6c62e969e68884a6a0096024.zip
add Index.getReferencedIndex for retrieving the referenced index of a foreign key index
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@555 f203690c-595d-4dc9-a70b-905162fa7fd2
Diffstat (limited to 'test')
-rw-r--r--test/src/java/com/healthmarketscience/jackcess/IndexTest.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/test/src/java/com/healthmarketscience/jackcess/IndexTest.java b/test/src/java/com/healthmarketscience/jackcess/IndexTest.java
index 1e326c3..3ebfff6 100644
--- a/test/src/java/com/healthmarketscience/jackcess/IndexTest.java
+++ b/test/src/java/com/healthmarketscience/jackcess/IndexTest.java
@@ -466,6 +466,48 @@ public class IndexTest extends TestCase {
}
}
+ public void testGetForeignKeyIndex() throws Exception
+ {
+ for (final TestDB testDB : TestDB.getSupportedForBasename(Basename.INDEX, true)) {
+ Database db = open(testDB);
+ Table t1 = db.getTable("Table1");
+ Table t2 = db.getTable("Table2");
+ Table t3 = db.getTable("Table3");
+
+ Index t2t1 = t1.getIndex(IndexTest.getRelationshipName(
+ db.getFormat(), "Table2Table1"));
+ Index t3t1 = t1.getIndex(IndexTest.getRelationshipName(
+ db.getFormat(), "Table3Table1"));
+
+
+ assertTrue(t2t1.isForeignKey());
+ assertNotNull(t2t1.getReference());
+ assertFalse(t2t1.getReference().isPrimaryTable());
+ doCheckForeignKeyIndex(t1, t2t1, t2);
+
+ assertTrue(t3t1.isForeignKey());
+ assertNotNull(t3t1.getReference());
+ assertFalse(t3t1.getReference().isPrimaryTable());
+ doCheckForeignKeyIndex(t1, t3t1, t3);
+
+ Index t1pk = t1.getIndex(IndexBuilder.PRIMARY_KEY_NAME);
+ assertNotNull(t1pk);
+ assertNull(t1pk.getReference());
+ assertNull(t1pk.getReferencedIndex());
+ }
+ }
+
+ private void doCheckForeignKeyIndex(Table ta, Index ia, Table tb)
+ throws Exception
+ {
+ Index ib = ia.getReferencedIndex();
+ assertNotNull(ib);
+ assertSame(tb, ib.getTable());
+
+ assertNotNull(ib.getReference());
+ assertSame(ia, ib.getReferencedIndex());
+ }
+
private void checkIndexColumns(Table table, String... idxInfo)
throws Exception
{