diff options
author | James Ahlborn <jtahlborn@yahoo.com> | 2011-07-29 04:07:11 +0000 |
---|---|---|
committer | James Ahlborn <jtahlborn@yahoo.com> | 2011-07-29 04:07:11 +0000 |
commit | 322d32d4be01471ad9d41fc05e0c5a11c8ec7de0 (patch) | |
tree | 527aba56908f911c4ef7918837a4466e088edbeb /test/src | |
parent | 599d2da23e2d88632133ab178ad3e23cdc204753 (diff) | |
download | jackcess-322d32d4be01471ad9d41fc05e0c5a11c8ec7de0.tar.gz jackcess-322d32d4be01471ad9d41fc05e0c5a11c8ec7de0.zip |
add Database.getSystemTableNames to enable retrieving the list of system/hidden tables
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@570 f203690c-595d-4dc9-a70b-905162fa7fd2
Diffstat (limited to 'test/src')
-rw-r--r-- | test/src/java/com/healthmarketscience/jackcess/DatabaseTest.java | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/test/src/java/com/healthmarketscience/jackcess/DatabaseTest.java b/test/src/java/com/healthmarketscience/jackcess/DatabaseTest.java index 26c35ff..3b08370 100644 --- a/test/src/java/com/healthmarketscience/jackcess/DatabaseTest.java +++ b/test/src/java/com/healthmarketscience/jackcess/DatabaseTest.java @@ -51,12 +51,12 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeSet; import java.util.UUID; -import junit.framework.TestCase; - import static com.healthmarketscience.jackcess.Database.*; import static com.healthmarketscience.jackcess.JetFormatTest.*; +import junit.framework.TestCase; /** * @author Tim McCune @@ -997,13 +997,39 @@ public class DatabaseTest extends TestCase { for (final FileFormat fileFormat : SUPPORTED_FILEFORMATS) { Database db = create(fileFormat); + Set<String> sysTables = new TreeSet<String>( + String.CASE_INSENSITIVE_ORDER); + sysTables.addAll( + Arrays.asList("MSysObjects", "MSysQueries", "MSysACES", + "MSysRelationships")); + if (fileFormat.ordinal() < FileFormat.V2003.ordinal()) { assertNotNull("file format: " + fileFormat, db.getSystemTable("MSysAccessObjects")); + sysTables.add("MSysAccessObjects"); } else { // v2003+ template files have no "MSysAccessObjects" table assertNull("file format: " + fileFormat, db.getSystemTable("MSysAccessObjects")); + sysTables.addAll( + Arrays.asList("MSysNavPaneGroupCategories", + "MSysNavPaneGroups", "MSysNavPaneGroupToObjects", + "MSysNavPaneObjectIDs", "MSysAccessStorage")); + if(fileFormat.ordinal() >= FileFormat.V2007.ordinal()) { + sysTables.addAll( + Arrays.asList( + "MSysComplexColumns", "MSysComplexType_Attachment", + "MSysComplexType_Decimal", "MSysComplexType_GUID", + "MSysComplexType_IEEEDouble", "MSysComplexType_IEEESingle", + "MSysComplexType_Long", "MSysComplexType_Short", + "MSysComplexType_Text", "MSysComplexType_UnsignedByte")); + } + if(fileFormat.ordinal() >= FileFormat.V2010.ordinal()) { + sysTables.add("f_12D7448B56564D8AAE333BCC9B3718E5_Data"); + sysTables.add("MSysResources"); + } } + assertEquals(sysTables, db.getSystemTableNames()); + assertNotNull(db.getSystemTable("MSysObjects")); assertNotNull(db.getSystemTable("MSysQueries")); assertNotNull(db.getSystemTable("MSysACES")); @@ -1011,6 +1037,7 @@ public class DatabaseTest extends TestCase { assertNull(db.getSystemTable("MSysBogus")); + db.close(); } } |