Нужно проверить блокировку базы данных.
(Хочу сделать проверку на запущенную копию,взял направление на проверке бд)
Запускаю 1 копию,база блокируется,допустим запускаю 2 копию,она подключается к sqlite бд(которая занята)(тут нужно проверить)
вот подключение
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection("jdbc:sqlite:db.s3db");
вот исключение, которое нужно проверить:
org.sqlite.SQLiteException: [SQLITE_BUSY] The database file is locked (database is locked)
at org.sqlite.core.DB.newSQLException(DB.java:941)
at org.sqlite.core.DB.newSQLException(DB.java:953)
at org.sqlite.core.DB.throwex(DB.java:918)
at org.sqlite.core.NativeDB._exec_utf8(Native Method)
at org.sqlite.core.NativeDB._exec(NativeDB.java:94)
at org.sqlite.jdbc3.JDBC3Statement.executeUpdate(JDBC3Statement.java:109)
...
at java.base/java.lang.Thread.run(Thread.java:834)
@Test
public void dbLockTest() {
try {
//тут ваш код котрый должен выбросить исклчение
connectToDb();
//если ваш код не выбросит исключения, то помечаем тест как failed()
fail("Didn't throw any exception");
} catch (Exception ex) {
assertThat(ex, instanceOf(SQLiteException.class));
assertThat(ex.getMessage(), equalTo("[SQLITE_BUSY] The database file is locked (database is locked)"));
}
}
это не unit тест.
это проверка на запущенну копию,выполняется в самом начале.
DataBase db=new DataBase();
db.connect();
db.test();(тут выкидывает исключение)