@@ -3,6 +3,8 @@ import 'package:flutter_test/flutter_test.dart';
33import 'package:onesignal_flutter/src/inappmessage.dart' ;
44import 'package:onesignal_flutter/src/inappmessages.dart' ;
55
6+ import 'mock_channel.dart' ;
7+
68const validMessageJson = {
79 'message_id' : 'test-message-id-123' ,
810};
@@ -20,47 +22,28 @@ void main() {
2022
2123 group ('OneSignalInAppMessages' , () {
2224 late OneSignalInAppMessages inAppMessages;
23- late List < MethodCall > methodCalls ;
25+ late OneSignalMockChannelController channelController ;
2426
2527 setUp (() {
26- methodCalls = [];
28+ channelController = OneSignalMockChannelController ();
29+ channelController.resetState ();
2730 inAppMessages = OneSignalInAppMessages ();
28-
29- TestDefaultBinaryMessengerBinding .instance.defaultBinaryMessenger
30- .setMockMethodCallHandler (
31- const MethodChannel ('OneSignal#inappmessages' ),
32- (call) async {
33- methodCalls.add (call);
34- return null ;
35- },
36- );
37- });
38-
39- tearDown (() {
40- TestDefaultBinaryMessengerBinding .instance.defaultBinaryMessenger
41- .setMockMethodCallHandler (
42- const MethodChannel ('OneSignal#inappmessages' ),
43- null ,
44- );
4531 });
4632
4733 group ('addTrigger' , () {
4834 test ('invokes OneSignal#addTrigger method with key-value pair' , () async {
4935 await inAppMessages.addTrigger (triggerName, 'true' );
5036
51- expect (methodCalls.length, 1 );
52- expect (methodCalls[0 ].method, 'OneSignal#addTrigger' );
53- expect (methodCalls[0 ].arguments, {triggerName: 'true' });
37+ expect (channelController.state.triggers, {triggerName: 'true' });
5438 });
5539
5640 test ('handles multiple triggers sequentially' , () async {
5741 const triggerName2 = 'trigger2' ;
5842 await inAppMessages.addTrigger (triggerName, 'value1' );
59- await inAppMessages. addTrigger (triggerName2, 'value2' );
43+ expect (channelController.state.triggers, {triggerName : 'value1' } );
6044
61- expect (methodCalls.length, 2 );
62- expect (methodCalls[0 ].arguments, {triggerName: 'value1' });
63- expect (methodCalls[1 ].arguments, {triggerName2: 'value2' });
45+ await inAppMessages.addTrigger (triggerName2, 'value2' );
46+ expect (channelController.state.triggers, {triggerName2: 'value2' });
6447 });
6548 });
6649
@@ -74,26 +57,21 @@ void main() {
7457
7558 await inAppMessages.addTriggers (triggers);
7659
77- expect (methodCalls.length, 1 );
78- expect (methodCalls[0 ].method, 'OneSignal#addTriggers' );
79- expect (methodCalls[0 ].arguments, triggers);
60+ expect (channelController.state.triggers, triggers);
8061 });
8162
8263 test ('handles empty triggers map' , () async {
8364 await inAppMessages.addTriggers ({});
8465
85- expect (methodCalls.length, 1 );
86- expect (methodCalls[0 ].arguments, {});
66+ expect (channelController.state.triggers, {});
8767 });
8868 });
8969
9070 group ('removeTrigger' , () {
9171 test ('invokes OneSignal#removeTrigger method with key' , () async {
9272 await inAppMessages.removeTrigger (triggerName);
9373
94- expect (methodCalls.length, 1 );
95- expect (methodCalls[0 ].method, 'OneSignal#removeTrigger' );
96- expect (methodCalls[0 ].arguments, triggerName);
74+ expect (channelController.state.removedTrigger, triggerName);
9775 });
9876 });
9977
@@ -104,69 +82,57 @@ void main() {
10482
10583 await inAppMessages.removeTriggers (keys);
10684
107- expect (methodCalls.length, 1 );
108- expect (methodCalls[0 ].method, 'OneSignal#removeTriggers' );
109- expect (methodCalls[0 ].arguments, keys);
85+ expect (channelController.state.removedTriggers, keys);
11086 });
11187
11288 test ('handles empty keys list' , () async {
11389 await inAppMessages.removeTriggers ([]);
11490
115- expect (methodCalls.length, 1 );
116- expect (methodCalls[0 ].arguments, []);
91+ expect (channelController.state.removedTriggers, []);
11792 });
11893 });
11994
12095 group ('clearTriggers' , () {
12196 test ('invokes OneSignal#clearTriggers method' , () async {
12297 await inAppMessages.clearTriggers ();
12398
124- expect (methodCalls.length, 1 );
125- expect (methodCalls[0 ].method, 'OneSignal#clearTriggers' );
99+ expect (channelController.state.clearedTriggers, true );
126100 });
127101 });
128102
129103 group ('paused' , () {
130104 test ('invokes OneSignal#paused' , () async {
131105 await inAppMessages.paused (true );
132106
133- expect (methodCalls.length, 1 );
134- expect (methodCalls[0 ].method, 'OneSignal#paused' );
135- expect (methodCalls[0 ].arguments, true );
107+ expect (channelController.state.inAppMessagesPaused, true );
136108
137109 await inAppMessages.paused (false );
138110
139- expect (methodCalls.length, 2 );
140- expect (methodCalls[1 ].method, 'OneSignal#paused' );
141- expect (methodCalls[1 ].arguments, false );
111+ expect (channelController.state.inAppMessagesPaused, false );
142112 });
143113 });
144114
145115 group ('arePaused' , () {
146- test ('invokes OneSignal#arePaused method' , () async {
147- TestDefaultBinaryMessengerBinding .instance.defaultBinaryMessenger
148- .setMockMethodCallHandler (
149- const MethodChannel ('OneSignal#inappmessages' ),
150- (call) async {
151- if (call.method == 'OneSignal#arePaused' ) {
152- return true ;
153- }
154- return null ;
155- },
156- );
157-
116+ test ('invokes OneSignal#arePaused method and returns correct value' ,
117+ () async {
118+ await inAppMessages.paused (true );
158119 final result = await inAppMessages.arePaused ();
159120
160121 expect (result, true );
161122 });
123+
124+ test ('returns false when not paused' , () async {
125+ final result = await inAppMessages.arePaused ();
126+
127+ expect (result, false );
128+ });
162129 });
163130
164131 group ('lifecycleInit' , () {
165132 test ('invokes OneSignal#lifecycleInit method' , () async {
166133 await inAppMessages.lifecycleInit ();
167134
168- expect (methodCalls.length, 1 );
169- expect (methodCalls[0 ].method, 'OneSignal#lifecycleInit' );
135+ expect (channelController.state.lifecycleInitCalled, true );
170136 });
171137 });
172138
@@ -180,7 +146,6 @@ void main() {
180146
181147 inAppMessages.addClickListener (listener);
182148
183- // Simulate native call to verify listener was added
184149 await inAppMessages.handleMethod (
185150 MethodCall (
186151 'OneSignal#onClickInAppMessage' ,
@@ -204,7 +169,6 @@ void main() {
204169 inAppMessages.addClickListener (listener);
205170 inAppMessages.removeClickListener (listener);
206171
207- // Simulate native call to verify listener was removed
208172 await inAppMessages.handleMethod (
209173 MethodCall (
210174 'OneSignal#onClickInAppMessage' ,
@@ -231,7 +195,6 @@ void main() {
231195
232196 inAppMessages.addWillDisplayListener (listener);
233197
234- // Simulate native call to verify listener was added
235198 await inAppMessages.handleMethod (
236199 MethodCall (
237200 'OneSignal#onWillDisplayInAppMessage' ,
@@ -253,7 +216,6 @@ void main() {
253216 inAppMessages.addWillDisplayListener (listener);
254217 inAppMessages.removeWillDisplayListener (listener);
255218
256- // Simulate native call to verify listener was removed
257219 await inAppMessages.handleMethod (
258220 MethodCall (
259221 'OneSignal#onWillDisplayInAppMessage' ,
@@ -275,7 +237,6 @@ void main() {
275237
276238 inAppMessages.addDidDisplayListener (listener);
277239
278- // Simulate native call to verify listener was added
279240 await inAppMessages.handleMethod (
280241 MethodCall (
281242 'OneSignal#onDidDisplayInAppMessage' ,
@@ -296,7 +257,6 @@ void main() {
296257 inAppMessages.addDidDisplayListener (listener);
297258 inAppMessages.removeDidDisplayListener (listener);
298259
299- // Simulate native call to verify listener was removed
300260 await inAppMessages.handleMethod (
301261 MethodCall (
302262 'OneSignal#onDidDisplayInAppMessage' ,
@@ -339,7 +299,6 @@ void main() {
339299
340300 inAppMessages.addWillDismissListener (listener);
341301
342- // Simulate native call to verify listener was added
343302 await inAppMessages.handleMethod (
344303 MethodCall (
345304 'OneSignal#onWillDismissInAppMessage' ,
@@ -361,7 +320,6 @@ void main() {
361320 inAppMessages.addWillDismissListener (listener);
362321 inAppMessages.removeWillDismissListener (listener);
363322
364- // Simulate native call to verify listener was removed
365323 await inAppMessages.handleMethod (
366324 MethodCall (
367325 'OneSignal#onWillDismissInAppMessage' ,
@@ -385,7 +343,6 @@ void main() {
385343
386344 inAppMessages.addDidDismissListener (listener);
387345
388- // Simulate native call to verify listener was added
389346 await inAppMessages.handleMethod (
390347 MethodCall (
391348 'OneSignal#onDidDismissInAppMessage' ,
@@ -407,7 +364,6 @@ void main() {
407364 inAppMessages.addDidDismissListener (listener);
408365 inAppMessages.removeDidDismissListener (listener);
409366
410- // Simulate native call to verify listener was removed
411367 await inAppMessages.handleMethod (
412368 MethodCall (
413369 'OneSignal#onDidDismissInAppMessage' ,
0 commit comments