Skip to content

Commit

Permalink
tests: replace logging implementation when unit testing EventsBuilder
Browse files Browse the repository at this point in the history
Fixes "Method d in android.util.Log not mocked"
  • Loading branch information
wzieba committed Jan 10, 2025
1 parent 3cc5f3e commit 62d05a1
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 8 deletions.
30 changes: 22 additions & 8 deletions parsely/src/main/java/com/parsely/parselyandroid/Log.kt
Original file line number Diff line number Diff line change
@@ -1,18 +1,32 @@
package com.parsely.parselyandroid

import android.util.Log
import android.util.Log as AndroidLog

internal object Log {
internal object AndroidLogWrapper : Log {

fun i(message: String) {
Log.i("Parsely", message)
override fun i(message: String) {
AndroidLog.i("Parsely", message)
}

fun d(message: String) {
Log.d("Parsely", message)
override fun d(message: String) {
AndroidLog.d("Parsely", message)
}

fun e(message: String, throwable: Throwable? = null) {
Log.e("Parsely", message, throwable)
override fun e(message: String, throwable: Throwable?) {
AndroidLog.e("Parsely", message, throwable)
}
}

internal interface Log {
fun i(message: String)
fun d(message: String)
fun e(message: String, throwable: Throwable?)

companion object {
var instance: Log = AndroidLogWrapper

fun i(message: String) = instance.i(message)
fun d(message: String) = instance.d(message)
fun e(message: String, throwable: Throwable? = null) = instance.e(message, throwable)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ internal class EventsBuilderTest {
TEST_SITE_ID,
clock
)
Log.instance = FakeLog
}

@Test
Expand Down
7 changes: 7 additions & 0 deletions parsely/src/test/java/com/parsely/parselyandroid/FakeLog.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.parsely.parselyandroid

internal object FakeLog : Log {
override fun i(message: String) = println(message)
override fun d(message: String) = println(message)
override fun e(message: String, throwable: Throwable?) = println(message + throwable?.message)
}

0 comments on commit 62d05a1

Please sign in to comment.