aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/java/com
diff options
context:
space:
mode:
authorJames Ahlborn <jtahlborn@yahoo.com>2019-02-20 05:43:35 +0000
committerJames Ahlborn <jtahlborn@yahoo.com>2019-02-20 05:43:35 +0000
commit1fb85bd37a398ff94abd048bfea0a4ec9c8b86d9 (patch)
tree2b90c51a717b96dc7b103b5ddf96193e63489121 /src/test/java/com
parentcdcd610a9743ed9be8c7865fdaffc5ae5bef5110 (diff)
downloadjackcess-1fb85bd37a398ff94abd048bfea0a4ec9c8b86d9.tar.gz
jackcess-1fb85bd37a398ff94abd048bfea0a4ec9c8b86d9.zip
Add Database.newTableMetaDataIterable() which enables iterating through table names without loading the entire collection into memory at once
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@1295 f203690c-595d-4dc9-a70b-905162fa7fd2
Diffstat (limited to 'src/test/java/com')
-rw-r--r--src/test/java/com/healthmarketscience/jackcess/DatabaseTest.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/test/java/com/healthmarketscience/jackcess/DatabaseTest.java b/src/test/java/com/healthmarketscience/jackcess/DatabaseTest.java
index 0a33a99..2e5c35e 100644
--- a/src/test/java/com/healthmarketscience/jackcess/DatabaseTest.java
+++ b/src/test/java/com/healthmarketscience/jackcess/DatabaseTest.java
@@ -1031,6 +1031,54 @@ public class DatabaseTest extends TestCase
assertEquals("Row[1:1][{id=37,data=<null>}]", row.toString());
}
+ public void testIterateTableNames() throws Exception {
+ for (final TestDB testDB : SUPPORTED_DBS_TEST_FOR_READ) {
+ final Database db = open(testDB);
+
+ Set<String> names = new HashSet<>();
+ int sysCount = 0;
+ for(TableMetaData tmd : db.newTableMetaDataIterable()) {
+ if(tmd.isSystem()) {
+ ++sysCount;
+ continue;
+ }
+ assertFalse(tmd.isLinked());
+ assertNull(tmd.getLinkedTableName());
+ assertNull(tmd.getLinkedDbName());
+ names.add(tmd.getName());
+ }
+
+ assertTrue(sysCount > 4);
+ assertEquals(new HashSet<>(Arrays.asList("Table1", "Table2", "Table3",
+ "Table4")),
+ names);
+ }
+
+ for (final TestDB testDB : TestDB.getSupportedForBasename(Basename.LINKED)) {
+ final Database db = open(testDB);
+
+ Set<String> names = new HashSet<>();
+ for(TableMetaData tmd : db.newTableMetaDataIterable()) {
+ if(tmd.isSystem()) {
+ continue;
+ }
+ if("Table1".equals(tmd.getName())) {
+ assertFalse(tmd.isLinked());
+ assertNull(tmd.getLinkedTableName());
+ assertNull(tmd.getLinkedDbName());
+ } else {
+ assertTrue(tmd.isLinked());
+ assertEquals("Table1", tmd.getLinkedTableName());
+ assertEquals("Z:\\jackcess_test\\linkeeTest.accdb", tmd.getLinkedDbName());
+ }
+ names.add(tmd.getName());
+ }
+
+ assertEquals(new HashSet<>(Arrays.asList("Table1", "Table2")),
+ names);
+ }
+ }
+
private static void checkRawValue(String expected, Object val)
{
if(expected != null) {