Skip to content

Commit 1b4d07e

Browse files
feat: Passthrough framework type to Rokt SDK
2 parents a4c0532 + 660afcf commit 1b4d07e

File tree

6 files changed

+116
-15
lines changed

6 files changed

+116
-15
lines changed

.run/Assemble.run.xml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="Assemble" type="GradleRunConfiguration" factoryName="Gradle">
3+
<ExternalSystemSettings>
4+
<option name="executionName" />
5+
<option name="externalProjectPath" value="$PROJECT_DIR$" />
6+
<option name="externalSystemIdString" value="GRADLE" />
7+
<option name="scriptParameters" value="" />
8+
<option name="taskDescriptions">
9+
<list />
10+
</option>
11+
<option name="taskNames">
12+
<list>
13+
<option value="assemble" />
14+
</list>
15+
</option>
16+
<option name="vmOptions" />
17+
</ExternalSystemSettings>
18+
<ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
19+
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
20+
<DebugAllEnabled>false</DebugAllEnabled>
21+
<RunAsTest>false</RunAsTest>
22+
<method v="2" />
23+
</configuration>
24+
</component>

.run/Lint.run.xml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="Lint" type="GradleRunConfiguration" factoryName="Gradle">
3+
<ExternalSystemSettings>
4+
<option name="executionName" />
5+
<option name="externalProjectPath" value="$PROJECT_DIR$" />
6+
<option name="externalSystemIdString" value="GRADLE" />
7+
<option name="scriptParameters" value="" />
8+
<option name="taskDescriptions">
9+
<list />
10+
</option>
11+
<option name="taskNames">
12+
<list>
13+
<option value="lint" />
14+
<option value="ktlintCheck" />
15+
</list>
16+
</option>
17+
<option name="vmOptions" />
18+
</ExternalSystemSettings>
19+
<ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
20+
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
21+
<DebugAllEnabled>false</DebugAllEnabled>
22+
<RunAsTest>true</RunAsTest>
23+
<method v="2" />
24+
</configuration>
25+
</component>

.run/Test.run.xml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="Test" type="GradleRunConfiguration" factoryName="Gradle">
3+
<ExternalSystemSettings>
4+
<option name="executionName" />
5+
<option name="externalProjectPath" value="$PROJECT_DIR$" />
6+
<option name="externalSystemIdString" value="GRADLE" />
7+
<option name="scriptParameters" value="" />
8+
<option name="taskDescriptions">
9+
<list />
10+
</option>
11+
<option name="taskNames">
12+
<list>
13+
<option value="test" />
14+
</list>
15+
</option>
16+
<option name="vmOptions" />
17+
</ExternalSystemSettings>
18+
<ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
19+
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
20+
<DebugAllEnabled>false</DebugAllEnabled>
21+
<RunAsTest>true</RunAsTest>
22+
<method v="2" />
23+
</configuration>
24+
</component>

