Skip to content

Commit

Permalink
Merge pull request #1264 from embrace-io/move-test-code
Browse files Browse the repository at this point in the history
Move test code to core module
  • Loading branch information
fractalwrench authored Aug 19, 2024
2 parents 801fb81 + 21b88a0 commit b6c2b4a
Show file tree
Hide file tree
Showing 72 changed files with 237 additions and 272 deletions.
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
package io.embrace.android.embracesdk.comms.api
package io.embrace.android.embracesdk.internal.comms.api

import com.squareup.moshi.Types
import io.embrace.android.embracesdk.ResourceReader
import io.embrace.android.embracesdk.concurrency.BlockingScheduledExecutorService
import io.embrace.android.embracesdk.fakes.FakeApiClient
import io.embrace.android.embracesdk.fakes.FakeDeliveryCacheManager
import io.embrace.android.embracesdk.fakes.FakePendingApiCallsSender
import io.embrace.android.embracesdk.internal.TypeUtils
import io.embrace.android.embracesdk.internal.comms.api.ApiClient.Companion.NO_HTTP_RESPONSE
import io.embrace.android.embracesdk.internal.comms.api.ApiResponse
import io.embrace.android.embracesdk.internal.comms.api.ApiUrlBuilder
import io.embrace.android.embracesdk.internal.comms.api.CachedConfig
import io.embrace.android.embracesdk.internal.comms.api.EmbraceApiService
import io.embrace.android.embracesdk.internal.comms.api.EmbraceApiUrlBuilder
import io.embrace.android.embracesdk.internal.comms.api.Endpoint
import io.embrace.android.embracesdk.internal.comms.api.limiter
import io.embrace.android.embracesdk.internal.comms.delivery.DeliveryCacheManager
import io.embrace.android.embracesdk.internal.comms.delivery.NetworkStatus
import io.embrace.android.embracesdk.internal.compression.ConditionalGzipOutputStream
Expand Down Expand Up @@ -267,7 +260,7 @@ internal class EmbraceApiServiceTest {
fakeApiClient.queueResponse(successfulPostResponse)
apiService.sendLogEnvelope(logsEnvelope)

val type: ParameterizedType = Types.newParameterizedType(Envelope::class.java, LogPayload::class.java)
val type: ParameterizedType = TypeUtils.parameterizedType(Envelope::class, LogPayload::class)

verifyOnlyRequest(
expectedUrl = "https://a-$fakeAppId.data.emb-api.com/v2/logs",
Expand Down Expand Up @@ -301,7 +294,7 @@ internal class EmbraceApiServiceTest {
val request = fakePendingApiCallsSender.retryQueue.single().first
val payload = fakePendingApiCallsSender.retryQueue.single().second
assertEquals("https://a-$fakeAppId.data.emb-api.com/v2/logs", request.url.url)
val type: ParameterizedType = Types.newParameterizedType(Envelope::class.java, LogPayload::class.java)
val type: ParameterizedType = TypeUtils.parameterizedType(Envelope::class, LogPayload::class)
assertArrayEquals(getGenericsExpectedPayloadSerialized(logsEnvelope, type), payload)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
package io.embrace.android.embracesdk
package io.embrace.android.embracesdk.internal.comms.api

import io.embrace.android.embracesdk.fakes.fakeSdkEndpointBehavior
import io.embrace.android.embracesdk.internal.comms.api.ApiUrlBuilder
import io.embrace.android.embracesdk.internal.comms.api.EmbraceApiUrlBuilder
import io.embrace.android.embracesdk.internal.config.local.BaseUrlLocalConfig
import io.mockk.unmockkAll
import org.junit.After
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test

private const val APP_ID = "o0o0o"
private const val APP_VERSION_NAME = "1.0.0"
private const val DEVICE_ID = "07D85B44E4E245F4A30E559BFC0D07FF"

internal class EmbraceApiUrlBuilderTest {
private lateinit var apiUrlBuilder: ApiUrlBuilder

Expand Down Expand Up @@ -48,7 +50,3 @@ internal class EmbraceApiUrlBuilderTest {
)
}
}

private const val APP_ID = "o0o0o"
private const val APP_VERSION_NAME = "1.0.0"
private const val DEVICE_ID = "07D85B44E4E245F4A30E559BFC0D07FF"
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.embrace.android.embracesdk.comms.delivery
package io.embrace.android.embracesdk.internal.comms.delivery

import io.embrace.android.embracesdk.concurrency.ExecutionCoordinator
import io.embrace.android.embracesdk.fakes.FakeEmbLogger
Expand All @@ -8,7 +8,6 @@ import io.embrace.android.embracesdk.fixtures.testSessionEnvelope
import io.embrace.android.embracesdk.fixtures.testSessionEnvelope2
import io.embrace.android.embracesdk.fixtures.testSessionEnvelopeOneMinuteLater
import io.embrace.android.embracesdk.getSessionId
import io.embrace.android.embracesdk.internal.comms.delivery.EmbraceCacheService
import io.embrace.android.embracesdk.internal.payload.Envelope
import io.embrace.android.embracesdk.internal.payload.SessionPayload
import org.junit.Assert.assertEquals
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.embrace.android.embracesdk.comms.delivery
package io.embrace.android.embracesdk.internal.comms.delivery

import com.google.common.util.concurrent.MoreExecutors
import io.embrace.android.embracesdk.assertions.assertEmbraceSpanData
Expand All @@ -20,10 +20,6 @@ import io.embrace.android.embracesdk.getSessionId
import io.embrace.android.embracesdk.getStartTime
import io.embrace.android.embracesdk.internal.arch.schema.EmbType
import io.embrace.android.embracesdk.internal.clock.nanosToMillis
import io.embrace.android.embracesdk.internal.comms.delivery.CachedSession
import io.embrace.android.embracesdk.internal.comms.delivery.EmbraceCacheService
import io.embrace.android.embracesdk.internal.comms.delivery.EmbraceDeliveryCacheManager
import io.embrace.android.embracesdk.internal.comms.delivery.EmbraceDeliveryService
import io.embrace.android.embracesdk.internal.logging.EmbLogger
import io.embrace.android.embracesdk.internal.logging.EmbLoggerImpl
import io.embrace.android.embracesdk.internal.opentelemetry.embCrashId
Expand Down Expand Up @@ -250,7 +246,12 @@ internal class EmbraceDeliveryServiceTest {
deliveryService.sendCachedSessions({ fakeNativeCrashService }, sessionIdTracker)
assertTrue(apiService.sessionRequests.isEmpty())
val transformedSession =
checkNotNull(cacheService.loadObject<Envelope<SessionPayload>>(sessionWithSnapshotFileName, Envelope.sessionEnvelopeType))
checkNotNull(
cacheService.loadObject<Envelope<SessionPayload>>(
sessionWithSnapshotFileName,
Envelope.sessionEnvelopeType
)
)
assertEquals(3, transformedSession.data.spans?.size)
assertEquals(0, transformedSession.data.spanSnapshots?.size)
}
Expand All @@ -274,7 +275,12 @@ internal class EmbraceDeliveryServiceTest {
deliveryService.sendCachedSessions({ fakeNativeCrashService }, sessionIdTracker)
assertTrue(apiService.sessionRequests.isEmpty())
val transformedSession =
checkNotNull(cacheService.loadObject<Envelope<SessionPayload>>(sessionWithSnapshotFileName, Envelope.sessionEnvelopeType))
checkNotNull(
cacheService.loadObject<Envelope<SessionPayload>>(
sessionWithSnapshotFileName,
Envelope.sessionEnvelopeType
)
)
val attrs = checkNotNull(transformedSession.getSessionSpan()?.attributes)
assertEquals("my-crash-id", attrs.findAttributeValue(embCrashId.name))
assertEquals(3, transformedSession.data.spans?.size)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package io.embrace.android.embracesdk
package io.embrace.android.embracesdk.internal.config

import io.embrace.android.embracesdk.fakes.FakeLogRecordExporter
import io.embrace.android.embracesdk.internal.SystemInfo
import io.embrace.android.embracesdk.internal.config.LocalConfigParser
import io.embrace.android.embracesdk.internal.logging.EmbLoggerImpl
import io.embrace.android.embracesdk.internal.logs.LogSinkImpl
import io.embrace.android.embracesdk.internal.opentelemetry.OpenTelemetryConfiguration
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.embrace.android.embracesdk.event.gating
package io.embrace.android.embracesdk.internal.event.gating

import io.embrace.android.embracesdk.fakes.FakeConfigService
import io.embrace.android.embracesdk.fakes.FakeLogService
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.embrace.android.embracesdk.event.gating
package io.embrace.android.embracesdk.internal.event.gating

import io.embrace.android.embracesdk.LogExceptionType
import io.embrace.android.embracesdk.internal.gating.EventSanitizerFacade
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.embrace.android.embracesdk.event.gating
package io.embrace.android.embracesdk.internal.event.gating

import io.embrace.android.embracesdk.LogExceptionType
import io.embrace.android.embracesdk.internal.gating.EventSanitizer
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.embrace.android.embracesdk.event.gating
package io.embrace.android.embracesdk.internal.event.gating

import io.embrace.android.embracesdk.fakes.fakeSessionEnvelope
import io.embrace.android.embracesdk.internal.gating.SessionGatingKeys
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.embrace.android.embracesdk.event.gating
package io.embrace.android.embracesdk.internal.event.gating

import io.embrace.android.embracesdk.internal.gating.SessionGatingKeys.USER_PERSONAS
import io.embrace.android.embracesdk.internal.gating.UserInfoSanitizer
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package io.embrace.android.embracesdk.injection
package io.embrace.android.embracesdk.internal.injection

import io.embrace.android.embracesdk.fakes.FakeApiService
import io.embrace.android.embracesdk.fakes.injection.FakeInitModule
import io.embrace.android.embracesdk.fakes.injection.FakeStorageModule
import io.embrace.android.embracesdk.fakes.injection.FakeWorkerThreadModule
import io.embrace.android.embracesdk.internal.injection.createDeliveryModule
import org.junit.Assert.assertNotNull
import org.junit.Test

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ import io.embrace.android.embracesdk.internal.worker.BackgroundWorker
import io.opentelemetry.api.logs.Severity
import io.opentelemetry.semconv.ExceptionAttributes
import io.opentelemetry.semconv.incubating.LogIncubatingAttributes
import org.junit.Assert
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotEquals
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Test
Expand Down Expand Up @@ -81,7 +81,9 @@ internal class EmbraceLogServiceTest {
// then the telemetry attributes are set correctly
val log = fakeLogWriter.logEvents.single()
assertEquals("someValue", log.schemaType.attributes()["emb.properties.someProperty"])
assertTrue(log.schemaType.attributes().containsKey(LogIncubatingAttributes.LOG_RECORD_UID.key))
assertTrue(
log.schemaType.attributes().containsKey(LogIncubatingAttributes.LOG_RECORD_UID.key)
)
}

@Test
Expand All @@ -95,7 +97,10 @@ internal class EmbraceLogServiceTest {
)

val log = fakeLogWriter.logEvents.single()
assertNotEquals("fakeUid", log.schemaType.attributes()[LogIncubatingAttributes.LOG_RECORD_UID.key])
assertNotEquals(
"fakeUid",
log.schemaType.attributes()[LogIncubatingAttributes.LOG_RECORD_UID.key]
)
}

@Test
Expand Down Expand Up @@ -212,7 +217,11 @@ internal class EmbraceLogServiceTest {

// when logging a message that exceeds the Unity maximum allowed length
val unityMaxAllowedLength = 16384
logService.log("a".repeat(unityMaxAllowedLength + 1), EventType.INFO_LOG, LogExceptionType.NONE)
logService.log(
"a".repeat(unityMaxAllowedLength + 1),
EventType.INFO_LOG,
LogExceptionType.NONE
)

// then the message is trimmed
val anotherLog = fakeLogWriter.logEvents[1]
Expand Down Expand Up @@ -281,10 +290,19 @@ internal class EmbraceLogServiceTest {
val log = fakeLogWriter.logEvents.single()
assertEquals(message, log.message)
assertEquals(Severity.WARN, log.severity)
assertNotNull(log.schemaType.attributes()[LogIncubatingAttributes.LOG_RECORD_UID.key])
assertEquals(LogExceptionType.HANDLED.value, log.schemaType.attributes()[embExceptionHandling.name])
assertEquals(exception.javaClass.simpleName, log.schemaType.attributes()[ExceptionAttributes.EXCEPTION_TYPE.key])
assertEquals(exception.message, log.schemaType.attributes()[ExceptionAttributes.EXCEPTION_MESSAGE.key])
Assert.assertNotNull(log.schemaType.attributes()[LogIncubatingAttributes.LOG_RECORD_UID.key])
assertEquals(
LogExceptionType.HANDLED.value,
log.schemaType.attributes()[embExceptionHandling.name]
)
assertEquals(
exception.javaClass.simpleName,
log.schemaType.attributes()[ExceptionAttributes.EXCEPTION_TYPE.key]
)
assertEquals(
exception.message,
log.schemaType.attributes()[ExceptionAttributes.EXCEPTION_MESSAGE.key]
)
log.assertIsType(EmbType.System.Exception)
}

Expand Down Expand Up @@ -314,12 +332,27 @@ internal class EmbraceLogServiceTest {
val log = fakeLogWriter.logEvents.single()
assertEquals(flutterMessage, log.message)
assertEquals(Severity.ERROR, log.severity)
assertNotNull(log.schemaType.attributes()[LogIncubatingAttributes.LOG_RECORD_UID.key])
assertEquals(LogExceptionType.HANDLED.value, log.schemaType.attributes()[embExceptionHandling.name])
assertEquals(flutterException.javaClass.simpleName, log.schemaType.attributes()[ExceptionAttributes.EXCEPTION_TYPE.key])
assertEquals(flutterException.message, log.schemaType.attributes()[ExceptionAttributes.EXCEPTION_MESSAGE.key])
assertEquals(flutterContext, log.schemaType.attributes()[EmbType.System.FlutterException.embFlutterExceptionContext.name])
assertEquals(flutterLibrary, log.schemaType.attributes()[EmbType.System.FlutterException.embFlutterExceptionLibrary.name])
Assert.assertNotNull(log.schemaType.attributes()[LogIncubatingAttributes.LOG_RECORD_UID.key])
assertEquals(
LogExceptionType.HANDLED.value,
log.schemaType.attributes()[embExceptionHandling.name]
)
assertEquals(
flutterException.javaClass.simpleName,
log.schemaType.attributes()[ExceptionAttributes.EXCEPTION_TYPE.key]
)
assertEquals(
flutterException.message,
log.schemaType.attributes()[ExceptionAttributes.EXCEPTION_MESSAGE.key]
)
assertEquals(
flutterContext,
log.schemaType.attributes()[EmbType.System.FlutterException.embFlutterExceptionContext.name]
)
assertEquals(
flutterLibrary,
log.schemaType.attributes()[EmbType.System.FlutterException.embFlutterExceptionLibrary.name]
)
log.assertIsType(EmbType.System.FlutterException)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.embrace.android.embracesdk.storage
package io.embrace.android.embracesdk.internal.storage

import io.embrace.android.embracesdk.fakes.FakeEmbLogger
import io.embrace.android.embracesdk.fakes.FakeStorageService
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.embrace.android.embracesdk.storage
package io.embrace.android.embracesdk.internal.storage

import io.embrace.android.embracesdk.concurrency.SingleThreadTestScheduledExecutor
import io.embrace.android.embracesdk.fakes.FakeClock
Expand All @@ -10,7 +10,6 @@ import io.embrace.android.embracesdk.internal.logging.EmbLogger
import io.embrace.android.embracesdk.internal.logging.EmbLoggerImpl
import io.embrace.android.embracesdk.internal.serialization.EmbraceSerializer
import io.embrace.android.embracesdk.internal.session.orchestrator.SessionSnapshotType
import io.embrace.android.embracesdk.internal.storage.StorageService
import io.embrace.android.embracesdk.internal.worker.BackgroundWorker
import io.mockk.clearAllMocks
import io.mockk.spyk
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.embrace.android.embracesdk.storage
package io.embrace.android.embracesdk.internal.storage

import com.google.common.util.concurrent.MoreExecutors
import io.embrace.android.embracesdk.fakes.FakeClock
Expand All @@ -21,7 +21,6 @@ import io.embrace.android.embracesdk.internal.serialization.EmbraceSerializer
import io.embrace.android.embracesdk.internal.session.orchestrator.SessionSnapshotType.JVM_CRASH
import io.embrace.android.embracesdk.internal.session.orchestrator.SessionSnapshotType.NORMAL_END
import io.embrace.android.embracesdk.internal.session.orchestrator.SessionSnapshotType.PERIODIC_CACHE
import io.embrace.android.embracesdk.internal.storage.StorageService
import io.embrace.android.embracesdk.internal.worker.BackgroundWorker
import io.embrace.android.embracesdk.network.http.HttpMethod
import io.mockk.clearAllMocks
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package io.embrace.android.embracesdk.storage
package io.embrace.android.embracesdk.internal.storage

import android.content.Context
import io.embrace.android.embracesdk.fakes.FakeTelemetryService
import io.embrace.android.embracesdk.internal.storage.EmbraceStorageService
import io.mockk.every
import io.mockk.mockk
import org.junit.Assert.assertEquals
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
package io.embrace.android.embracesdk.storage

import io.embrace.android.embracesdk.internal.storage.StorageAvailabilityChecker
package io.embrace.android.embracesdk.internal.storage

internal class FakeStorageAvailabilityChecker : StorageAvailabilityChecker {
override fun getAvailableBytes(): Long {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import io.embrace.android.embracesdk.concurrency.BlockingScheduledExecutorServic
import io.embrace.android.embracesdk.fakes.FakeClock
import io.embrace.android.embracesdk.fakes.FakeConfigService
import io.embrace.android.embracesdk.fakes.FakeOpenTelemetryModule
import io.embrace.android.embracesdk.fakes.injection.FakeEssentialServiceModule
import io.embrace.android.embracesdk.fakes.injection.FakeInitModule
import io.embrace.android.embracesdk.fakes.injection.FakeWorkerThreadModule
import io.embrace.android.embracesdk.internal.anr.detection.BlockedThreadDetector
Expand Down
Loading

0 comments on commit b6c2b4a

Please sign in to comment.