Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: allow messages to be updated any time #34

Merged
merged 15 commits into from
Apr 19, 2024
Merged
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.paypal.messagesdemo

import android.content.ContentValues.TAG
import android.os.Bundle
import android.util.Log
import android.widget.Toast
Expand Down Expand Up @@ -51,6 +50,7 @@ fun toSentenceCase(input: String): String {
}

class JetpackActivity : ComponentActivity() {
private val TAG = "PPM:JetpackActivity"
private val environment = PayPalEnvironment.SANDBOX

override fun onCreate(savedInstanceState: Bundle?) {
Expand Down
4 changes: 2 additions & 2 deletions demo/src/main/java/com/paypal/messagesdemo/XmlActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import com.paypal.messagesdemo.databinding.ActivityMessageBinding

class XmlActivity : AppCompatActivity() {
private lateinit var binding: ActivityMessageBinding
private val TAG = "XmlActivity"
private val TAG = "PPM:XmlActivity"
private var color: PayPalMessageColor = PayPalMessageColor.BLACK
private var logoType: PayPalMessageLogoType = PayPalMessageLogoType.PRIMARY
private var textAlign: PayPalMessageAlign = PayPalMessageAlign.LEFT
Expand Down Expand Up @@ -190,7 +190,7 @@ class XmlActivity : AppCompatActivity() {
binding = ActivityMessageBinding.inflate(layoutInflater)
setContentView(binding.root)

PayPalMessageConfig.setGlobalAnalytics()
PayPalMessageConfig.setGlobalAnalytics("", "")
val config = PayPalMessageConfig(data = PayPalMessageData(clientID = "someClientID"))
val message = PayPalMessageView(context = this, config = config)
message.getConfig()
Expand Down
4 changes: 2 additions & 2 deletions library/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ koverReport {
'*KoverExcludeGenerated'
)
classes(
// AnalyticsLogger,
'com.paypal.messages.analytics.AnalyticsLogger*',
// config
'com.paypal.messages.config.message.PayPalMessageEventsCallbacks\$*',
'com.paypal.messages.config.message.PayPalMessageViewStateCallbacks\$*',
Expand All @@ -116,8 +118,6 @@ koverReport {
'com.paypal.messages.io.Api\$*',
'com.paypal.messages.io.LocalStorage*',
'com.paypal.messages.io.OnActionCompleted',
// logger,
'com.paypal.messages.logger.Logger*',
// utils
'com.paypal.messages.utils.LogCat*',
// UI Stuff
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,14 @@ class PayPalMessageViewTest {
payPalMessageView.onActionCompleted(ApiResult.Success(response))

val messageTextView = payPalMessageView.findViewById<TextView>(R.id.content)
assertTrue(messageTextView.text.toString().contains(defaultMain))
assertTrue(messageTextView.text.toString().contains(defaultDisclaimer))
assertTrue(
"text does not contain defaultMain value: $defaultMain",
messageTextView.text.toString().contains(defaultMain),
)
assertTrue(
"text does not contain defaultDisclaimer value: $defaultDisclaimer",
messageTextView.text.toString().contains(defaultDisclaimer),
)
}

@Test
Expand All @@ -89,8 +95,17 @@ class PayPalMessageViewTest {
config.viewStateCallbacks = PayPalMessageViewStateCallbacks(onLoading = emptyFunction)
config.eventsCallbacks = PayPalMessageEventsCallbacks(onClick = emptyFunction)

assertTrue(payPalMessageView.getConfig().data.amount!!.equals(100.00))
assertFalse(payPalMessageView.getConfig().viewStateCallbacks?.onLoading == emptyFunction)
assertFalse(payPalMessageView.getConfig().eventsCallbacks?.onClick == emptyFunction)
assertTrue(
"amount does not equal 100.00",
payPalMessageView.getConfig().data.amount!!.equals(100.00),
)
assertFalse(
"viewStateCallbacks.onClick was not an empty function",
payPalMessageView.getConfig().viewStateCallbacks?.onLoading == emptyFunction,
)
assertFalse(
"eventsCallbacks.onClick was not an empty function",
payPalMessageView.getConfig().eventsCallbacks?.onClick == emptyFunction,
)
}
}
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
package com.paypal.messages.logger
package com.paypal.messages.analytics

import android.content.Context
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import com.paypal.messages.config.message.PayPalMessageConfig
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith

@RunWith(AndroidJUnit4::class)
class LoggerTest {
class AnalyticsLoggerTest {
private lateinit var context: Context
private lateinit var logger: Logger
private lateinit var component: TrackingComponent
private lateinit var analyticsLogger: AnalyticsLogger
private lateinit var component: AnalyticsComponent

@Before
fun setUp() {
Expand All @@ -29,8 +28,8 @@ class LoggerTest {
"test_device_id",
"test_session_id",
)
logger = Logger.getInstance("test_client_id")
component = TrackingComponent(
analyticsLogger = AnalyticsLogger.getInstance("test_client_id")
component = AnalyticsComponent(
instanceId = "test_instance_id",
type = "test_type",
componentEvents = mutableListOf(),
Expand All @@ -39,19 +38,18 @@ class LoggerTest {

@Test
fun testGetInstance() {
assertNotNull(logger)
assertNotNull(analyticsLogger)
}

@Test
fun testLog() {
component.componentEvents.add(TrackingEvent(EventType.MESSAGE_CLICK))
logger.log(context, component)
component.componentEvents.add(AnalyticsEvent(EventType.MESSAGE_CLICKED))
analyticsLogger.log(context, component)

val payload = logger.payload
val payload = analyticsLogger.payload
assertNotNull(payload)
payload?.run {
assertEquals("test_client_id", payload.clientId)
assertTrue(payload.sessionId != "")
assertEquals("test_integration_name", payload.integrationName)
assertEquals("test_integration_version", payload.integrationVersion)
assertEquals("test_device_id", payload.deviceId)
Expand All @@ -61,7 +59,7 @@ class LoggerTest {
assertEquals("test_type", payload.components[0].type)
assertEquals("test_instance_id", payload.components[0].instanceId)
assertEquals(1, payload.components[0].componentEvents.size)
assertEquals(EventType.MESSAGE_CLICK, payload.components[0].componentEvents[0].eventType)
assertEquals(EventType.MESSAGE_CLICKED, payload.components[0].componentEvents[0].eventType)
}
}
}
Loading
Loading