Skip to content

Commit 1883915

Browse files
WIP: VuidManager test cases added
1 parent ac07264 commit 1883915

File tree

2 files changed

+28
-43
lines changed

2 files changed

+28
-43
lines changed

odp/src/androidTest/java/com/optimizely/ab/android/odp/VuidManagerTest.kt

Lines changed: 25 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@
1313
// limitations under the License.
1414

1515
package com.optimizely.ab.android.odp
16-
16+
import com.optimizely.ab.android.shared.OptlyStorage
1717
import android.content.Context
1818
import android.content.SharedPreferences
1919
import androidx.test.ext.junit.runners.AndroidJUnit4
2020
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
2121
import org.junit.After
2222
import org.junit.Assert.assertEquals
23+
import org.junit.Assert.assertNull
2324
import org.junit.Assert.assertFalse
2425
import org.junit.Assert.assertNotEquals
2526
import org.junit.Assert.assertTrue
@@ -37,10 +38,8 @@ class VuidManagerTest {
3738
fun setUp() {
3839
// remove vuid storage
3940
cleanSharedPrefs()
40-
// remove a singleton instance
41-
VuidManager.removeSharedForTesting()
4241

43-
vuidManager = VuidManager.getShared(context)
42+
vuidManager = VuidManager(context, true)
4443
}
4544

4645
@After
@@ -89,36 +88,31 @@ class VuidManagerTest {
8988
}
9089

9190
@Test
92-
fun autoLoaded() {
93-
val vuidManager1 = VuidManager(context, true)
94-
val vuid1 = vuidManager1.vuid
95-
assertTrue("vuid should be auto loaded when constructed", vuid1.startsWith("vuid_"))
96-
val savedVuid = vuidManager1.load(context)
97-
assertEquals("Vuid should be same", vuid1, savedVuid)
91+
fun autoLoadedWhenVuidEnable() {
92+
// Save vuid for context
93+
val storage = OptlyStorage(context)
94+
storage.saveString("vuid", "vuid_123")
9895

99-
val vuidManager2 = VuidManager(context, false)
100-
val vuid2 = vuidManager2.vuid
101-
assertTrue(vuid2 == "")
102-
assertFalse("vuid should be auto loaded when constructed", vuid2.startsWith("vuid_"))
96+
val vuidManager = VuidManager(context, true)
97+
val vuid = vuidManager.getVuid()
98+
assertTrue("vuid should be auto loaded when constructed", vuid!!.startsWith("vuid_"))
99+
assertEquals("Vuid should be same", vuid, "vuid_123")
100+
}
103101

102+
@Test
103+
fun autoRemoveWhenVuidDisable() {
104+
val vuidManager1 = VuidManager(context, true)
105+
val vuid1 = vuidManager1.getVuid()
106+
assertTrue("Vuid is created succesfully", vuid1!!.startsWith("vuid_"))
107+
val storage = OptlyStorage(context)
108+
val cachedVuid = storage.getString("vuid", null)
109+
assertEquals("Vuid should be same", vuid1, cachedVuid)
104110

111+
/// Remove previous vuid when disable
112+
val vuidManager2 = VuidManager(context, false)
113+
assertNull(vuidManager2.getVuid());
114+
val cachedVuid2 = storage.getString("vuid", null)
115+
assertNull(cachedVuid2);
105116

106-
// val vuid2 = VuidManager.getShared(context).vuid
107-
// assertEquals("the same vuid should be returned when getting a singleton", vuid1, vuid2)
108-
//
109-
// // remove shared instance, so will be re-instantiated
110-
// VuidManager.removeSharedForTesting()
111-
//
112-
// val vuid3 = VuidManager.getShared(context).vuid
113-
// assertEquals("the saved vuid should be returned when instantiated again", vuid2, vuid3)
114-
//
115-
// // remove saved vuid
116-
// cleanSharedPrefs()
117-
// // remove shared instance, so will be re-instantiated
118-
// VuidManager.removeSharedForTesting()
119-
//
120-
// val vuid4 = VuidManager.getShared(context).vuid
121-
// assertNotEquals("a new vuid should be returned when storage cleared and re-instantiated", vuid3, vuid4)
122-
// assertTrue(vuid4.startsWith("vuid_"))
123117
}
124118
}

odp/src/main/java/com/optimizely/ab/android/odp/VuidManager.kt

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,27 +36,18 @@ class VuidManager constructor(context: Context, isEnabled: Boolean = false) {
3636
fun getVuid(): String? {
3737
return if (isEnabled) this._vuid else null
3838
}
39+
3940
fun isEnabled(): Boolean {
4041
return isEnabled
4142
}
4243

4344
companion object {
44-
// @Volatile
45-
// private var INSTANCE: VuidManager? = null
46-
47-
@Synchronized
48-
// fun getShared(context: Context): VuidManager = INSTANCE ?: VuidManager(context).also { INSTANCE = it }
49-
45+
@JvmStatic
5046
fun isVuid(visitorId: String): Boolean {
5147
return visitorId.startsWith("vuid_", ignoreCase = true)
5248
}
53-
54-
// @VisibleForTesting
55-
// fun removeSharedForTesting() {
56-
// INSTANCE = null
57-
// }
5849
}
59-
50+
6051
@VisibleForTesting
6152
fun makeVuid(): String {
6253
val maxLength = 32 // required by ODP server

0 commit comments

Comments
 (0)