Skip to content

Commit 6341072

Browse files
committed
make inappmessage test more dry
1 parent 471dad5 commit 6341072

File tree

1 file changed

+43
-120
lines changed

1 file changed

+43
-120
lines changed

test/inappmessage_test.dart

Lines changed: 43 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:flutter_test/flutter_test.dart';
22
import 'package:onesignal_flutter/src/inappmessage.dart';
3+
import 'package:onesignal_flutter/src/utils.dart';
34

45
const validMessageJson = {
56
'message_id': 'test-message-id-123',
@@ -11,6 +12,32 @@ const validClickResultJson = {
1112
'closing_message': true,
1213
};
1314

15+
void _testMessageEvent<T extends JSONStringRepresentable>(
16+
String eventName,
17+
T Function(Map<String, dynamic>) constructor,
18+
) {
19+
group(eventName, () {
20+
test('creates from valid JSON with message', () {
21+
final json = {'message': validMessageJson};
22+
final event = constructor(json);
23+
expect(event, isNotNull);
24+
});
25+
26+
test('creates from JSON with null message_id', () {
27+
final json = {'message': <String, dynamic>{}};
28+
final event = constructor(json);
29+
expect(event, isNotNull);
30+
});
31+
32+
test('jsonRepresentation returns correct JSON string', () {
33+
final json = {'message': validMessageJson};
34+
final event = constructor(json);
35+
final jsonString = event.jsonRepresentation();
36+
expect(jsonString, contains('"message"'));
37+
});
38+
});
39+
}
40+
1441
void main() {
1542
group('OSInAppMessage', () {
1643
test('creates from valid JSON with message_id', () {
@@ -119,130 +146,26 @@ void main() {
119146
};
120147
final event = OSInAppMessageClickEvent(json);
121148
final jsonString = event.jsonRepresentation();
122-
print(jsonString);
123149

124150
expect(jsonString, contains('"message"'));
125151
expect(jsonString, contains('"result"'));
126152
});
127153
});
128154

129-
group('OSInAppMessageWillDisplayEvent', () {
130-
test('creates from valid JSON with message', () {
131-
final json = {
132-
'message': validMessageJson,
133-
};
134-
final event = OSInAppMessageWillDisplayEvent(json);
135-
136-
expect(event.message.messageId, 'test-message-id-123');
137-
});
138-
139-
test('creates from JSON with null message_id', () {
140-
final json = {
141-
'message': <String, dynamic>{},
142-
};
143-
final event = OSInAppMessageWillDisplayEvent(json);
144-
145-
expect(event.message.messageId, isNull);
146-
});
147-
148-
test('jsonRepresentation returns correct JSON string', () {
149-
final json = {
150-
'message': validMessageJson,
151-
};
152-
final event = OSInAppMessageWillDisplayEvent(json);
153-
final jsonString = event.jsonRepresentation();
154-
155-
expect(jsonString, contains('"message"'));
156-
});
157-
});
158-
159-
group('OSInAppMessageDidDisplayEvent', () {
160-
test('creates from valid JSON with message', () {
161-
final json = {
162-
'message': validMessageJson,
163-
};
164-
final event = OSInAppMessageDidDisplayEvent(json);
165-
166-
expect(event.message.messageId, 'test-message-id-123');
167-
});
168-
169-
test('creates from JSON with null message_id', () {
170-
final json = {
171-
'message': <String, dynamic>{},
172-
};
173-
final event = OSInAppMessageDidDisplayEvent(json);
174-
175-
expect(event.message.messageId, isNull);
176-
});
177-
178-
test('jsonRepresentation returns correct JSON string', () {
179-
final json = {
180-
'message': validMessageJson,
181-
};
182-
final event = OSInAppMessageDidDisplayEvent(json);
183-
final jsonString = event.jsonRepresentation();
184-
185-
expect(jsonString, contains('"message"'));
186-
});
187-
});
188-
189-
group('OSInAppMessageWillDismissEvent', () {
190-
test('creates from valid JSON with message', () {
191-
final json = {
192-
'message': validMessageJson,
193-
};
194-
final event = OSInAppMessageWillDismissEvent(json);
195-
196-
expect(event.message.messageId, 'test-message-id-123');
197-
});
198-
199-
test('creates from JSON with null message_id', () {
200-
final json = {
201-
'message': <String, dynamic>{},
202-
};
203-
final event = OSInAppMessageWillDismissEvent(json);
204-
205-
expect(event.message.messageId, isNull);
206-
});
207-
208-
test('jsonRepresentation returns correct JSON string', () {
209-
final json = {
210-
'message': validMessageJson,
211-
};
212-
final event = OSInAppMessageWillDismissEvent(json);
213-
final jsonString = event.jsonRepresentation();
214-
215-
expect(jsonString, contains('"message"'));
216-
});
217-
});
218-
219-
group('OSInAppMessageDidDismissEvent', () {
220-
test('creates from valid JSON with message', () {
221-
final json = {
222-
'message': validMessageJson,
223-
};
224-
final event = OSInAppMessageDidDismissEvent(json);
225-
226-
expect(event.message.messageId, 'test-message-id-123');
227-
});
228-
229-
test('creates from JSON with null message_id', () {
230-
final json = {
231-
'message': <String, dynamic>{},
232-
};
233-
final event = OSInAppMessageDidDismissEvent(json);
234-
235-
expect(event.message.messageId, isNull);
236-
});
237-
238-
test('jsonRepresentation returns correct JSON string', () {
239-
final json = {
240-
'message': validMessageJson,
241-
};
242-
final event = OSInAppMessageDidDismissEvent(json);
243-
final jsonString = event.jsonRepresentation();
244-
245-
expect(jsonString, contains('"message"'));
246-
});
247-
});
155+
_testMessageEvent(
156+
'OSInAppMessageWillDisplayEvent',
157+
(json) => OSInAppMessageWillDisplayEvent(json),
158+
);
159+
_testMessageEvent(
160+
'OSInAppMessageDidDisplayEvent',
161+
(json) => OSInAppMessageDidDisplayEvent(json),
162+
);
163+
_testMessageEvent(
164+
'OSInAppMessageWillDismissEvent',
165+
(json) => OSInAppMessageWillDismissEvent(json),
166+
);
167+
_testMessageEvent(
168+
'OSInAppMessageDidDismissEvent',
169+
(json) => OSInAppMessageDidDismissEvent(json),
170+
);
248171
}

0 commit comments

Comments
 (0)