diff options
author | James Ahlborn <jtahlborn@yahoo.com> | 2011-04-18 01:52:57 +0000 |
---|---|---|
committer | James Ahlborn <jtahlborn@yahoo.com> | 2011-04-18 01:52:57 +0000 |
commit | bb4ce1424cf8e4ef6c62e969e68884a6a0096024 (patch) | |
tree | c38086890e5e1c0b7d092cacd84d736c46c9f4ed /test | |
parent | 7f8126d41f3ef11c528ee533e87830d702f2d602 (diff) | |
download | jackcess-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.java | 42 |
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 { |