@@ -563,19 +563,38 @@ public void CorruptedPrimarySerialization_FallsBack()
563
563
original . FireTime = DateTime . Now ;
564
564
original . LargeIcon = "large_icon" ;
565
565
566
- var deserializedData = SerializeDeserializeNotification ( original , notificationId , ( prefs ) =>
566
+ AndroidJavaObject context , prefs ;
567
+ using ( var builder = AndroidNotificationCenter . CreateNotificationBuilder ( notificationId , original , kChannelId ) )
567
568
{
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
+ }
575
587
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 ) ;
579
598
580
599
Assert . AreEqual ( original . Title , deserializedData . Notification . Title ) ;
581
600
Assert . AreEqual ( original . Text , deserializedData . Notification . Text ) ;
0 commit comments