Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,6 @@ android {
repositories {
google()
mavenCentral()
maven {
url "https://apps.rokt.com/msdk"
}
}

dependencies {
Expand Down
13 changes: 12 additions & 1 deletion src/main/kotlin/com/mparticle/kits/RoktKit.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import android.os.Build
import com.mparticle.BuildConfig
import com.mparticle.MParticle
import com.mparticle.MParticle.IdentityType
import com.mparticle.WrapperSdk
import com.mparticle.WrapperSdkVersion
import com.mparticle.commerce.CommerceEvent
import com.mparticle.identity.MParticleUser
import com.mparticle.internal.Logger
Expand All @@ -17,6 +19,7 @@ import com.mparticle.kits.KitIntegration.IdentityListener
import com.mparticle.kits.KitIntegration.RoktListener
import com.mparticle.rokt.RoktEmbeddedView
import com.rokt.roktsdk.Rokt
import com.rokt.roktsdk.Rokt.SdkFrameworkType.*
import com.rokt.roktsdk.RoktWidgetDimensionCallBack
import com.rokt.roktsdk.Widget
import java.lang.ref.WeakReference
Expand Down Expand Up @@ -132,7 +135,6 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen
For more details, visit the official documentation:
https://docs.rokt.com/developers/integration-guides/android/how-to/adding-a-placement/
*/
@Suppress("UNCHECKED_CAST", "CAST_NEVER_SUCCEEDS")
override fun execute(
viewName: String,
attributes: Map<String, String>,
Expand Down Expand Up @@ -195,6 +197,15 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen
)
}

override fun setWrapperSdkVersion(wrapperSdkVersion: WrapperSdkVersion) {
val sdkFrameworkType = when (wrapperSdkVersion.sdk) {
WrapperSdk.WrapperFlutter -> Flutter
WrapperSdk.WrapperSdkReactNative -> ReactNative
WrapperSdk.WrapperSdkCordova -> Cordova
else -> Android
}
Rokt.setFrameworkType(sdkFrameworkType)
}

private fun addIdentityAttributes(attributes: MutableMap<String, String>?, filterUser: FilteredMParticleUser?): MutableMap<String, String> {
val identityAttributes = mutableMapOf<String, String>()
Expand Down
41 changes: 30 additions & 11 deletions src/test/kotlin/com/mparticle/kits/RoktKitTests.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ import com.mparticle.MParticle
import com.mparticle.MParticle.IdentityType
import com.mparticle.MParticleOptions
import com.mparticle.MParticleOptions.DataplanOptions
import com.mparticle.WrapperSdk
import com.mparticle.WrapperSdkVersion
import com.mparticle.identity.IdentityApi
import com.mparticle.internal.CoreCallbacks
import com.mparticle.internal.CoreCallbacks.KitListener
import com.mparticle.kits.mocks.MockKitConfiguration
import com.rokt.roktsdk.Rokt
import io.mockk.*
import org.json.JSONArray
import org.json.JSONObject
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Test
Expand All @@ -45,14 +45,14 @@ class RoktKitTests {
every { context.applicationContext } returns context
roktKit = RoktKit()
kitManager = TestKitManager()
MParticle.setInstance(Mockito.mock(MParticle::class.java))
MParticle.setInstance(mock(MParticle::class.java))
Mockito.`when`(MParticle.getInstance()?.Identity()).thenReturn(
Mockito.mock(
mock(
IdentityApi::class.java
)
)
val kitManager = KitManagerImpl(
Mockito.mock(
mock(
Context::class.java
), null, emptyCoreCallbacks, mock(MParticleOptions::class.java)
)
Expand Down Expand Up @@ -100,7 +100,7 @@ class RoktKitTests {

@Test
fun test_addIdentityAttributes_When_userIdentities_IS_Null(){
val mockFilterUser = Mockito.mock(FilteredMParticleUser::class.java)
val mockFilterUser = mock(FilteredMParticleUser::class.java)
val userIdentities = HashMap<IdentityType, String>()
Mockito.`when`(mockFilterUser.userIdentities).thenReturn(userIdentities)
val attributes: Map<String, String> = mapOf(
Expand All @@ -120,12 +120,11 @@ class RoktKitTests {
assertTrue(result.containsKey("key1"))
assertTrue(result.containsKey("key2"))
assertTrue(result.containsKey("key3"))

}

@Test
fun test_addIdentityAttributes_When_userIdentities_Contain_value(){
val mockFilterUser = Mockito.mock(FilteredMParticleUser::class.java)
val mockFilterUser = mock(FilteredMParticleUser::class.java)
val userIdentities = HashMap<IdentityType, String>()
userIdentities.put(IdentityType.Email,"TestEmail@gamil.com")
Mockito.`when`(mockFilterUser.userIdentities).thenReturn(userIdentities)
Expand All @@ -152,7 +151,7 @@ class RoktKitTests {

@Test
fun test_addIdentityAttributes_When_userIdentities_And_attributes_contains_same_key(){
val mockFilterUser = Mockito.mock(FilteredMParticleUser::class.java)
val mockFilterUser = mock(FilteredMParticleUser::class.java)
val userIdentities = HashMap<IdentityType, String>()
userIdentities.put(IdentityType.Email,"TestEmail@gamil.com")
Mockito.`when`(mockFilterUser.userIdentities).thenReturn(userIdentities)
Expand Down Expand Up @@ -200,7 +199,7 @@ class RoktKitTests {

@Test
fun testAddIdentityAttributes_nullAttributes_validUser() {
val mockFilterUser = Mockito.mock(FilteredMParticleUser::class.java)
val mockFilterUser = mock(FilteredMParticleUser::class.java)
val userIdentities = HashMap<IdentityType, String>()
userIdentities.put(IdentityType.Email,"TestEmail@gamil.com")
Mockito.`when`(mockFilterUser.userIdentities).thenReturn(userIdentities)
Expand Down Expand Up @@ -235,7 +234,27 @@ class RoktKitTests {
assertTrue(result.containsKey("key3"))
}

@Test
fun testSetSdkWrapper_correctlySetsRoktFramework() {
mockkObject(Rokt)
every { Rokt.setFrameworkType(any()) } just runs

roktKit.setWrapperSdkVersion(WrapperSdkVersion(WrapperSdk.WrapperFlutter, "1.0.0"))
roktKit.setWrapperSdkVersion(WrapperSdkVersion(WrapperSdk.WrapperSdkReactNative, "1.0.0"))
roktKit.setWrapperSdkVersion(WrapperSdkVersion(WrapperSdk.WrapperSdkCordova, "1.0.0"))
roktKit.setWrapperSdkVersion(WrapperSdkVersion(WrapperSdk.WrapperNone, "1.0.0"))
roktKit.setWrapperSdkVersion(WrapperSdkVersion(WrapperSdk.WrapperXamarin, "1.0.0"))

verifyOrder {
Rokt.setFrameworkType(Rokt.SdkFrameworkType.Flutter)
Rokt.setFrameworkType(Rokt.SdkFrameworkType.ReactNative)
Rokt.setFrameworkType(Rokt.SdkFrameworkType.Cordova)
Rokt.setFrameworkType(Rokt.SdkFrameworkType.Android)
Rokt.setFrameworkType(Rokt.SdkFrameworkType.Android)
}

unmockkObject(Rokt)
}

internal inner class TestCoreCallbacks : CoreCallbacks {
override fun isBackgrounded(): Boolean = false
Expand Down
Loading