From 476839845fe212e20618d197c9fd00c24fde8a43 Mon Sep 17 00:00:00 2001 From: Jamie Lynch Date: Wed, 13 Mar 2024 14:13:00 +0000 Subject: [PATCH] add ability to create v2 collator from module --- .../injection/ModuleInitBootstrapper.kt | 21 +++++++++-------- .../embracesdk/injection/SessionModule.kt | 23 +++++++++++++++---- .../embracesdk/internal/utils/Types.kt | 3 ++- .../session/message/PayloadFactoryImpl.kt | 23 ++++++++++--------- .../embracesdk/fakes/FakePayloadModule.kt | 17 ++++++++++++++ .../fakes/injection/FakeSessionModule.kt | 8 +++++-- .../session/PayloadFactoryBaTest.kt | 13 ++++++++++- .../session/PayloadFactorySessionTest.kt | 16 ++++++++++++- .../embracesdk/session/SessionHandlerTest.kt | 15 +++++++++++- .../session/SessionModuleImplTest.kt | 13 +++++++---- 10 files changed, 116 insertions(+), 36 deletions(-) create mode 100644 embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/FakePayloadModule.kt diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/ModuleInitBootstrapper.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/ModuleInitBootstrapper.kt index 1d4e76daf..a5c14c636 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/ModuleInitBootstrapper.kt +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/ModuleInitBootstrapper.kt @@ -394,6 +394,15 @@ internal class ModuleInitBootstrapper( ) } + payloadModule = init(PayloadModule::class) { + payloadModuleSupplier( + essentialServiceModule, + nativeModule, + openTelemetryModule, + sdkObservabilityModule + ) + } + sessionModule = init(SessionModule::class) { sessionModuleSupplier( initModule, @@ -408,7 +417,8 @@ internal class ModuleInitBootstrapper( customerLogModule, sdkObservabilityModule, workerThreadModule, - dataSourceModule + dataSourceModule, + payloadModule ) } @@ -426,15 +436,6 @@ internal class ModuleInitBootstrapper( ) } - payloadModule = init(PayloadModule::class) { - payloadModuleSupplier( - essentialServiceModule, - nativeModule, - openTelemetryModule, - sdkObservabilityModule - ) - } - postInit(CrashModule::class) { Thread.setDefaultUncaughtExceptionHandler(crashModule.automaticVerificationExceptionHandler) serviceRegistry.registerService(crashModule.crashService) diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/SessionModule.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/SessionModule.kt index c30d149ec..3977c9846 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/SessionModule.kt +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/SessionModule.kt @@ -6,8 +6,8 @@ import io.embrace.android.embracesdk.session.caching.PeriodicBackgroundActivityC import io.embrace.android.embracesdk.session.caching.PeriodicSessionCacher import io.embrace.android.embracesdk.session.message.PayloadFactory import io.embrace.android.embracesdk.session.message.PayloadFactoryImpl -import io.embrace.android.embracesdk.session.message.PayloadMessageCollator import io.embrace.android.embracesdk.session.message.V1PayloadMessageCollator +import io.embrace.android.embracesdk.session.message.V2PayloadMessageCollator import io.embrace.android.embracesdk.session.orchestrator.OrchestratorBoundaryDelegate import io.embrace.android.embracesdk.session.orchestrator.SessionOrchestrator import io.embrace.android.embracesdk.session.orchestrator.SessionOrchestratorImpl @@ -19,7 +19,8 @@ import io.embrace.android.embracesdk.worker.WorkerThreadModule internal interface SessionModule { val payloadFactory: PayloadFactory - val payloadMessageCollator: PayloadMessageCollator + val v1PayloadMessageCollator: V1PayloadMessageCollator + val v2PayloadMessageCollator: V2PayloadMessageCollator val sessionPropertiesService: SessionPropertiesService val sessionOrchestrator: SessionOrchestrator val periodicSessionCacher: PeriodicSessionCacher @@ -40,10 +41,11 @@ internal class SessionModuleImpl( customerLogModule: CustomerLogModule, sdkObservabilityModule: SdkObservabilityModule, workerThreadModule: WorkerThreadModule, - dataSourceModule: DataSourceModule + dataSourceModule: DataSourceModule, + payloadModule: PayloadModule ) : SessionModule { - override val payloadMessageCollator: PayloadMessageCollator by singleton { + override val v1PayloadMessageCollator: V1PayloadMessageCollator by singleton { V1PayloadMessageCollator( essentialServiceModule.configService, essentialServiceModule.metadataService, @@ -64,6 +66,13 @@ internal class SessionModuleImpl( ) } + override val v2PayloadMessageCollator: V2PayloadMessageCollator by singleton { + V2PayloadMessageCollator( + v1PayloadMessageCollator, + payloadModule.sessionEnvelopeSource + ) + } + override val sessionPropertiesService: SessionPropertiesService by singleton { EmbraceSessionPropertiesService( nativeModule.ndkService, @@ -90,7 +99,11 @@ internal class SessionModuleImpl( } override val payloadFactory: PayloadFactory by singleton { - PayloadFactoryImpl(payloadMessageCollator, essentialServiceModule.configService) + PayloadFactoryImpl( + v1PayloadMessageCollator, + v2PayloadMessageCollator, + essentialServiceModule.configService + ) } private val boundaryDelegate by singleton { diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/utils/Types.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/utils/Types.kt index 600c0eea4..3efaa9438 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/utils/Types.kt +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/utils/Types.kt @@ -210,7 +210,8 @@ internal typealias SessionModuleSupplier = ( customerLogModule: CustomerLogModule, sdkObservabilityModule: SdkObservabilityModule, workerThreadModule: WorkerThreadModule, - dataSourceModule: DataSourceModule + dataSourceModule: DataSourceModule, + payloadModule: PayloadModule ) -> SessionModule /** diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/session/message/PayloadFactoryImpl.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/session/message/PayloadFactoryImpl.kt index 5b4212cbe..9b668cbe0 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/session/message/PayloadFactoryImpl.kt +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/session/message/PayloadFactoryImpl.kt @@ -8,7 +8,8 @@ import io.embrace.android.embracesdk.session.lifecycle.ProcessState import io.embrace.android.embracesdk.session.orchestrator.SessionSnapshotType internal class PayloadFactoryImpl( - private val payloadMessageCollator: PayloadMessageCollator, + private val v1payloadMessageCollator: V1PayloadMessageCollator, + @Suppress("UnusedPrivateProperty") private val v2payloadMessageCollator: V2PayloadMessageCollator, private val configService: ConfigService ) : PayloadFactory { @@ -41,7 +42,7 @@ internal class PayloadFactoryImpl( } override fun startSessionWithManual(timestamp: Long): Session { - return payloadMessageCollator.buildInitialSession( + return v1payloadMessageCollator.buildInitialSession( InitialEnvelopeParams.SessionParams( false, LifeEventType.MANUAL, @@ -51,7 +52,7 @@ internal class PayloadFactoryImpl( } override fun endSessionWithManual(timestamp: Long, initial: Session): SessionMessage { - return payloadMessageCollator.buildFinalSessionMessage( + return v1payloadMessageCollator.buildFinalSessionMessage( FinalEnvelopeParams.SessionParams( initial = initial, endTime = timestamp, @@ -62,7 +63,7 @@ internal class PayloadFactoryImpl( } private fun startSessionWithState(timestamp: Long, coldStart: Boolean): Session { - return payloadMessageCollator.buildInitialSession( + return v1payloadMessageCollator.buildInitialSession( InitialEnvelopeParams.SessionParams( coldStart, LifeEventType.STATE, @@ -82,7 +83,7 @@ internal class PayloadFactoryImpl( coldStart -> timestamp else -> timestamp + 1 } - return payloadMessageCollator.buildInitialSession( + return v1payloadMessageCollator.buildInitialSession( InitialEnvelopeParams.BackgroundActivityParams( coldStart = coldStart, startType = LifeEventType.BKGND_STATE, @@ -92,7 +93,7 @@ internal class PayloadFactoryImpl( } private fun endSessionWithState(initial: Session, timestamp: Long): SessionMessage { - return payloadMessageCollator.buildFinalSessionMessage( + return v1payloadMessageCollator.buildFinalSessionMessage( FinalEnvelopeParams.SessionParams( initial = initial, endTime = timestamp, @@ -109,7 +110,7 @@ internal class PayloadFactoryImpl( // kept for backwards compat. the backend expects the start time to be 1 ms greater // than the adjacent session, and manually adjusts. - return payloadMessageCollator.buildFinalBackgroundActivityMessage( + return v1payloadMessageCollator.buildFinalBackgroundActivityMessage( FinalEnvelopeParams.BackgroundActivityParams( initial = initial, endTime = timestamp - 1, @@ -124,7 +125,7 @@ internal class PayloadFactoryImpl( timestamp: Long, crashId: String ): SessionMessage { - return payloadMessageCollator.buildFinalSessionMessage( + return v1payloadMessageCollator.buildFinalSessionMessage( FinalEnvelopeParams.SessionParams( initial = initial, endTime = timestamp, @@ -143,7 +144,7 @@ internal class PayloadFactoryImpl( if (!configService.isBackgroundActivityCaptureEnabled()) { return null } - return payloadMessageCollator.buildFinalBackgroundActivityMessage( + return v1payloadMessageCollator.buildFinalBackgroundActivityMessage( FinalEnvelopeParams.BackgroundActivityParams( initial = initial, endTime = timestamp, @@ -158,7 +159,7 @@ internal class PayloadFactoryImpl( * Called when the session is persisted every 2s to cache its state. */ private fun snapshotSession(initial: Session, timestamp: Long): SessionMessage { - return payloadMessageCollator.buildFinalSessionMessage( + return v1payloadMessageCollator.buildFinalSessionMessage( FinalEnvelopeParams.SessionParams( initial = initial, endTime = timestamp, @@ -172,7 +173,7 @@ internal class PayloadFactoryImpl( if (!configService.isBackgroundActivityCaptureEnabled()) { return null } - return payloadMessageCollator.buildFinalBackgroundActivityMessage( + return v1payloadMessageCollator.buildFinalBackgroundActivityMessage( FinalEnvelopeParams.BackgroundActivityParams( initial = initial, endTime = timestamp, diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/FakePayloadModule.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/FakePayloadModule.kt new file mode 100644 index 000000000..cb0a829fd --- /dev/null +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/FakePayloadModule.kt @@ -0,0 +1,17 @@ +package io.embrace.android.embracesdk.fakes + +import io.embrace.android.embracesdk.capture.envelope.LogEnvelopeSource +import io.embrace.android.embracesdk.capture.envelope.SessionEnvelopeSource +import io.embrace.android.embracesdk.injection.PayloadModule + +internal class FakePayloadModule : PayloadModule { + + override val sessionEnvelopeSource: SessionEnvelopeSource = SessionEnvelopeSource( + FakeEnvelopeMetadataSource(), + FakeEnvelopeResourceSource(), + FakeSessionPayloadSource() + ) + + override val logEnvelopeSource: LogEnvelopeSource + get() = TODO("Not yet implemented") +} diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/injection/FakeSessionModule.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/injection/FakeSessionModule.kt index ac3042b34..2548b34c3 100644 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/injection/FakeSessionModule.kt +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/injection/FakeSessionModule.kt @@ -8,7 +8,8 @@ import io.embrace.android.embracesdk.injection.SessionModule import io.embrace.android.embracesdk.session.caching.PeriodicBackgroundActivityCacher import io.embrace.android.embracesdk.session.caching.PeriodicSessionCacher import io.embrace.android.embracesdk.session.message.PayloadFactory -import io.embrace.android.embracesdk.session.message.PayloadMessageCollator +import io.embrace.android.embracesdk.session.message.V1PayloadMessageCollator +import io.embrace.android.embracesdk.session.message.V2PayloadMessageCollator import io.embrace.android.embracesdk.session.orchestrator.SessionOrchestrator import io.embrace.android.embracesdk.session.properties.SessionPropertiesService @@ -18,7 +19,10 @@ internal class FakeSessionModule( override val sessionOrchestrator: SessionOrchestrator = FakeSessionOrchestrator() ) : SessionModule { - override val payloadMessageCollator: PayloadMessageCollator + override val v1PayloadMessageCollator: V1PayloadMessageCollator + get() = TODO("Not yet implemented") + + override val v2PayloadMessageCollator: V2PayloadMessageCollator get() = TODO("Not yet implemented") override val periodicSessionCacher: PeriodicSessionCacher diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/PayloadFactoryBaTest.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/PayloadFactoryBaTest.kt index 954be8e93..0f1821d57 100644 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/PayloadFactoryBaTest.kt +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/PayloadFactoryBaTest.kt @@ -4,6 +4,7 @@ import io.embrace.android.embracesdk.FakeBreadcrumbService import io.embrace.android.embracesdk.FakeDeliveryService import io.embrace.android.embracesdk.FakeNdkService import io.embrace.android.embracesdk.FakeSessionPropertiesService +import io.embrace.android.embracesdk.capture.envelope.SessionEnvelopeSource import io.embrace.android.embracesdk.capture.metadata.MetadataService import io.embrace.android.embracesdk.capture.user.UserService import io.embrace.android.embracesdk.concurrency.BlockingScheduledExecutorService @@ -14,6 +15,8 @@ import io.embrace.android.embracesdk.event.LogMessageService import io.embrace.android.embracesdk.fakeBackgroundActivity import io.embrace.android.embracesdk.fakes.FakeClock import io.embrace.android.embracesdk.fakes.FakeConfigService +import io.embrace.android.embracesdk.fakes.FakeEnvelopeMetadataSource +import io.embrace.android.embracesdk.fakes.FakeEnvelopeResourceSource import io.embrace.android.embracesdk.fakes.FakeEventService import io.embrace.android.embracesdk.fakes.FakeInternalErrorService import io.embrace.android.embracesdk.fakes.FakeLogMessageService @@ -22,6 +25,7 @@ import io.embrace.android.embracesdk.fakes.FakePerformanceInfoService import io.embrace.android.embracesdk.fakes.FakePreferenceService import io.embrace.android.embracesdk.fakes.FakeProcessStateService import io.embrace.android.embracesdk.fakes.FakeSessionIdTracker +import io.embrace.android.embracesdk.fakes.FakeSessionPayloadSource import io.embrace.android.embracesdk.fakes.FakeStartupService import io.embrace.android.embracesdk.fakes.FakeThermalStatusService import io.embrace.android.embracesdk.fakes.FakeUserService @@ -35,6 +39,7 @@ import io.embrace.android.embracesdk.logging.InternalErrorService import io.embrace.android.embracesdk.session.lifecycle.ProcessState import io.embrace.android.embracesdk.session.message.PayloadFactoryImpl import io.embrace.android.embracesdk.session.message.V1PayloadMessageCollator +import io.embrace.android.embracesdk.session.message.V2PayloadMessageCollator import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import org.junit.Before @@ -171,7 +176,13 @@ internal class PayloadFactoryBaTest { FakeSessionPropertiesService(), FakeStartupService() ) - return PayloadFactoryImpl(collator, configService).apply { + val sessionEnvelopeSource = SessionEnvelopeSource( + metadataSource = FakeEnvelopeMetadataSource(), + resourceSource = FakeEnvelopeResourceSource(), + sessionPayloadSource = FakeSessionPayloadSource() + ) + val v2Collator = V2PayloadMessageCollator(collator, sessionEnvelopeSource) + return PayloadFactoryImpl(collator, v2Collator, configService).apply { if (createInitialSession) { startPayloadWithState(ProcessState.BACKGROUND, clock.now(), true) } diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/PayloadFactorySessionTest.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/PayloadFactorySessionTest.kt index 7c7e0a7cf..fe0147d3a 100644 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/PayloadFactorySessionTest.kt +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/PayloadFactorySessionTest.kt @@ -1,14 +1,20 @@ package io.embrace.android.embracesdk.session import io.embrace.android.embracesdk.FakeDeliveryService +import io.embrace.android.embracesdk.capture.envelope.SessionEnvelopeSource import io.embrace.android.embracesdk.fakes.FakeClock import io.embrace.android.embracesdk.fakes.FakeConfigService +import io.embrace.android.embracesdk.fakes.FakeEnvelopeMetadataSource +import io.embrace.android.embracesdk.fakes.FakeEnvelopeResourceSource import io.embrace.android.embracesdk.fakes.FakeProcessStateService +import io.embrace.android.embracesdk.fakes.FakeSessionPayloadSource import io.embrace.android.embracesdk.fakes.injection.FakeInitModule import io.embrace.android.embracesdk.internal.spans.SpanSink import io.embrace.android.embracesdk.session.lifecycle.ProcessState import io.embrace.android.embracesdk.session.message.PayloadFactory import io.embrace.android.embracesdk.session.message.PayloadFactoryImpl +import io.embrace.android.embracesdk.session.message.V1PayloadMessageCollator +import io.embrace.android.embracesdk.session.message.V2PayloadMessageCollator import io.mockk.clearAllMocks import io.mockk.mockk import io.mockk.mockkStatic @@ -84,6 +90,14 @@ internal class PayloadFactorySessionTest { isActivityInBackground: Boolean = true ) { processStateService.isInBackground = isActivityInBackground - service = PayloadFactoryImpl(mockk(relaxed = true), FakeConfigService()) + + val sessionEnvelopeSource = SessionEnvelopeSource( + metadataSource = FakeEnvelopeMetadataSource(), + resourceSource = FakeEnvelopeResourceSource(), + sessionPayloadSource = FakeSessionPayloadSource() + ) + val v1Collator = mockk(relaxed = true) + val v2Collator = V2PayloadMessageCollator(v1Collator, sessionEnvelopeSource) + service = PayloadFactoryImpl(v1Collator, v2Collator, FakeConfigService()) } } diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionHandlerTest.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionHandlerTest.kt index 22b106e12..3f8227e02 100644 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionHandlerTest.kt +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionHandlerTest.kt @@ -5,6 +5,7 @@ import io.embrace.android.embracesdk.FakeDeliveryService import io.embrace.android.embracesdk.FakeNdkService import io.embrace.android.embracesdk.FakeSessionPropertiesService import io.embrace.android.embracesdk.capture.PerformanceInfoService +import io.embrace.android.embracesdk.capture.envelope.SessionEnvelopeSource import io.embrace.android.embracesdk.capture.thermalstate.NoOpThermalStatusService import io.embrace.android.embracesdk.capture.webview.WebViewService import io.embrace.android.embracesdk.concurrency.BlockingScheduledExecutorService @@ -16,6 +17,8 @@ import io.embrace.android.embracesdk.event.EventService import io.embrace.android.embracesdk.event.LogMessageService import io.embrace.android.embracesdk.fakes.FakeClock import io.embrace.android.embracesdk.fakes.FakeConfigService +import io.embrace.android.embracesdk.fakes.FakeEnvelopeMetadataSource +import io.embrace.android.embracesdk.fakes.FakeEnvelopeResourceSource import io.embrace.android.embracesdk.fakes.FakeEventService import io.embrace.android.embracesdk.fakes.FakeGatingService import io.embrace.android.embracesdk.fakes.FakeLogMessageService @@ -25,6 +28,7 @@ import io.embrace.android.embracesdk.fakes.FakePerformanceInfoService import io.embrace.android.embracesdk.fakes.FakePreferenceService import io.embrace.android.embracesdk.fakes.FakeProcessStateService import io.embrace.android.embracesdk.fakes.FakeSessionIdTracker +import io.embrace.android.embracesdk.fakes.FakeSessionPayloadSource import io.embrace.android.embracesdk.fakes.FakeStartupService import io.embrace.android.embracesdk.fakes.FakeUserService import io.embrace.android.embracesdk.fakes.FakeWebViewService @@ -43,6 +47,7 @@ import io.embrace.android.embracesdk.session.lifecycle.ProcessState import io.embrace.android.embracesdk.session.message.PayloadFactory import io.embrace.android.embracesdk.session.message.PayloadFactoryImpl import io.embrace.android.embracesdk.session.message.V1PayloadMessageCollator +import io.embrace.android.embracesdk.session.message.V2PayloadMessageCollator import io.embrace.android.embracesdk.session.properties.EmbraceSessionProperties import io.embrace.android.embracesdk.worker.ScheduledWorker import io.mockk.clearAllMocks @@ -153,7 +158,15 @@ internal class SessionHandlerTest { FakeSessionPropertiesService(), FakeStartupService() ) - payloadFactory = PayloadFactoryImpl(payloadMessageCollator, configService) + val v2Collator = V2PayloadMessageCollator( + payloadMessageCollator, + SessionEnvelopeSource( + metadataSource = FakeEnvelopeMetadataSource(), + resourceSource = FakeEnvelopeResourceSource(), + sessionPayloadSource = FakeSessionPayloadSource() + ) + ) + payloadFactory = PayloadFactoryImpl(payloadMessageCollator, v2Collator, configService) } @After diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionModuleImplTest.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionModuleImplTest.kt index 5b17cce0f..56cc17e94 100644 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionModuleImplTest.kt +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionModuleImplTest.kt @@ -2,6 +2,7 @@ package io.embrace.android.embracesdk.session import io.embrace.android.embracesdk.fakes.FakeConfigService import io.embrace.android.embracesdk.fakes.FakeOpenTelemetryModule +import io.embrace.android.embracesdk.fakes.FakePayloadModule import io.embrace.android.embracesdk.fakes.fakeEmbraceSessionProperties import io.embrace.android.embracesdk.fakes.injection.FakeAndroidServicesModule import io.embrace.android.embracesdk.fakes.injection.FakeCustomerLogModule @@ -57,9 +58,11 @@ internal class SessionModuleImplTest { FakeCustomerLogModule(), FakeSdkObservabilityModule(), workerThreadModule, - dataSourceModule + dataSourceModule, + FakePayloadModule() ) - assertNotNull(module.payloadMessageCollator) + assertNotNull(module.v1PayloadMessageCollator) + assertNotNull(module.v2PayloadMessageCollator) assertNotNull(module.sessionPropertiesService) assertNotNull(module.payloadFactory) assertNotNull(module.sessionOrchestrator) @@ -93,9 +96,11 @@ internal class SessionModuleImplTest { FakeCustomerLogModule(), FakeSdkObservabilityModule(), workerThreadModule, - dataSourceModule + dataSourceModule, + FakePayloadModule() ) - assertNotNull(module.payloadMessageCollator) + assertNotNull(module.v1PayloadMessageCollator) + assertNotNull(module.v2PayloadMessageCollator) assertNotNull(module.sessionPropertiesService) assertNotNull(module.payloadFactory) assertNotNull(module.sessionOrchestrator)