Skip to content

Commit b32c9a1

Browse files
author
Josh
committed
fixed tests
1 parent 4cb686e commit b32c9a1

3 files changed

Lines changed: 65 additions & 57 deletions

File tree

app/src/main/java/net/frozendevelopment/openletters/data/sqldelight/SqlDelightKoin.kt

Lines changed: 2 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,7 @@ package net.frozendevelopment.openletters.data.sqldelight
33
import app.cash.sqldelight.db.SqlDriver
44
import app.cash.sqldelight.driver.android.AndroidSqliteDriver
55
import io.requery.android.database.sqlite.RequerySQLiteOpenHelperFactory
6-
import net.frozendevelopment.openletters.data.sqldelight.migrations.Category
7-
import net.frozendevelopment.openletters.data.sqldelight.migrations.Document
8-
import net.frozendevelopment.openletters.`data`.sqldelight.migrations.Letter
9-
import net.frozendevelopment.openletters.data.sqldelight.migrations.LetterToCategory
10-
import net.frozendevelopment.openletters.data.sqldelight.migrations.LetterToReminder
11-
import net.frozendevelopment.openletters.data.sqldelight.migrations.Reminder
12-
import net.frozendevelopment.openletters.data.sqldelight.models.CategoryId
13-
import net.frozendevelopment.openletters.data.sqldelight.models.ColorAdapter
14-
import net.frozendevelopment.openletters.data.sqldelight.models.DocumentId
15-
import net.frozendevelopment.openletters.data.sqldelight.models.LetterId
16-
import net.frozendevelopment.openletters.data.sqldelight.models.LocalDateTimeAdapter
17-
import net.frozendevelopment.openletters.data.sqldelight.models.ReminderId
6+
import net.frozendevelopment.openletters.extensions.invoke
187
import org.koin.android.ext.koin.androidContext
198
import org.koin.dsl.module
209
// import org.koin.core.annotation.Factory
@@ -108,45 +97,7 @@ val sqlDelightKoinModule =
10897

10998
single {
11099
// Enable foreign keys on the driver instance used by the DB
111-
val driver = get<SqlDriver>().apply { execute(null, "PRAGMA foreign_keys = ON;", 0) }
112-
OpenLettersDB(
113-
driver = driver,
114-
letterAdapter =
115-
Letter.Adapter(
116-
idAdapter = LetterId.adapter,
117-
createdAdapter = LocalDateTimeAdapter,
118-
lastModifiedAdapter = LocalDateTimeAdapter,
119-
),
120-
documentAdapter =
121-
Document.Adapter(
122-
idAdapter = DocumentId.adapter,
123-
letterIdAdapter = LetterId.adapter,
124-
),
125-
categoryAdapter =
126-
Category.Adapter(
127-
idAdapter = CategoryId.adapter,
128-
colorAdapter = ColorAdapter,
129-
createdAdapter = LocalDateTimeAdapter,
130-
lastModifiedAdapter = LocalDateTimeAdapter,
131-
),
132-
letterToCategoryAdapter =
133-
LetterToCategory.Adapter(
134-
letterIdAdapter = LetterId.adapter,
135-
categoryIdAdapter = CategoryId.adapter,
136-
),
137-
reminderAdapter =
138-
Reminder.Adapter(
139-
idAdapter = ReminderId.adapter,
140-
createdAdapter = LocalDateTimeAdapter,
141-
lastModifiedAdapter = LocalDateTimeAdapter,
142-
scheduledForAdapter = LocalDateTimeAdapter,
143-
),
144-
letterToReminderAdapter =
145-
LetterToReminder.Adapter(
146-
letterIdAdapter = LetterId.adapter,
147-
reminderIdAdapter = ReminderId.adapter,
148-
),
149-
)
100+
OpenLettersDB(get())
150101
}
151102

