Skip to content

Commit 5646bdd

Browse files
committed
Rewrite fallback test to use serialization from test code
1 parent 8fe97b1 commit 5646bdd

File tree

1 file changed

+30
-11
lines changed

1 file changed

+30
-11
lines changed

com.unity.mobile.notifications/Tests/Runtime/Android/AndroidNotificationSimpleTests.cs

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -563,19 +563,38 @@ public void CorruptedPrimarySerialization_FallsBack()
563563
original.FireTime = DateTime.Now;
564564
original.LargeIcon = "large_icon";
565565

566-
var deserializedData = SerializeDeserializeNotification(original, notificationId, (prefs) =>
566+
AndroidJavaObject context, prefs;
567+
using (var builder = AndroidNotificationCenter.CreateNotificationBuilder(notificationId, original, kChannelId))
567568
{
568-
var data = prefs.Call<string>("getString", "data", "");
569-
// corrupt data
570-
using (var editor = prefs.Call<AndroidJavaObject>("edit"))
571-
{
572-
editor.Call<AndroidJavaObject>("putString", "data", "jfkasjflksdjflkasdjflkjdsafkjsadfl").Dispose();
573-
editor.Call("apply");
574-
}
569+
var managerClass = new AndroidJavaClass("com.unity.androidnotifications.UnityNotificationManager");
570+
var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
571+
var activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
572+
context = activity.Call<AndroidJavaObject>("getApplicationContext");
573+
var javaNotif = builder.Call<AndroidJavaObject>("build");
574+
var testUtils = new AndroidJavaClass("com.unity.androidnotifications.UnityNotificationTestUtils");
575+
576+
prefs = context.Call<AndroidJavaObject>("getSharedPreferences", "android.notification.test.key", 0 /* MODE_PRIVATE */);
577+
testUtils.CallStatic("serializeNotification", prefs, javaNotif);
578+
}
579+
580+
var data = prefs.Call<string>("getString", "data", "");
581+
// corrupt data
582+
using (var editor = prefs.Call<AndroidJavaObject>("edit"))
583+
{
584+
editor.Call<AndroidJavaObject>("putString", "data", "jfkasjflksdjflkasdjflkjdsafkjsadfl").Dispose();
585+
editor.Call("apply");
586+
}
575587

576-
var data2 = prefs.Call<string>("getString", "data", "");
577-
Assert.AreNotEqual(data, data2);
578-
});
588+
var data2 = prefs.Call<string>("getString", "data", "");
589+
Assert.AreNotEqual(data, data2);
590+
591+
var utils = new AndroidJavaClass("com.unity.androidnotifications.UnityNotificationUtilities");
592+
var deserializedNotificationBuilder = utils.CallStatic<AndroidJavaObject>("deserializeNotification", context, prefs);
593+
// don't dispose notification, it is kept in AndroidNotificationIntentData
594+
Assert.IsNotNull(deserializedNotificationBuilder);
595+
var deserializedNotification = deserializedNotificationBuilder.Call<AndroidJavaObject>("build");
596+
Assert.IsNotNull(deserializedNotification);
597+
var deserializedData = AndroidNotificationCenter.GetNotificationData(deserializedNotification);
579598

580599
Assert.AreEqual(original.Title, deserializedData.Notification.Title);
581600
Assert.AreEqual(original.Text, deserializedData.Notification.Text);

0 commit comments

Comments
 (0)