build.gradle

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,6 @@ android {
5454
repositories {
5555
google()
5656
mavenCentral()
57-
maven {
58-
url "https://apps.rokt.com/msdk"
59-
}
6057
}
6158

6259
dependencies {

src/main/kotlin/com/mparticle/kits/RoktKit.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import android.os.Build
99
import com.mparticle.BuildConfig
1010
import com.mparticle.MParticle
1111
import com.mparticle.MParticle.IdentityType
12+
import com.mparticle.WrapperSdk
13+
import com.mparticle.WrapperSdkVersion
1214
import com.mparticle.commerce.CommerceEvent
1315
import com.mparticle.identity.MParticleUser
1416
import com.mparticle.internal.Logger
@@ -19,6 +21,7 @@ import com.mparticle.rokt.RoktConfig
1921
import com.mparticle.rokt.RoktEmbeddedView
2022
import com.rokt.roktsdk.CacheConfig
2123
import com.rokt.roktsdk.Rokt
24+
import com.rokt.roktsdk.Rokt.SdkFrameworkType.*
2225
import com.rokt.roktsdk.RoktWidgetDimensionCallBack
2326
import com.rokt.roktsdk.Widget
2427
import java.lang.ref.WeakReference
@@ -134,7 +137,6 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen
134137
For more details, visit the official documentation:
135138
https://docs.rokt.com/developers/integration-guides/android/how-to/adding-a-placement/
136139
*/
137-
@Suppress("UNCHECKED_CAST", "CAST_NEVER_SUCCEEDS")
138140
override fun execute(
139141
viewName: String,
140142
attributes: Map<String, String>,
@@ -199,6 +201,16 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen
199201
)
200202
}
201203

204+
override fun setWrapperSdkVersion(wrapperSdkVersion: WrapperSdkVersion) {
205+
val sdkFrameworkType = when (wrapperSdkVersion.sdk) {
206+
WrapperSdk.WrapperFlutter -> Flutter
207+
WrapperSdk.WrapperSdkReactNative -> ReactNative
208+
WrapperSdk.WrapperSdkCordova -> Cordova
209+
else -> Android
210+
}
211+
Rokt.setFrameworkType(sdkFrameworkType)
212+
}
213+
202214
override fun purchaseFinalized(placementId: String, catalogItemId: String, status: Boolean) {
203215
Rokt.purchaseFinalized(placementId, catalogItemId, status)
204216
}

src/test/kotlin/com/mparticle/kits/RoktKitTests.kt

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ import com.mparticle.MParticle
1010
import com.mparticle.MParticle.IdentityType
1111
import com.mparticle.MParticleOptions
1212
import com.mparticle.MParticleOptions.DataplanOptions
13+
import com.mparticle.WrapperSdk
14+
import com.mparticle.WrapperSdkVersion
1315
import com.mparticle.identity.IdentityApi
1416
import com.mparticle.internal.CoreCallbacks
1517
import com.mparticle.internal.CoreCallbacks.KitListener
16-
import com.mparticle.kits.mocks.MockKitConfiguration
18+
import com.rokt.roktsdk.Rokt
1719
import io.mockk.*
1820
import org.json.JSONArray
19-
import org.json.JSONObject
2021
import org.junit.Assert.assertEquals
21-
import org.junit.Assert.assertFalse
2222
import org.junit.Assert.assertTrue
2323
import org.junit.Before
2424
import org.junit.Test
@@ -45,14 +45,14 @@ class RoktKitTests {
4545
every { context.applicationContext } returns context
4646
roktKit = RoktKit()
4747
kitManager = TestKitManager()
48-
MParticle.setInstance(Mockito.mock(MParticle::class.java))
48+
MParticle.setInstance(mock(MParticle::class.java))
4949
Mockito.`when`(MParticle.getInstance()?.Identity()).thenReturn(
50-
Mockito.mock(
50+
mock(
5151
IdentityApi::class.java
5252
)
5353
)
5454
val kitManager = KitManagerImpl(
55-
Mockito.mock(
55+
mock(
5656
Context::class.java
5757
), null, emptyCoreCallbacks, mock(MParticleOptions::class.java)
5858
)
@@ -100,7 +100,7 @@ class RoktKitTests {
100100

101101
@Test
102102
fun test_addIdentityAttributes_When_userIdentities_IS_Null(){
103-
val mockFilterUser = Mockito.mock(FilteredMParticleUser::class.java)
103+
val mockFilterUser = mock(FilteredMParticleUser::class.java)
104104
val userIdentities = HashMap<IdentityType, String>()
105105
Mockito.`when`(mockFilterUser.userIdentities).thenReturn(userIdentities)
106106
val attributes: Map<String, String> = mapOf(
@@ -120,12 +120,11 @@ class RoktKitTests {
120120
assertTrue(result.containsKey("key1"))
121121
assertTrue(result.containsKey("key2"))
122122
assertTrue(result.containsKey("key3"))
123-
124123
}
125124

126125
@Test
127126
fun test_addIdentityAttributes_When_userIdentities_Contain_value(){
128-
val mockFilterUser = Mockito.mock(FilteredMParticleUser::class.java)
127+
val mockFilterUser = mock(FilteredMParticleUser::class.java)
129128
val userIdentities = HashMap<IdentityType, String>()
130129
userIdentities.put(IdentityType.Email,"[email protected]")
131130
Mockito.`when`(mockFilterUser.userIdentities).thenReturn(userIdentities)
@@ -152,7 +151,7 @@ class RoktKitTests {
152151

153152
@Test
154153
fun test_addIdentityAttributes_When_userIdentities_And_attributes_contains_same_key(){
155-
val mockFilterUser = Mockito.mock(FilteredMParticleUser::class.java)
154+
val mockFilterUser = mock(FilteredMParticleUser::class.java)
156155
val userIdentities = HashMap<IdentityType, String>()
157156
userIdentities.put(IdentityType.Email,"[email protected]")
158157
Mockito.`when`(mockFilterUser.userIdentities).thenReturn(userIdentities)
@@ -200,7 +199,7 @@ class RoktKitTests {
200199

201200
@Test
202201
fun testAddIdentityAttributes_nullAttributes_validUser() {
203-
val mockFilterUser = Mockito.mock(FilteredMParticleUser::class.java)
202+
val mockFilterUser = mock(FilteredMParticleUser::class.java)
204203
val userIdentities = HashMap<IdentityType, String>()
205204
userIdentities.put(IdentityType.Email,"[email protected]")
206205
Mockito.`when`(mockFilterUser.userIdentities).thenReturn(userIdentities)
@@ -235,7 +234,27 @@ class RoktKitTests {
235234
assertTrue(result.containsKey("key3"))
236235
}
237236

237+
@Test
238+
fun testSetSdkWrapper_correctlySetsRoktFramework() {
239+
mockkObject(Rokt)
240+
every { Rokt.setFrameworkType(any()) } just runs
241+
242+
roktKit.setWrapperSdkVersion(WrapperSdkVersion(WrapperSdk.WrapperFlutter, "1.0.0"))
243+
roktKit.setWrapperSdkVersion(WrapperSdkVersion(WrapperSdk.WrapperSdkReactNative, "1.0.0"))
244+
roktKit.setWrapperSdkVersion(WrapperSdkVersion(WrapperSdk.WrapperSdkCordova, "1.0.0"))
245+
roktKit.setWrapperSdkVersion(WrapperSdkVersion(WrapperSdk.WrapperNone, "1.0.0"))
246+
roktKit.setWrapperSdkVersion(WrapperSdkVersion(WrapperSdk.WrapperXamarin, "1.0.0"))
247+
248+
verifyOrder {
249+
Rokt.setFrameworkType(Rokt.SdkFrameworkType.Flutter)
250+
Rokt.setFrameworkType(Rokt.SdkFrameworkType.ReactNative)
251+
Rokt.setFrameworkType(Rokt.SdkFrameworkType.Cordova)
252+
Rokt.setFrameworkType(Rokt.SdkFrameworkType.Android)
253+
Rokt.setFrameworkType(Rokt.SdkFrameworkType.Android)
254+
}
238255

256+
unmockkObject(Rokt)
257+
}
239258

240259
internal inner class TestCoreCallbacks : CoreCallbacks {
241260
override fun isBackgrounded(): Boolean = false

0 commit comments

Comments
 (0)