From 727e3bc877b3aff54ce1cd27ed7c17aa3cf84b94 Mon Sep 17 00:00:00 2001 From: Josh Kasten Date: Sat, 24 Feb 2024 02:10:40 -0500 Subject: [PATCH 1/2] upgrade to junit5 and latest Kotest JUnit 5 supports better test result output with Kotest and number of other features. JUnit 4 is not get any new features, and at this point probably only gets security fixes. --- OneSignalSDK/build.gradle | 2 +- OneSignalSDK/onesignal/core/build.gradle | 9 ++++++--- .../com/onesignal/common/JSONObjectExtensionsTest.kt | 3 --- .../src/test/java/com/onesignal/common/ModelingTests.kt | 8 ++------ .../core/internal/application/ApplicationServiceTests.kt | 3 --- .../onesignal/core/internal/database/OSDatabaseTests.kt | 3 --- .../com/onesignal/core/internal/http/HttpClientTests.kt | 3 --- .../core/internal/operations/OperationRepoTests.kt | 3 --- .../core/internal/preferences/PreferencesServiceTests.kt | 3 --- .../core/internal/startup/StartupServiceTests.kt | 3 --- .../java/com/onesignal/internal/OneSignalImpTests.kt | 3 --- .../java/com/onesignal/selftest/JSONObjectEnvTest.kt | 4 ---- .../session/internal/influence/InfluenceManagerTests.kt | 3 --- .../outcomes/OutcomeEventsBackendServiceTests.kt | 3 --- .../internal/outcomes/OutcomeEventsControllerTests.kt | 3 --- .../internal/outcomes/OutcomeEventsRepositoryTests.kt | 3 --- .../session/internal/session/SessionServiceTests.kt | 3 --- .../java/com/onesignal/user/internal/UserManagerTests.kt | 3 --- .../user/internal/backend/IdentityBackendServiceTests.kt | 3 --- .../internal/backend/SubscriptionBackendServiceTests.kt | 3 --- .../user/internal/backend/UserBackendServiceTests.kt | 3 --- .../operations/IdentityOperationExecutorTests.kt | 3 --- .../operations/LoginUserOperationExecutorTests.kt | 3 --- .../operations/RefreshUserOperationExecutorTests.kt | 3 --- .../operations/SubscriptionOperationExecutorTests.kt | 3 --- .../operations/UpdateUserOperationExecutorTests.kt | 3 --- .../user/internal/properties/PropertiesModelTests.kt | 3 --- .../internal/subscriptions/SubscriptionManagerTests.kt | 3 --- OneSignalSDK/onesignal/in-app-messages/build.gradle | 9 ++++++--- .../inAppMessages/internal/InAppMessagesManagerTests.kt | 3 --- .../internal/backend/InAppBackendServiceTests.kt | 3 --- .../internal/preview/InAppMessagePreviewHandlerTests.kt | 3 --- .../internal/repositories/InAppRepositoryTests.kt | 3 --- OneSignalSDK/onesignal/location/build.gradle | 9 ++++++--- .../background/LocationBackgroundServiceTests.kt | 3 --- .../location/internal/capture/LocationCapturerTests.kt | 3 --- .../internal/controller/GmsLocationControllerTests.kt | 3 --- .../permissions/LocationPermissionControllerTests.kt | 3 --- OneSignalSDK/onesignal/notifications/build.gradle | 9 ++++++--- .../internal/backend/NotificationBackendServiceTests.kt | 3 --- .../internal/channels/NotificationChannelManagerTests.kt | 3 --- .../generation/NotificationGenerationProcessorTests.kt | 3 --- .../internal/limiting/NotificationLimitManagerTests.kt | 3 --- .../internal/pushtoken/PushTokenManagerTests.kt | 3 --- .../internal/summary/NotificationSummaryManagerTests.kt | 3 --- 45 files changed, 27 insertions(+), 137 deletions(-) diff --git a/OneSignalSDK/build.gradle b/OneSignalSDK/build.gradle index 97b367dfc..0b5d836e0 100644 --- a/OneSignalSDK/build.gradle +++ b/OneSignalSDK/build.gradle @@ -14,7 +14,7 @@ buildscript { huaweiHMSPushVersion = '6.3.0.304' huaweiHMSLocationVersion = '4.0.0.300' kotlinVersion = '1.7.10' - kotestVersion = '5.5.0' + kotestVersion = '5.8.0' ktlintPluginVersion = '11.6.1' ktlintVersion = '1.0.1' junitVersion = '4.13.2' diff --git a/OneSignalSDK/onesignal/core/build.gradle b/OneSignalSDK/onesignal/core/build.gradle index ade74e593..b7987587c 100644 --- a/OneSignalSDK/onesignal/core/build.gradle +++ b/OneSignalSDK/onesignal/core/build.gradle @@ -32,6 +32,9 @@ android { unitTests { includeAndroidResources = true } + unitTests.all { + it.useJUnitPlatform() + } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 @@ -79,9 +82,9 @@ dependencies { } testImplementation(project(':OneSignal:testhelpers')) - testImplementation("junit:junit:$junitVersion") - testImplementation("io.kotest:kotest-runner-junit4:$kotestVersion") - testImplementation("io.kotest:kotest-runner-junit4-jvm:$kotestVersion") + + testImplementation("io.kotest:kotest-runner-junit5:$kotestVersion") + testImplementation("io.kotest:kotest-runner-junit5-jvm:$kotestVersion") testImplementation("io.kotest:kotest-assertions-core:$kotestVersion") testImplementation("io.kotest:kotest-property:$kotestVersion") testImplementation("org.robolectric:robolectric:4.8.1") diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/common/JSONObjectExtensionsTest.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/common/JSONObjectExtensionsTest.kt index 8328aad88..278c16e94 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/common/JSONObjectExtensionsTest.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/common/JSONObjectExtensionsTest.kt @@ -2,14 +2,11 @@ package com.onesignal.common import io.kotest.core.spec.style.DescribeSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.mockkStatic import io.mockk.verify import org.json.JSONArray import org.json.JSONObject -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class JSONObjectExtensionsTest : DescribeSpec({ describe("toMap") { // Some org.json JVM libraries define their own toMap. We want to diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/common/ModelingTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/common/ModelingTests.kt index bc3a3d942..3883fdc87 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/common/ModelingTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/common/ModelingTests.kt @@ -10,11 +10,7 @@ import com.onesignal.user.internal.subscriptions.SubscriptionModel import com.onesignal.user.internal.subscriptions.SubscriptionModelStore import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner -import junit.framework.TestCase -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class ModelingTests : FunSpec({ test("Deadlock related to Model.setOptAnyProperty") { @@ -55,7 +51,7 @@ class ModelingTests : FunSpec({ t2.join(1000) // verify if the thread has been successfully terminated - TestCase.assertEquals(Thread.State.TERMINATED, t2.state) + t2.state shouldBe Thread.State.TERMINATED } test("Deadlock related to ModelSstore add() or remove()") { @@ -113,7 +109,7 @@ class ModelingTests : FunSpec({ t2.join(1000) // verify if the thread has been successfully terminated - TestCase.assertEquals(Thread.State.TERMINATED, t2.state) + t2.state shouldBe Thread.State.TERMINATED } test("Unsubscribing handler in change event may cause the concurrent modification exception") { diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/application/ApplicationServiceTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/application/ApplicationServiceTests.kt index 8408df863..f9509c93a 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/application/ApplicationServiceTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/application/ApplicationServiceTests.kt @@ -11,15 +11,12 @@ import com.onesignal.debug.internal.logging.Logging import com.onesignal.testhelpers.extensions.RobolectricTest import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.spyk import io.mockk.verify import kotlinx.coroutines.delay -import org.junit.runner.RunWith import org.robolectric.Robolectric @RobolectricTest -@RunWith(KotestTestRunner::class) class ApplicationServiceTests : FunSpec({ beforeAny { diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/database/OSDatabaseTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/database/OSDatabaseTests.kt index 0500ba704..88ee9a08d 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/database/OSDatabaseTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/database/OSDatabaseTests.kt @@ -10,12 +10,9 @@ import com.onesignal.session.internal.outcomes.impl.OutcomeTableProvider import com.onesignal.testhelpers.extensions.RobolectricTest import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.mockk -import org.junit.runner.RunWith @RobolectricTest -@RunWith(KotestTestRunner::class) class OSDatabaseTests : FunSpec({ beforeAny { diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/http/HttpClientTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/http/HttpClientTests.kt index 3b0a569e1..24d83d2bc 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/http/HttpClientTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/http/HttpClientTests.kt @@ -11,12 +11,9 @@ import io.kotest.matchers.should import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldNotBe import io.kotest.matchers.types.beInstanceOf -import io.kotest.runner.junit4.KotestTestRunner import kotlinx.coroutines.TimeoutCancellationException import org.json.JSONObject -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class HttpClientTests : FunSpec({ beforeAny { diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/operations/OperationRepoTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/operations/OperationRepoTests.kt index c1d78dca1..51746c1a6 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/operations/OperationRepoTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/operations/OperationRepoTests.kt @@ -8,7 +8,6 @@ import com.onesignal.debug.internal.logging.Logging import com.onesignal.mocks.MockHelper import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.CapturingSlot import io.mockk.coEvery import io.mockk.coVerifyOrder @@ -17,9 +16,7 @@ import io.mockk.just import io.mockk.mockk import io.mockk.runs import io.mockk.slot -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class OperationRepoTests : FunSpec({ beforeAny { diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/preferences/PreferencesServiceTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/preferences/PreferencesServiceTests.kt index d1fdb5d13..6eab29d57 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/preferences/PreferencesServiceTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/preferences/PreferencesServiceTests.kt @@ -11,12 +11,9 @@ import com.onesignal.testhelpers.extensions.RobolectricTest import io.kotest.assertions.throwables.shouldThrowUnit import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import kotlinx.coroutines.delay -import org.junit.runner.RunWith @RobolectricTest -@RunWith(KotestTestRunner::class) class PreferencesServiceTests : FunSpec({ val mockPrefStoreName = PreferenceStores.ONESIGNAL val mockBoolPrefStoreKey = "mock-bool" diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/startup/StartupServiceTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/startup/StartupServiceTests.kt index 0fd44cf2b..71e72de07 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/startup/StartupServiceTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/startup/StartupServiceTests.kt @@ -5,14 +5,11 @@ import com.onesignal.debug.internal.logging.Logging import io.kotest.assertions.throwables.shouldThrowUnit import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.every import io.mockk.mockk import io.mockk.spyk import io.mockk.verify -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class StartupServiceTests : FunSpec({ beforeAny { diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/internal/OneSignalImpTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/internal/OneSignalImpTests.kt index 2f855a51d..420d67e6f 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/internal/OneSignalImpTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/internal/OneSignalImpTests.kt @@ -5,10 +5,7 @@ import com.onesignal.debug.internal.logging.Logging import io.kotest.assertions.throwables.shouldThrowUnit import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class OneSignalImpTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/selftest/JSONObjectEnvTest.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/selftest/JSONObjectEnvTest.kt index a3497f9a8..a0849c781 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/selftest/JSONObjectEnvTest.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/selftest/JSONObjectEnvTest.kt @@ -5,9 +5,7 @@ import com.onesignal.testhelpers.extensions.RobolectricTest import io.kotest.core.spec.style.FunSpec import io.kotest.core.spec.style.funSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import org.json.JSONObject -import org.junit.runner.RunWith /** * This purpose of this file is to ensure org.json classes being used in @@ -29,7 +27,6 @@ val keyAOSPBehavior = } @RobolectricTest -@RunWith(KotestTestRunner::class) class JSONObjectRobolectricEnvTest : FunSpec({ test("ensure our src JSON Kotlin extension methods work with @RobolectricTest") { val test = JSONObject() @@ -41,7 +38,6 @@ class JSONObjectRobolectricEnvTest : FunSpec({ include(keyAOSPBehavior) }) -@RunWith(KotestTestRunner::class) class JSONObjectJVMEnvTest : FunSpec({ include(keyAOSPBehavior) }) diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/influence/InfluenceManagerTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/influence/InfluenceManagerTests.kt index c315b562e..4643ea023 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/influence/InfluenceManagerTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/influence/InfluenceManagerTests.kt @@ -9,14 +9,11 @@ import com.onesignal.session.internal.session.ISessionService import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldNotBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.Runs import io.mockk.every import io.mockk.just import io.mockk.mockk -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class InfluenceManagerTests : FunSpec({ test("default are disabled influences") { diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/outcomes/OutcomeEventsBackendServiceTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/outcomes/OutcomeEventsBackendServiceTests.kt index baf3cea4b..02c9eb2c0 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/outcomes/OutcomeEventsBackendServiceTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/outcomes/OutcomeEventsBackendServiceTests.kt @@ -11,13 +11,10 @@ import com.onesignal.session.internal.outcomes.impl.OutcomeEventsBackendService import io.kotest.assertions.throwables.shouldThrowUnit import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.mockk -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class OutcomeEventsBackendServiceTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/outcomes/OutcomeEventsControllerTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/outcomes/OutcomeEventsControllerTests.kt index 0242cfa3f..a4d9d14a8 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/outcomes/OutcomeEventsControllerTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/outcomes/OutcomeEventsControllerTests.kt @@ -23,7 +23,6 @@ import com.onesignal.user.internal.subscriptions.SubscriptionModel import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldNotBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.Runs import io.mockk.coEvery import io.mockk.coVerify @@ -35,9 +34,7 @@ import io.mockk.runs import io.mockk.spyk import kotlinx.coroutines.delay import org.json.JSONArray -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class OutcomeEventsControllerTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/outcomes/OutcomeEventsRepositoryTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/outcomes/OutcomeEventsRepositoryTests.kt index efede32e7..a25d4ac01 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/outcomes/OutcomeEventsRepositoryTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/outcomes/OutcomeEventsRepositoryTests.kt @@ -16,15 +16,12 @@ import com.onesignal.testhelpers.extensions.RobolectricTest import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldNotBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.verify import io.mockk.verifyAll import io.mockk.verifySequence import org.json.JSONArray -import org.junit.runner.RunWith @RobolectricTest -@RunWith(KotestTestRunner::class) class OutcomeEventsRepositoryTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/session/SessionServiceTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/session/SessionServiceTests.kt index 1bf1479d2..f1d3a1e1e 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/session/SessionServiceTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/session/SessionServiceTests.kt @@ -4,12 +4,9 @@ import com.onesignal.mocks.MockHelper import com.onesignal.session.internal.session.impl.SessionService import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.spyk import io.mockk.verify -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class SessionServiceTests : FunSpec({ test("session created on focus when current session invalid") { diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/UserManagerTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/UserManagerTests.kt index 504d397de..41e836eb9 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/UserManagerTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/UserManagerTests.kt @@ -7,16 +7,13 @@ import com.onesignal.user.internal.subscriptions.SubscriptionList import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldNotBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.every import io.mockk.just import io.mockk.mockk import io.mockk.runs import io.mockk.slot import io.mockk.verify -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class UserManagerTests : FunSpec({ test("language is backed by the language context") { diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/backend/IdentityBackendServiceTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/backend/IdentityBackendServiceTests.kt index 622722fcc..d66ee47eb 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/backend/IdentityBackendServiceTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/backend/IdentityBackendServiceTests.kt @@ -7,13 +7,10 @@ import com.onesignal.debug.internal.logging.Logging import com.onesignal.user.internal.backend.impl.IdentityBackendService import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.mockk -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class IdentityBackendServiceTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/backend/SubscriptionBackendServiceTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/backend/SubscriptionBackendServiceTests.kt index e98293db4..92cf55947 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/backend/SubscriptionBackendServiceTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/backend/SubscriptionBackendServiceTests.kt @@ -10,15 +10,12 @@ import com.onesignal.user.internal.subscriptions.SubscriptionStatus import io.kotest.assertions.throwables.shouldThrowUnit import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.mockk -import org.junit.runner.RunWith // WARNING: Adding @RobolectricTest will cause JSONObject.map() to stop working // at runtime. -@RunWith(KotestTestRunner::class) class SubscriptionBackendServiceTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/backend/UserBackendServiceTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/backend/UserBackendServiceTests.kt index 976ec9eb1..f8b583935 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/backend/UserBackendServiceTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/backend/UserBackendServiceTests.kt @@ -9,14 +9,11 @@ import com.onesignal.user.internal.backend.impl.UserBackendService import io.kotest.assertions.throwables.shouldThrowUnit import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.mockk -import org.junit.runner.RunWith import java.math.BigDecimal -@RunWith(KotestTestRunner::class) class UserBackendServiceTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/IdentityOperationExecutorTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/IdentityOperationExecutorTests.kt index 1add38f1b..4721945a8 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/IdentityOperationExecutorTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/IdentityOperationExecutorTests.kt @@ -13,7 +13,6 @@ import com.onesignal.user.internal.identity.IdentityModelStore import com.onesignal.user.internal.operations.impl.executors.IdentityOperationExecutor import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.every @@ -21,9 +20,7 @@ import io.mockk.just import io.mockk.mockk import io.mockk.runs import io.mockk.verify -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class IdentityOperationExecutorTests : FunSpec({ test("execution of set alias operation") { diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/LoginUserOperationExecutorTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/LoginUserOperationExecutorTests.kt index 1a3b9fc3c..25118c53b 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/LoginUserOperationExecutorTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/LoginUserOperationExecutorTests.kt @@ -25,15 +25,12 @@ import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.collections.shouldBeOneOf import io.kotest.matchers.shouldBe import io.kotest.matchers.types.shouldBeInstanceOf -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.every import io.mockk.mockk -import org.junit.runner.RunWith @RobolectricTest -@RunWith(KotestTestRunner::class) class LoginUserOperationExecutorTests : FunSpec({ val appId = "appId" val localOneSignalId = "local-onesignalId" diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/RefreshUserOperationExecutorTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/RefreshUserOperationExecutorTests.kt index c2ee861d8..95ebac44e 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/RefreshUserOperationExecutorTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/RefreshUserOperationExecutorTests.kt @@ -19,16 +19,13 @@ import com.onesignal.user.internal.subscriptions.SubscriptionModelStore import com.onesignal.user.internal.subscriptions.SubscriptionType import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.every import io.mockk.just import io.mockk.mockk import io.mockk.runs -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class RefreshUserOperationExecutorTests : FunSpec({ val appId = "appId" val existingSubscriptionId1 = "existing-subscriptionId1" diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/SubscriptionOperationExecutorTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/SubscriptionOperationExecutorTests.kt index 9b31d48b2..e7153eda0 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/SubscriptionOperationExecutorTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/SubscriptionOperationExecutorTests.kt @@ -17,7 +17,6 @@ import com.onesignal.user.internal.subscriptions.SubscriptionStatus import com.onesignal.user.internal.subscriptions.SubscriptionType import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.every @@ -25,10 +24,8 @@ import io.mockk.just import io.mockk.mockk import io.mockk.runs import io.mockk.verify -import org.junit.runner.RunWith @RobolectricTest -@RunWith(KotestTestRunner::class) class SubscriptionOperationExecutorTests : FunSpec({ val appId = "appId" val remoteOneSignalId = "remote-onesignalId" diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/UpdateUserOperationExecutorTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/UpdateUserOperationExecutorTests.kt index 34e4ea33b..bad53be5d 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/UpdateUserOperationExecutorTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/operations/UpdateUserOperationExecutorTests.kt @@ -11,16 +11,13 @@ import com.onesignal.user.internal.properties.PropertiesModel import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldNotBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.just import io.mockk.mockk import io.mockk.runs -import org.junit.runner.RunWith import java.math.BigDecimal -@RunWith(KotestTestRunner::class) class UpdateUserOperationExecutorTests : FunSpec({ val appId = "appId" val localOneSignalId = "local-onesignalId" diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/properties/PropertiesModelTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/properties/PropertiesModelTests.kt index c41124c4d..b2f45c67d 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/properties/PropertiesModelTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/properties/PropertiesModelTests.kt @@ -3,11 +3,8 @@ package com.onesignal.user.internal.properties import com.onesignal.common.putJSONObject import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import org.json.JSONObject -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class PropertiesModelTests : FunSpec({ test("successfully initializes varying tag names") { diff --git a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/subscriptions/SubscriptionManagerTests.kt b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/subscriptions/SubscriptionManagerTests.kt index 168c9c4ce..0ee0af81c 100644 --- a/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/subscriptions/SubscriptionManagerTests.kt +++ b/OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/subscriptions/SubscriptionManagerTests.kt @@ -11,16 +11,13 @@ import io.kotest.matchers.should import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldNotBe import io.kotest.matchers.types.beInstanceOf -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.every import io.mockk.just import io.mockk.mockk import io.mockk.runs import io.mockk.spyk import io.mockk.verify -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class SubscriptionManagerTests : FunSpec({ test("initializes subscriptions from model store") { diff --git a/OneSignalSDK/onesignal/in-app-messages/build.gradle b/OneSignalSDK/onesignal/in-app-messages/build.gradle index f2d48f3fc..04b6ab3a4 100644 --- a/OneSignalSDK/onesignal/in-app-messages/build.gradle +++ b/OneSignalSDK/onesignal/in-app-messages/build.gradle @@ -32,6 +32,9 @@ android { unitTests { includeAndroidResources = true } + unitTests.all { + it.useJUnitPlatform() + } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 @@ -79,9 +82,9 @@ dependencies { } testImplementation(project(':OneSignal:testhelpers')) - testImplementation("junit:junit:$junitVersion") - testImplementation("io.kotest:kotest-runner-junit4:$kotestVersion") - testImplementation("io.kotest:kotest-runner-junit4-jvm:$kotestVersion") + + testImplementation("io.kotest:kotest-runner-junit5:$kotestVersion") + testImplementation("io.kotest:kotest-runner-junit5-jvm:$kotestVersion") testImplementation("io.kotest:kotest-assertions-core:$kotestVersion") testImplementation("io.kotest:kotest-property:$kotestVersion") testImplementation("org.robolectric:robolectric:4.8.1") diff --git a/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/InAppMessagesManagerTests.kt b/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/InAppMessagesManagerTests.kt index c7b57a613..fa5d4c16e 100644 --- a/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/InAppMessagesManagerTests.kt +++ b/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/InAppMessagesManagerTests.kt @@ -16,15 +16,12 @@ import com.onesignal.user.IUserManager import com.onesignal.user.internal.subscriptions.ISubscriptionManager import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.every import io.mockk.just import io.mockk.mockk import io.mockk.runs import io.mockk.verify -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class InAppMessagesManagerTests : FunSpec({ test("triggers are backed by the trigger model store") { diff --git a/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/backend/InAppBackendServiceTests.kt b/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/backend/InAppBackendServiceTests.kt index 731ebff3f..8fa82a50c 100644 --- a/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/backend/InAppBackendServiceTests.kt +++ b/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/backend/InAppBackendServiceTests.kt @@ -18,13 +18,10 @@ import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldNotBe import io.kotest.matchers.string.shouldStartWith -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.mockk -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class InAppBackendServiceTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/preview/InAppMessagePreviewHandlerTests.kt b/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/preview/InAppMessagePreviewHandlerTests.kt index c8fd61a98..a2db28ecc 100644 --- a/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/preview/InAppMessagePreviewHandlerTests.kt +++ b/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/preview/InAppMessagePreviewHandlerTests.kt @@ -12,7 +12,6 @@ import com.onesignal.notifications.internal.lifecycle.INotificationLifecycleServ import com.onesignal.testhelpers.extensions.RobolectricTest import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.every @@ -20,7 +19,6 @@ import io.mockk.just import io.mockk.mockk import io.mockk.runs import org.json.JSONObject -import org.junit.runner.RunWith import org.robolectric.Robolectric import org.robolectric.annotation.Config @@ -29,7 +27,6 @@ import org.robolectric.annotation.Config sdk = [26], ) @RobolectricTest -@RunWith(KotestTestRunner::class) class InAppMessagePreviewHandlerTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/repositories/InAppRepositoryTests.kt b/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/repositories/InAppRepositoryTests.kt index 23298b298..d669607ec 100644 --- a/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/repositories/InAppRepositoryTests.kt +++ b/OneSignalSDK/onesignal/in-app-messages/src/test/java/com/onesignal/inAppMessages/internal/repositories/InAppRepositoryTests.kt @@ -9,15 +9,12 @@ import com.onesignal.mocks.DatabaseMockHelper import com.onesignal.mocks.MockHelper import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.every import io.mockk.just import io.mockk.mockk import io.mockk.runs import io.mockk.verify -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class InAppRepositoryTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/location/build.gradle b/OneSignalSDK/onesignal/location/build.gradle index afaf8b447..8e029e151 100644 --- a/OneSignalSDK/onesignal/location/build.gradle +++ b/OneSignalSDK/onesignal/location/build.gradle @@ -32,6 +32,9 @@ android { unitTests { includeAndroidResources = true } + unitTests.all { + it.useJUnitPlatform() + } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 @@ -78,9 +81,9 @@ dependencies { compileOnly "com.huawei.hms:location:$huaweiHMSLocationVersion" testImplementation(project(':OneSignal:testhelpers')) - testImplementation("junit:junit:$junitVersion") - testImplementation("io.kotest:kotest-runner-junit4:$kotestVersion") - testImplementation("io.kotest:kotest-runner-junit4-jvm:$kotestVersion") + + testImplementation("io.kotest:kotest-runner-junit5:$kotestVersion") + testImplementation("io.kotest:kotest-runner-junit5-jvm:$kotestVersion") testImplementation("io.kotest:kotest-assertions-core:$kotestVersion") testImplementation("io.kotest:kotest-property:$kotestVersion") testImplementation("org.robolectric:robolectric:4.8.1") diff --git a/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/background/LocationBackgroundServiceTests.kt b/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/background/LocationBackgroundServiceTests.kt index a300b6856..64b35d7b7 100644 --- a/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/background/LocationBackgroundServiceTests.kt +++ b/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/background/LocationBackgroundServiceTests.kt @@ -14,17 +14,14 @@ import com.onesignal.mocks.MockHelper import com.onesignal.testhelpers.extensions.RobolectricTest import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.every import io.mockk.just import io.mockk.mockk import io.mockk.runs import io.mockk.verify -import org.junit.runner.RunWith import org.robolectric.Shadows @RobolectricTest -@RunWith(KotestTestRunner::class) class LocationBackgroundServiceTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/capture/LocationCapturerTests.kt b/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/capture/LocationCapturerTests.kt index d7b5f3872..b097cc673 100644 --- a/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/capture/LocationCapturerTests.kt +++ b/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/capture/LocationCapturerTests.kt @@ -9,15 +9,12 @@ import com.onesignal.location.internal.preferences.ILocationPreferencesService import com.onesignal.mocks.MockHelper import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.every import io.mockk.just import io.mockk.mockk import io.mockk.runs import io.mockk.slot -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class LocationCapturerTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/controller/GmsLocationControllerTests.kt b/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/controller/GmsLocationControllerTests.kt index 6cf711be4..fa390ba7c 100644 --- a/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/controller/GmsLocationControllerTests.kt +++ b/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/controller/GmsLocationControllerTests.kt @@ -12,12 +12,10 @@ import com.onesignal.testhelpers.extensions.RobolectricTest import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldNotBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.every import io.mockk.spyk import io.mockk.verify import io.mockk.verifySequence -import org.junit.runner.RunWith import org.robolectric.annotation.Config @Config( @@ -26,7 +24,6 @@ import org.robolectric.annotation.Config sdk = [26], ) @RobolectricTest -@RunWith(KotestTestRunner::class) class GmsLocationControllerTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/permissions/LocationPermissionControllerTests.kt b/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/permissions/LocationPermissionControllerTests.kt index 713253a18..bff20cb74 100644 --- a/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/permissions/LocationPermissionControllerTests.kt +++ b/OneSignalSDK/onesignal/location/src/test/java/com/onesignal/location/internal/permissions/LocationPermissionControllerTests.kt @@ -8,16 +8,13 @@ import com.onesignal.testhelpers.extensions.RobolectricTest import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.longs.shouldBeGreaterThan import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.every import io.mockk.mockk import io.mockk.spyk import io.mockk.verify import kotlinx.coroutines.delay -import org.junit.runner.RunWith @RobolectricTest -@RunWith(KotestTestRunner::class) class LocationPermissionControllerTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/notifications/build.gradle b/OneSignalSDK/onesignal/notifications/build.gradle index 887d67f38..e7282436a 100644 --- a/OneSignalSDK/onesignal/notifications/build.gradle +++ b/OneSignalSDK/onesignal/notifications/build.gradle @@ -32,6 +32,9 @@ android { unitTests { includeAndroidResources = true } + unitTests.all { + it.useJUnitPlatform() + } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 @@ -91,9 +94,9 @@ dependencies { } testImplementation(project(':OneSignal:testhelpers')) - testImplementation("junit:junit:$junitVersion") - testImplementation("io.kotest:kotest-runner-junit4:$kotestVersion") - testImplementation("io.kotest:kotest-runner-junit4-jvm:$kotestVersion") + + testImplementation("io.kotest:kotest-runner-junit5:$kotestVersion") + testImplementation("io.kotest:kotest-runner-junit5-jvm:$kotestVersion") testImplementation("io.kotest:kotest-assertions-core:$kotestVersion") testImplementation("io.kotest:kotest-property:$kotestVersion") testImplementation("org.robolectric:robolectric:4.8.1") diff --git a/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/backend/NotificationBackendServiceTests.kt b/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/backend/NotificationBackendServiceTests.kt index db435e53a..e1c7cba1c 100644 --- a/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/backend/NotificationBackendServiceTests.kt +++ b/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/backend/NotificationBackendServiceTests.kt @@ -10,13 +10,10 @@ import com.onesignal.notifications.internal.backend.impl.NotificationBackendServ import io.kotest.assertions.throwables.shouldThrowUnit import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.mockk -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class NotificationBackendServiceTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/channels/NotificationChannelManagerTests.kt b/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/channels/NotificationChannelManagerTests.kt index 382787c2d..93db723e4 100644 --- a/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/channels/NotificationChannelManagerTests.kt +++ b/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/channels/NotificationChannelManagerTests.kt @@ -16,10 +16,8 @@ import com.onesignal.testhelpers.extensions.RobolectricTest import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldNotBe -import io.kotest.runner.junit4.KotestTestRunner import org.json.JSONArray import org.json.JSONObject -import org.junit.runner.RunWith import org.robolectric.annotation.Config import java.math.BigInteger @@ -29,7 +27,6 @@ import java.math.BigInteger sdk = [26], ) @RobolectricTest -@RunWith(KotestTestRunner::class) class NotificationChannelManagerTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/generation/NotificationGenerationProcessorTests.kt b/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/generation/NotificationGenerationProcessorTests.kt index 3697ccb66..627116792 100644 --- a/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/generation/NotificationGenerationProcessorTests.kt +++ b/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/generation/NotificationGenerationProcessorTests.kt @@ -16,7 +16,6 @@ import com.onesignal.notifications.internal.summary.INotificationSummaryManager import com.onesignal.testhelpers.extensions.RobolectricTest import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.every @@ -25,7 +24,6 @@ import io.mockk.mockk import io.mockk.runs import kotlinx.coroutines.delay import org.json.JSONObject -import org.junit.runner.RunWith import org.robolectric.annotation.Config @Config( @@ -33,7 +31,6 @@ import org.robolectric.annotation.Config sdk = [26], ) @RobolectricTest -@RunWith(KotestTestRunner::class) class NotificationGenerationProcessorTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/limiting/NotificationLimitManagerTests.kt b/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/limiting/NotificationLimitManagerTests.kt index f925daf36..7e31d2f02 100644 --- a/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/limiting/NotificationLimitManagerTests.kt +++ b/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/limiting/NotificationLimitManagerTests.kt @@ -12,12 +12,10 @@ import com.onesignal.notifications.internal.limiting.impl.NotificationLimitManag import com.onesignal.notifications.internal.summary.INotificationSummaryManager import com.onesignal.testhelpers.extensions.RobolectricTest import io.kotest.core.spec.style.FunSpec -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.mockk import io.mockk.spyk -import org.junit.runner.RunWith import org.robolectric.annotation.Config import org.robolectric.annotation.Implements @@ -27,7 +25,6 @@ import org.robolectric.annotation.Implements sdk = [26], ) @RobolectricTest -@RunWith(KotestTestRunner::class) class NotificationLimitManagerTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/pushtoken/PushTokenManagerTests.kt b/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/pushtoken/PushTokenManagerTests.kt index c5f666f51..ff281d786 100644 --- a/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/pushtoken/PushTokenManagerTests.kt +++ b/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/pushtoken/PushTokenManagerTests.kt @@ -9,14 +9,11 @@ import com.onesignal.notifications.shadows.ShadowRoboNotificationManager import com.onesignal.user.internal.subscriptions.SubscriptionStatus import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.every import io.mockk.mockk -import org.junit.runner.RunWith -@RunWith(KotestTestRunner::class) class PushTokenManagerTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE diff --git a/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/summary/NotificationSummaryManagerTests.kt b/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/summary/NotificationSummaryManagerTests.kt index 87e36f99e..d630c4b20 100644 --- a/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/summary/NotificationSummaryManagerTests.kt +++ b/OneSignalSDK/onesignal/notifications/src/test/java/com/onesignal/notifications/internal/summary/NotificationSummaryManagerTests.kt @@ -12,13 +12,11 @@ import com.onesignal.notifications.shadows.ShadowRoboNotificationManager import com.onesignal.testhelpers.extensions.RobolectricTest import io.kotest.core.spec.style.FunSpec import io.kotest.matchers.shouldBe -import io.kotest.runner.junit4.KotestTestRunner import io.mockk.coEvery import io.mockk.coVerify import io.mockk.just import io.mockk.mockk import io.mockk.runs -import org.junit.runner.RunWith import org.robolectric.annotation.Config @Config( @@ -27,7 +25,6 @@ import org.robolectric.annotation.Config sdk = [26], ) @RobolectricTest -@RunWith(KotestTestRunner::class) class NotificationSummaryManagerTests : FunSpec({ beforeAny { Logging.logLevel = LogLevel.NONE From e0a22ec9a045fdb05324128417689340f498e543 Mon Sep 17 00:00:00 2001 From: Josh Kasten Date: Thu, 29 Feb 2024 13:50:36 -0500 Subject: [PATCH 2/2] update kotest to JUnit 5 in testhelpers Robolectric only has a JUnit 4 interface, however we are adapting it via RobolectricExtension.kt. However this means we still require a reference to JUnit4 in this specific testhelpers to do this. --- OneSignalSDK/build.gradle | 1 - OneSignalSDK/onesignal/testhelpers/build.gradle | 8 ++++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/OneSignalSDK/build.gradle b/OneSignalSDK/build.gradle index 0b5d836e0..25ec6c0eb 100644 --- a/OneSignalSDK/build.gradle +++ b/OneSignalSDK/build.gradle @@ -17,7 +17,6 @@ buildscript { kotestVersion = '5.8.0' ktlintPluginVersion = '11.6.1' ktlintVersion = '1.0.1' - junitVersion = '4.13.2' // DO NOT upgrade for tests, using an old version so it matches AOSP tdunningJsonForTest = '1.0' } diff --git a/OneSignalSDK/onesignal/testhelpers/build.gradle b/OneSignalSDK/onesignal/testhelpers/build.gradle index 1b603f05f..6e7b7bb75 100644 --- a/OneSignalSDK/onesignal/testhelpers/build.gradle +++ b/OneSignalSDK/onesignal/testhelpers/build.gradle @@ -38,8 +38,12 @@ android { dependencies { implementation(project(':OneSignal:core')) - implementation("junit:junit:$junitVersion") - implementation("io.kotest:kotest-runner-junit4:$kotestVersion") + // Only use for RobolectricExtension.kt, + // to bridge Robolectric's JUnit4 usage to Kotest's Junit 5 + implementation("junit:junit:4.13.2") + + implementation("io.kotest:kotest-runner-junit5:$kotestVersion") + implementation("io.kotest:kotest-runner-junit5-jvm:$kotestVersion") implementation("org.robolectric:robolectric:4.8.1") implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion") implementation("io.mockk:mockk:1.13.2")