From 62d05a1d5d6030527f7b5c62dc0b30c761ce5abc Mon Sep 17 00:00:00 2001 From: Wojtek Zieba Date: Fri, 10 Jan 2025 15:41:10 +0100 Subject: [PATCH] tests: replace logging implementation when unit testing EventsBuilder Fixes "Method d in android.util.Log not mocked" --- .../java/com/parsely/parselyandroid/Log.kt | 30 ++++++++++++++----- .../parselyandroid/EventsBuilderTest.kt | 1 + .../com/parsely/parselyandroid/FakeLog.kt | 7 +++++ 3 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 parsely/src/test/java/com/parsely/parselyandroid/FakeLog.kt diff --git a/parsely/src/main/java/com/parsely/parselyandroid/Log.kt b/parsely/src/main/java/com/parsely/parselyandroid/Log.kt index 1640b5e..2e879b5 100644 --- a/parsely/src/main/java/com/parsely/parselyandroid/Log.kt +++ b/parsely/src/main/java/com/parsely/parselyandroid/Log.kt @@ -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) } } diff --git a/parsely/src/test/java/com/parsely/parselyandroid/EventsBuilderTest.kt b/parsely/src/test/java/com/parsely/parselyandroid/EventsBuilderTest.kt index cec50c7..f5ee6de 100644 --- a/parsely/src/test/java/com/parsely/parselyandroid/EventsBuilderTest.kt +++ b/parsely/src/test/java/com/parsely/parselyandroid/EventsBuilderTest.kt @@ -18,6 +18,7 @@ internal class EventsBuilderTest { TEST_SITE_ID, clock ) + Log.instance = FakeLog } @Test diff --git a/parsely/src/test/java/com/parsely/parselyandroid/FakeLog.kt b/parsely/src/test/java/com/parsely/parselyandroid/FakeLog.kt new file mode 100644 index 0000000..d149d09 --- /dev/null +++ b/parsely/src/test/java/com/parsely/parselyandroid/FakeLog.kt @@ -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) +}