-
Notifications
You must be signed in to change notification settings - Fork 7
/
EssentialServiceModuleImplTest.kt
89 lines (82 loc) · 4.16 KB
/
EssentialServiceModuleImplTest.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package io.embrace.android.embracesdk
import android.os.Looper
import io.embrace.android.embracesdk.capture.connectivity.EmbraceNetworkConnectivityService
import io.embrace.android.embracesdk.capture.cpu.EmbraceCpuInfoDelegate
import io.embrace.android.embracesdk.capture.metadata.EmbraceMetadataService
import io.embrace.android.embracesdk.capture.orientation.NoOpOrientationService
import io.embrace.android.embracesdk.capture.user.EmbraceUserService
import io.embrace.android.embracesdk.comms.delivery.EmbracePendingApiCallsSender
import io.embrace.android.embracesdk.config.EmbraceConfigService
import io.embrace.android.embracesdk.fakes.FakeConfigService
import io.embrace.android.embracesdk.fakes.injection.FakeAndroidServicesModule
import io.embrace.android.embracesdk.fakes.injection.FakeCoreModule
import io.embrace.android.embracesdk.fakes.injection.FakeStorageModule
import io.embrace.android.embracesdk.fakes.injection.FakeSystemServiceModule
import io.embrace.android.embracesdk.gating.EmbraceGatingService
import io.embrace.android.embracesdk.injection.EssentialServiceModuleImpl
import io.embrace.android.embracesdk.injection.InitModuleImpl
import io.embrace.android.embracesdk.internal.DeviceArchitectureImpl
import io.embrace.android.embracesdk.session.EmbraceMemoryCleanerService
import io.embrace.android.embracesdk.session.lifecycle.EmbraceProcessStateService
import io.embrace.android.embracesdk.worker.WorkerThreadModuleImpl
import io.mockk.every
import io.mockk.mockk
import io.mockk.mockkStatic
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertSame
import org.junit.Assert.assertTrue
import org.junit.Test
internal class EssentialServiceModuleImplTest {
@Test
fun testDefaultImplementations() {
mockkStatic(Looper::class)
every { Looper.getMainLooper() } returns mockk(relaxed = true)
val coreModule = FakeCoreModule()
val initModule = InitModuleImpl()
val module = EssentialServiceModuleImpl(
initModule = initModule,
coreModule = coreModule,
workerThreadModule = WorkerThreadModuleImpl(initModule),
systemServiceModule = FakeSystemServiceModule(),
androidServicesModule = FakeAndroidServicesModule(),
storageModule = FakeStorageModule(),
customAppId = "abcde",
enableIntegrationTesting = false,
configServiceProvider = { null }
)
assertTrue(module.memoryCleanerService is EmbraceMemoryCleanerService)
assertTrue(module.orientationService is NoOpOrientationService)
assertTrue(module.processStateService is EmbraceProcessStateService)
assertTrue(module.metadataService is EmbraceMetadataService)
assertNotNull(module.urlBuilder)
assertNotNull(module.apiClient)
assertNotNull(module.apiService)
assertNotNull(module.activityLifecycleTracker)
assertNotNull(module.sharedObjectLoader)
assertNotNull(module.sessionIdTracker)
assertTrue(module.userService is EmbraceUserService)
assertTrue(module.configService is EmbraceConfigService)
assertTrue(module.gatingService is EmbraceGatingService)
assertTrue(module.cpuInfoDelegate is EmbraceCpuInfoDelegate)
assertTrue(module.networkConnectivityService is EmbraceNetworkConnectivityService)
assertTrue(module.deviceArchitecture is DeviceArchitectureImpl)
assertTrue(module.pendingApiCallsSender is EmbracePendingApiCallsSender)
}
@Test
fun testConfigServiceProvider() {
val fakeConfigService = FakeConfigService()
val initModule = InitModuleImpl()
val module = EssentialServiceModuleImpl(
initModule = initModule,
coreModule = FakeCoreModule(),
workerThreadModule = WorkerThreadModuleImpl(initModule),
systemServiceModule = FakeSystemServiceModule(),
androidServicesModule = FakeAndroidServicesModule(),
storageModule = FakeStorageModule(),
customAppId = null,
enableIntegrationTesting = false,
configServiceProvider = { fakeConfigService }
)
assertSame(fakeConfigService, module.configService)
}
}