diff options
author | James Ahlborn <jtahlborn@yahoo.com> | 2008-03-13 04:03:29 +0000 |
---|---|---|
committer | James Ahlborn <jtahlborn@yahoo.com> | 2008-03-13 04:03:29 +0000 |
commit | 4885e4e69fda95d74a7e50e5a0636b4696066650 (patch) | |
tree | 505b2116d106c5e9515202c708aeaba6f4298304 /test | |
parent | d4113e1b68d70f20ab1ef56669d28554213e5e22 (diff) | |
download | jackcess-4885e4e69fda95d74a7e50e5a0636b4696066650.tar.gz jackcess-4885e4e69fda95d74a7e50e5a0636b4696066650.zip |
always return relationships in same order regardless of table parameter order; add some simple relationship unit tests
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@269 f203690c-595d-4dc9-a70b-905162fa7fd2
Diffstat (limited to 'test')
-rw-r--r-- | test/src/java/com/healthmarketscience/jackcess/RelationshipTest.java | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/test/src/java/com/healthmarketscience/jackcess/RelationshipTest.java b/test/src/java/com/healthmarketscience/jackcess/RelationshipTest.java new file mode 100644 index 0000000..fe712ba --- /dev/null +++ b/test/src/java/com/healthmarketscience/jackcess/RelationshipTest.java @@ -0,0 +1,105 @@ +/* +Copyright (c) 2008 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 java.io.File; +import java.util.Arrays; +import java.util.List; + +import junit.framework.TestCase; + +import static com.healthmarketscience.jackcess.DatabaseTest.*; + +/** + * @author james + */ +public class RelationshipTest extends TestCase { + + public RelationshipTest(String name) throws Exception { + super(name); + } + + public void testSimple() throws Exception { + Database db = open(new File("test/data/indexTest.mdb")); + Table t1 = db.getTable("Table1"); + Table t2 = db.getTable("Table2"); + Table t3 = db.getTable("Table3"); + + List<Relationship> rels = db.getRelationships(t1, t2); + assertEquals(1, rels.size()); + Relationship rel = rels.get(0); + assertEquals("Table2Table1", rel.getName()); + assertEquals(t2, rel.getFromTable()); + assertEquals(Arrays.asList(t2.getColumn("id")), + rel.getFromColumns()); + assertEquals(t1, rel.getToTable()); + assertEquals(Arrays.asList(t1.getColumn("otherfk1")), + rel.getToColumns()); + assertTrue(rel.hasReferentialIntegrity()); + assertEquals(0, rel.getFlags()); + assertSameRelationships(rels, db.getRelationships(t2, t1)); + + rels = db.getRelationships(t2, t3); + assertTrue(db.getRelationships(t2, t3).isEmpty()); + assertSameRelationships(rels, db.getRelationships(t3, t2)); + + rels = db.getRelationships(t1, t3); + assertEquals(1, rels.size()); + rel = rels.get(0); + assertEquals("Table3Table1", rel.getName()); + assertEquals(t3, rel.getFromTable()); + assertEquals(Arrays.asList(t3.getColumn("id")), + rel.getFromColumns()); + assertEquals(t1, rel.getToTable()); + assertEquals(Arrays.asList(t1.getColumn("otherfk2")), + rel.getToColumns()); + assertTrue(rel.hasReferentialIntegrity()); + assertEquals(0, rel.getFlags()); + assertSameRelationships(rels, db.getRelationships(t3, t1)); + + try { + db.getRelationships(t1, t1); + fail("IllegalArgumentException should have been thrown"); + } catch(IllegalArgumentException ignored) { + // success + } + + } + + private void assertSameRelationships( + List<Relationship> expected, List<Relationship> found) + { + assertEquals(expected.size(), found.size()); + for(int i = 0; i < expected.size(); ++i) { + Relationship eRel = expected.get(i); + Relationship fRel = found.get(i); + assertEquals(eRel.getName(), fRel.getName()); + } + } + +} |