152103
factory { get<OpenLettersDB>().reminderQueries }
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package net.frozendevelopment.openletters.extensions
2+
3+
import app.cash.sqldelight.db.SqlDriver
4+
import net.frozendevelopment.openletters.data.sqldelight.OpenLettersDB
5+
import net.frozendevelopment.openletters.data.sqldelight.migrations.Category
6+
import net.frozendevelopment.openletters.data.sqldelight.migrations.Document
7+
import net.frozendevelopment.openletters.data.sqldelight.migrations.Letter
8+
import net.frozendevelopment.openletters.data.sqldelight.migrations.LetterToCategory
9+
import net.frozendevelopment.openletters.data.sqldelight.migrations.LetterToReminder
10+
import net.frozendevelopment.openletters.data.sqldelight.migrations.Reminder
11+
import net.frozendevelopment.openletters.data.sqldelight.models.CategoryId
12+
import net.frozendevelopment.openletters.data.sqldelight.models.ColorAdapter
13+
import net.frozendevelopment.openletters.data.sqldelight.models.DocumentId
14+
import net.frozendevelopment.openletters.data.sqldelight.models.LetterId
15+
import net.frozendevelopment.openletters.data.sqldelight.models.LocalDateTimeAdapter
16+
import net.frozendevelopment.openletters.data.sqldelight.models.ReminderId
17+
18+
operator fun OpenLettersDB.Companion.invoke(driver: SqlDriver): OpenLettersDB {
19+
driver.execute(null, "PRAGMA foreign_keys = ON;", 0)
20+
return OpenLettersDB(
21+
driver = driver,
22+
letterAdapter =
23+
Letter.Adapter(
24+
idAdapter = LetterId.adapter,
25+
createdAdapter = LocalDateTimeAdapter,
26+
lastModifiedAdapter = LocalDateTimeAdapter,
27+
),
28+
documentAdapter =
29+
Document.Adapter(
30+
idAdapter = DocumentId.adapter,
31+
letterIdAdapter = LetterId.adapter,
32+
),
33+
categoryAdapter =
34+
Category.Adapter(
35+
idAdapter = CategoryId.adapter,
36+
colorAdapter = ColorAdapter,
37+
createdAdapter = LocalDateTimeAdapter,
38+
lastModifiedAdapter = LocalDateTimeAdapter,
39+
),
40+
letterToCategoryAdapter =
41+
LetterToCategory.Adapter(
42+
letterIdAdapter = LetterId.adapter,
43+
categoryIdAdapter = CategoryId.adapter,
44+
),
45+
reminderAdapter =
46+
Reminder.Adapter(
47+
idAdapter = ReminderId.adapter,
48+
createdAdapter = LocalDateTimeAdapter,
49+
lastModifiedAdapter = LocalDateTimeAdapter,
50+
scheduledForAdapter = LocalDateTimeAdapter,
51+
),
52+
letterToReminderAdapter =
53+
LetterToReminder.Adapter(
54+
letterIdAdapter = LetterId.adapter,
55+
reminderIdAdapter = ReminderId.adapter,
56+
),
57+
)
58+
}

app/src/test/java/net/frozendevelopment/openletters/util/TestDatabase.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,16 @@ package net.frozendevelopment.openletters.util
22

33
import app.cash.sqldelight.driver.jdbc.sqlite.JdbcSqliteDriver
44
import net.frozendevelopment.openletters.data.sqldelight.OpenLettersDB
5-
import net.frozendevelopment.openletters.data.sqldelight.SqlDelightKoin
5+
import net.frozendevelopment.openletters.extensions.invoke
66
import org.sqlite.JDBC
77
import java.sql.DriverManager
88

99
fun testDatabase(): OpenLettersDB {
1010
DriverManager.registerDriver(JDBC())
1111

12-
val driver =
13-
JdbcSqliteDriver(JdbcSqliteDriver.IN_MEMORY).apply {
14-
OpenLettersDB.Schema.create(this)
15-
}
12+
val driver = JdbcSqliteDriver(JdbcSqliteDriver.IN_MEMORY).apply {
13+
OpenLettersDB.Schema.create(this)
14+
}
1615

17-
return SqlDelightKoin().openLettersDB(driver)
16+
return OpenLettersDB(driver)
1817
}

0 commit comments

Comments
 (0)