Skip to content

Commit f445e34

Browse files
authored
Release/4.0.0 beta4 (#23)
### Fixed - Segment Hit type values
1 parent 8047656 commit f445e34

5 files changed

Lines changed: 72 additions & 13 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ buildscript {
1010
if (!maven_variant.isEmpty()) {
1111
maven_artifact_id = maven_artifact_id + '-' + maven_variant
1212
}
13-
flagship_version_name = System.getenv('FLAGSHIP_VERSION_NAME') ?: "4.0.0-beta3"
13+
flagship_version_name = System.getenv('FLAGSHIP_VERSION_NAME') ?: "4.0.0-beta4"
1414
flagship_version_code = System.getenv('FLAGSHIP_VERSION_CODE') ?: 24
1515
}
1616

flagship/build.gradle

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44
id 'kotlin-android'
55
id 'kotlin-parcelize'
66
id 'com.google.devtools.ksp'
7-
id 'com.vanniktech.maven.publish' version "0.34.0"
7+
id 'com.vanniktech.maven.publish' version "0.35.0"
88
id 'jacoco'
99
}
1010

@@ -81,7 +81,6 @@ dependencies {
8181
implementation 'androidx.room:room-runtime:2.7.2'
8282
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2")
8383
implementation 'androidx.appcompat:appcompat:1.7.1'
84-
8584
testImplementation 'junit:junit:4.13.2'
8685
testImplementation 'androidx.test:core:1.7.0'
8786
testImplementation 'org.robolectric:robolectric:4.16'

flagship/src/main/java/com/abtasty/flagship/hits/Segment.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
package com.abtasty.flagship.hits
22

33
import com.abtasty.flagship.utils.FlagshipConstants
4+
import com.abtasty.flagship.utils.FlagshipLogManager
45
import org.json.JSONObject
56
import java.util.HashMap
67

78
internal class Segment: Hit<Segment> {
89

910
constructor(visitorId: String, context: HashMap<String, Any>): super(Companion.Type.SEGMENT) {
10-
val obj = JSONObject()
11-
for (c in context) {
12-
obj.put(c.key, c.value)
11+
try {
12+
val obj = JSONObject()
13+
for (c in context) {
14+
obj.put(c.key, c.value.toString())
15+
}
16+
this.data.put(FlagshipConstants.HitKeyMap.VISITOR_ID, visitorId)
17+
if (obj.length() > 0)
18+
this.data.put(FlagshipConstants.HitKeyMap.SEGMENT_LIST, obj)
19+
} catch (e: Exception) {
20+
FlagshipLogManager.exception(FlagshipConstants.Exceptions.Companion.FlagshipException(e))
1321
}
14-
this.data.put(FlagshipConstants.HitKeyMap.VISITOR_ID, visitorId)
15-
if (obj.length() > 0)
16-
this.data.put(FlagshipConstants.HitKeyMap.SEGMENT_LIST, obj)
1722
}
1823

1924
internal constructor(jsonObject: JSONObject): super(Companion.Type.SEGMENT, jsonObject)

flagship/src/main/java/com/abtasty/flagship/utils/FlagshipContext.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,6 @@ abstract class FlagshipContext<T>(
6161
}
6262

6363
override fun load(applicationContext: Context): String? {
64-
// return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
65-
// applicationContext.resources.configuration.locales.get(0).isO3Language
66-
// else
67-
// applicationContext.resources.configuration.locale.isO3Language
6864
return Utils.getCurrentLocale(applicationContext).isO3Language
6965
}
7066
}

flagship/src/test/java/com/abtasty/flagship/FlagshipTestsHits.kt

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,64 @@ class FlagshipTestsHits : AFlagshipTest() {
199199
}
200200
}
201201

202+
@Test
203+
fun test_segment_hit() {
204+
//
205+
val jsonResponse =
206+
FlagshipTestsHelper.jsonObjectFromAssets(getApplication(), "bucketing_response_3.json")
207+
jsonResponse
208+
.getJSONObject("accountSettings")
209+
210+
FlagshipTestsHelper.interceptor().intercept(
211+
BUCKETING_URL.format(_ENV_ID_),
212+
FlagshipTestsHelper.responseFromString(getApplication(), jsonResponse.toString(), 200)
213+
)
214+
.intercept(
215+
ARIANE_URL.format(_ENV_ID_),
216+
FlagshipTestsHelper.response("", 200)
217+
)
218+
219+
runBlocking {
220+
Flagship.start(
221+
getApplication(),
222+
_ENV_ID_,
223+
_API_KEY_,
224+
FlagshipConfig.Bucketing().withTrackingManagerConfig(
225+
TrackingManagerConfig(disablePolling = true)
226+
)
227+
).await()
228+
}
229+
230+
val visitor = Flagship.newVisitor("visitor_1", true)
231+
.context(hashMapOf(
232+
"boolValue" to true,
233+
"doubleValue" to 3.14,
234+
"stringValue" to "string",
235+
"intValue" to 434,
236+
"jsonValue" to JSONObject("{}")
237+
))
238+
.build()
239+
Thread.sleep(100)
240+
visitor.fetchFlags()
241+
Thread.sleep(100)
242+
FlagshipTestsHelper.interceptor().calls[ARIANE_URL]?.get(1)?.let {
243+
val jsonHit = HttpCompat.requestJson(it.first)
244+
Assert.assertEquals("BATCH", jsonHit.getString("t"))
245+
Assert.assertEquals(_ENV_ID_, jsonHit.getString("cid"))
246+
Assert.assertEquals("APP", jsonHit.getString("ds"))
247+
val content = jsonHit.getJSONArray("h").getJSONObject(0)
248+
Assert.assertEquals(content.getString("vid"), "visitor_1")
249+
Assert.assertEquals(content.getString("ds"), "APP")
250+
Assert.assertEquals(content.get("t"), "SEGMENT")
251+
Assert.assertEquals(content.getJSONObject("s").get("boolValue"), "true")
252+
Assert.assertEquals(content.getJSONObject("s").get("doubleValue"), "3.14")
253+
Assert.assertEquals(content.getJSONObject("s").get("stringValue"), "string")
254+
Assert.assertEquals(content.getJSONObject("s").get("intValue"), "434")
255+
Assert.assertFalse(content.getJSONObject("s").has("jsonValue"))
256+
// Assert.assertEquals(content.get("dl"), "https://location.com")
257+
}
258+
}
259+
202260
@Test
203261
fun test_event_hit() {
204262

@@ -1044,6 +1102,7 @@ class FlagshipTestsHits : AFlagshipTest() {
10441102
FlagshipTestsHelper.interceptor().calls[TROUBLESHOOTING_URL]?.size
10451103
) // 1 Bucketing, 1 Fetch, 1 Segment, 1 consent
10461104

1105+
10471106
FlagshipTestsHelper.interceptor().calls[TROUBLESHOOTING_URL]!![0].let {
10481107
val jsonHit = HttpCompat.requestJson(it.first)
10491108
val cv = jsonHit.getJSONObject(CUSTOM_VALUE)

0 commit comments

Comments
 (0)