@@ -11,7 +11,6 @@ import android.content.Context
11
11
import android.provider.CalendarContract
12
12
import android.provider.ContactsContract
13
13
import android.util.Log
14
- import androidx.test.platform.app.InstrumentationRegistry
15
14
import androidx.work.Configuration
16
15
import androidx.work.ListenableWorker
17
16
import androidx.work.WorkManager
@@ -25,76 +24,56 @@ import at.bitfire.davdroid.TestUtils.workScheduledOrRunning
25
24
import at.bitfire.davdroid.db.Credentials
26
25
import at.bitfire.davdroid.settings.AccountSettings
27
26
import at.bitfire.davdroid.sync.account.AccountUtils
28
- import dagger.assisted.AssistedFactory
29
27
import dagger.hilt.android.qualifiers.ApplicationContext
30
28
import dagger.hilt.android.testing.HiltAndroidRule
31
29
import dagger.hilt.android.testing.HiltAndroidTest
32
- import io.mockk.junit4.MockKRule
33
30
import io.mockk.mockkObject
34
31
import io.mockk.verify
35
32
import kotlinx.coroutines.runBlocking
36
- import org.junit.AfterClass
33
+ import org.junit.After
37
34
import org.junit.Assert.assertFalse
38
35
import org.junit.Assert.assertTrue
39
36
import org.junit.Before
40
- import org.junit.BeforeClass
41
37
import org.junit.Rule
42
38
import org.junit.Test
43
39
import javax.inject.Inject
44
40
45
41
@HiltAndroidTest
46
42
class PeriodicSyncWorkerTest {
47
43
48
- companion object {
49
-
50
- private val context: Context = InstrumentationRegistry .getInstrumentation().targetContext
51
-
52
- private val accountManager = AccountManager .get(context)
53
- private val account = Account (" Test Account" , context.getString(R .string.account_type))
54
- private val fakeCredentials = Credentials (" test" , " test" )
55
-
56
- @BeforeClass
57
- @JvmStatic
58
- fun setUp () {
59
- // Initialize WorkManager for instrumentation tests.
60
- val config = Configuration .Builder ()
61
- .setMinimumLoggingLevel(Log .DEBUG )
62
- .build()
63
- WorkManagerTestInitHelper .initializeTestWorkManager(context, config)
64
-
65
- assertTrue(AccountUtils .createAccount(context, account, AccountSettings .initialUserData(fakeCredentials)))
66
- ContentResolver .setIsSyncable(account, CalendarContract .AUTHORITY , 1 )
67
- ContentResolver .setIsSyncable(account, ContactsContract .AUTHORITY , 1 )
68
- }
69
-
70
- @AfterClass
71
- @JvmStatic
72
- fun removeAccount () {
73
- accountManager.removeAccountExplicitly(account)
74
- }
75
-
76
- }
77
-
78
- @AssistedFactory
79
- interface PeriodicSyncWorkerFactory {
80
- fun create (appContext : Context , workerParams : WorkerParameters ): PeriodicSyncWorker
81
- }
82
-
83
44
@Inject
84
45
@ApplicationContext
85
46
lateinit var context: Context
86
47
87
48
@Inject
88
- lateinit var syncWorkerFactory: PeriodicSyncWorkerFactory
49
+ lateinit var syncWorkerFactory: PeriodicSyncWorker . Factory
89
50
90
51
@get:Rule
91
52
val hiltRule = HiltAndroidRule (this )
92
- @get:Rule
93
- val mockkRule = MockKRule (this )
53
+
54
+ private val accountManager by lazy { AccountManager .get(context) }
55
+ private val account by lazy { Account (" Test Account" , context.getString(R .string.account_type)) }
56
+ private val fakeCredentials = Credentials (" test" , " test" )
94
57
95
58
@Before
96
- fun inject () {
59
+ fun setup () {
97
60
hiltRule.inject()
61
+
62
+ // Initialize WorkManager for instrumentation tests.
63
+ val config = Configuration .Builder ()
64
+ .setMinimumLoggingLevel(Log .DEBUG )
65
+ .build()
66
+ WorkManagerTestInitHelper .initializeTestWorkManager(context, config)
67
+
68
+ // create test account
69
+ assertTrue(AccountUtils .createAccount(context, account, AccountSettings .initialUserData(fakeCredentials)))
70
+ ContentResolver .setIsSyncable(account, CalendarContract .AUTHORITY , 1 )
71
+ ContentResolver .setIsSyncable(account, ContactsContract .AUTHORITY , 1 )
72
+ }
73
+
74
+ @After
75
+ fun teardown () {
76
+ accountManager.removeAccountExplicitly(account)
98
77
}
99
78
100
79
0 commit comments