public TestDatabaseConfig(String databaseName, String databasePath, int tableVersion, int viewVersion) { androidDatabaseList = new ArrayList<>(); androidDatabaseList.add(new AndroidDatabase(databaseName, databasePath, tableVersion, viewVersion)); }
/** * Add a attached standard SQLite database * * @param databaseName Name of the attached database * @param primaryDatabase Primary Database * @param attachedDatabases Databases to be attached to Primary Database */ public void addAttachedDatabase(@Nonnull String databaseName, @Nonnull AndroidDatabase primaryDatabase, @Nonnull List<AndroidDatabase> attachedDatabases) { getDatabaseMap().put(databaseName, new AndroidDatabase(databaseName, primaryDatabase, attachedDatabases)); }
/** * Add a SQLCipher SQLite database. If the password is null, then a standard SQLite database will be used * * @param databaseName Name of the database (DBTools reference name) * @param databasePath Absolute path to database * @param password Database password * @param version Version of the database * @param viewsVersion Version of the database view */ public void addDatabase(@Nonnull String databaseName, @Nonnull String databasePath, @Nullable String password, int version, int viewsVersion) { if (password != null) { addDatabase(new AndroidDatabase(databaseName, password, databasePath, version, viewsVersion)); } else { addDatabase(new AndroidDatabase(databaseName, databasePath, version, viewsVersion)); } }
/** * Add a attached standard SQLite database * * @param databaseName Name of the attached database (DBTools reference name) * @param primaryDatabaseName Primary Database name * @param attachedDatabaseNames Database names to be attached to Primary Database */ public void addAttachedDatabase(@Nonnull String databaseName, @Nonnull String primaryDatabaseName, @Nonnull List<String> attachedDatabaseNames) { AndroidDatabase primaryDatabase = getDatabase(primaryDatabaseName); if (primaryDatabase == null) { throw new IllegalStateException("Database [" + primaryDatabaseName + "] does not exist"); } List<AndroidDatabase> attachedDatabases = new ArrayList<>(); for (String databaseNameToAttach : attachedDatabaseNames) { AndroidDatabase databaseToAttach = getDatabase(databaseNameToAttach); if (databaseToAttach == null) { throw new IllegalStateException("Database to attach [" + databaseNameToAttach + "] does not exist"); } attachedDatabases.add(databaseToAttach); } getDatabaseMap().put(databaseName, new AndroidDatabase(databaseName, primaryDatabase, attachedDatabases)); }
@Before public void setUp() throws Exception { List<AndroidDatabase> androidDatabases = new ArrayList<>(); androidDatabases.add(new AndroidDatabase(databaseName1, BuildEnv.GRADLE.getTestDbDir() + databaseName1 + ".db", DatabaseManager.MAIN_TABLES_VERSION, DatabaseManager.MAIN_VIEWS_VERSION)); androidDatabases.add(new AndroidDatabase(databaseName2, BuildEnv.GRADLE.getTestDbDir() + databaseName2 + ".db", DatabaseManager.MAIN_TABLES_VERSION, DatabaseManager.MAIN_VIEWS_VERSION)); TestDatabaseConfig databaseConfig = new TestDatabaseConfig(androidDatabases); databaseConfig.deleteAllDatabaseFiles(); DatabaseManager databaseManager = new MultiDatabaseManager(databaseConfig); MainDatabaseManagers.init(databaseManager); JdbcSqliteDatabaseWrapper.setEnableLogging(true); // show all statements individualManager = MainDatabaseManagers.getIndividualManager(); tableChangeSubscription = individualManager.tableChanges(databaseName1) .subscribeOn(Schedulers.trampoline()) .observeOn(Schedulers.trampoline()) .subscribe(new Consumer<DatabaseTableChange>() { @Override public void accept(DatabaseTableChange tableChange) { MultiDatabaseTableChangeSubscribeTest.this.handleSubscribeEvent(tableChange); } }); }
@Before public void setUp() throws Exception { List<AndroidDatabase> androidDatabases = new ArrayList<>(); androidDatabases.add(new AndroidDatabase(databaseName1, BuildEnv.GRADLE.getTestDbDir() + databaseName1 + ".db", DatabaseManager.MAIN_TABLES_VERSION, DatabaseManager.MAIN_VIEWS_VERSION)); androidDatabases.add(new AndroidDatabase(databaseName2, BuildEnv.GRADLE.getTestDbDir() + databaseName2 + ".db", DatabaseManager.MAIN_TABLES_VERSION, DatabaseManager.MAIN_VIEWS_VERSION)); TestDatabaseConfig databaseConfig = new TestDatabaseConfig(androidDatabases); databaseConfig.deleteAllDatabaseFiles(); DatabaseManager databaseManager = new MultiDatabaseManager(databaseConfig); MainDatabaseManagers.init(databaseManager); JdbcSqliteDatabaseWrapper.setEnableLogging(true); // show all statements individualManager = MainDatabaseManagers.getIndividualManager(); // setup table change listener individualManager.addTableChangeListener(databaseName1, new DBToolsTableChangeListener() { @Override public void onTableChange(DatabaseTableChange tableChange) { if (tableChange.isInsert()) { insertEventCount.incrementAndGet(); } else if (tableChange.isUpdate()) { updateEventCount.incrementAndGet(); } else if (tableChange.isDelete()) { deleteEventCount.incrementAndGet(); } if (tableChange.isBulkOperation()) { bulkOperationCount.incrementAndGet(); } } }); }
@Before public void setUp() throws Exception { List<AndroidDatabase> androidDatabases = new ArrayList<>(); androidDatabases.add(new AndroidDatabase(databaseName1, BuildEnv.GRADLE.getTestDbDir() + databaseName1 + ".db", DatabaseManager.MAIN_TABLES_VERSION, DatabaseManager.MAIN_VIEWS_VERSION)); androidDatabases.add(new AndroidDatabase(databaseName2, BuildEnv.GRADLE.getTestDbDir() + databaseName2 + ".db", DatabaseManager.MAIN_TABLES_VERSION, DatabaseManager.MAIN_VIEWS_VERSION)); TestDatabaseConfig databaseConfig = new TestDatabaseConfig(androidDatabases); databaseConfig.deleteAllDatabaseFiles(); DatabaseManager databaseManager = new MultiDatabaseManager(databaseConfig); MainDatabaseManagers.init(databaseManager); JdbcSqliteDatabaseWrapper.setEnableLogging(true); // show all statements individualManager = MainDatabaseManagers.getIndividualManager(); // setup table change listener individualManager.addTableChangeListener(databaseName1, new DBToolsTableChangeListener() { @Override public void onTableChange(DatabaseTableChange tableChange) { if (tableChange.isInsert()) { insertEventCount.incrementAndGet(); } else if (tableChange.isUpdate()) { updateEventCount.incrementAndGet(); } else if (tableChange.isDelete()) { deleteEventCount.incrementAndGet(); } if (tableChange.isBulkOperation()) { bulkOperationCount.incrementAndGet(); } } }); }