Skip to content

Commit

Permalink
Create a clean instance of the mock server so function tests don't bl…
Browse files Browse the repository at this point in the history
…eed over
  • Loading branch information
bidetofevil committed Apr 3, 2024
1 parent cc1de2d commit d25f1e0
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import io.embrace.android.embracesdk.internal.TestServerResponse
import io.embrace.android.embracesdk.internal.serialization.EmbraceSerializer
import io.embrace.android.embracesdk.utils.BitmapFactory
import io.embrace.android.embracesdk.utils.JsonValidator
import logTestMessage
import okhttp3.mockwebserver.RecordedRequest
import org.junit.After
import org.junit.Assert.assertEquals
Expand All @@ -33,7 +34,6 @@ import java.nio.charset.StandardCharsets
import java.util.concurrent.CountDownLatch
import java.util.concurrent.TimeUnit
import java.util.zip.GZIPInputStream
import logTestMessage

/**
* The default Base test class, which all tests using TestServer should inherit from. This
Expand All @@ -43,9 +43,9 @@ import logTestMessage
internal open class BaseTest {

private lateinit var pendingApiCallsFilePath: String
private lateinit var testServer: TestServer
lateinit var mContext: EmbraceContext
protected val serializer = EmbraceSerializer()
private val testServer: TestServer = TestServer()
private var fileObserver: EmbraceFileObserver? = null
private val storageDir by lazy { File(mContext.filesDir, "embrace") }

Expand All @@ -57,6 +57,7 @@ internal open class BaseTest {
@Before
fun beforeEach() {
logTestMessage("Starting test server")
testServer = TestServer()
testServer.start(getDefaultNetworkResponses())

if (Looper.myLooper() == null) {
Expand Down Expand Up @@ -88,10 +89,14 @@ internal open class BaseTest {

@After
fun afterEach() {
logTestMessage("Stop Embrace")
Embrace.getImpl().stop()
// Purge mock server dispatcher queue first so no pending requests run
logTestMessage("Test run completed. Purging test server...")
testServer.stop()
logTestMessage("Stopping Embrace...")
Embrace.getImpl().stop()
logTestMessage("Stopping file monitoring....")
fileObserver?.stopWatching()
logTestMessage("Test case ended. Nothing should happen from this test case from this point forward.")
}

private fun clearCacheFolder() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package io.embrace.android.embracesdk.internal

import io.embrace.android.embracesdk.EmbraceEndpoint
import java.net.HttpURLConnection
import java.util.concurrent.TimeUnit
import okhttp3.mockwebserver.Dispatcher
import okhttp3.mockwebserver.MockResponse
import okhttp3.mockwebserver.MockWebServer
import okhttp3.mockwebserver.RecordedRequest
import java.net.HttpURLConnection
import java.util.concurrent.TimeUnit

/**
* Mock network response to be delivered when calling an endpoint.
Expand Down Expand Up @@ -38,6 +38,7 @@ public class TestServer {
}

public fun stop() {
mockWebServer.dispatcher.shutdown()
mockWebServer.shutdown()
}

Expand Down

0 comments on commit d25f1e0

Please sign in to comment.