forked from ycccccccy/echotrace
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathanalytics_data_test.dart
More file actions
53 lines (49 loc) · 1.34 KB
/
analytics_data_test.dart
File metadata and controls
53 lines (49 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import 'package:flutter_test/flutter_test.dart';
import 'package:echotrace/models/analytics_data.dart';
void main() {
group('ChatStatistics messageTypeCounts', () {
test('aggregates known and unknown types', () {
final stats = ChatStatistics(
totalMessages: 0,
textMessages: 0,
imageMessages: 0,
voiceMessages: 0,
videoMessages: 0,
otherMessages: 0,
sentMessages: 0,
receivedMessages: 0,
activeDays: 0,
messageTypeCounts: {
1: 10,
244813135921: 5,
3: 2,
999: 7,
},
);
final dist = stats.messageTypeDistribution;
expect(dist['\u6587\u672c'], 15);
expect(dist['\u56fe\u7247'], 2);
expect(dist['\u5176\u4ed6'], 7);
});
test('round-trip json preserves counts', () {
final stats = ChatStatistics(
totalMessages: 1,
textMessages: 1,
imageMessages: 0,
voiceMessages: 0,
videoMessages: 0,
otherMessages: 0,
sentMessages: 1,
receivedMessages: 0,
activeDays: 1,
messageTypeCounts: {
1: 1,
42: 2,
},
);
final restored = ChatStatistics.fromJson(stats.toJson());
expect(restored.messageTypeCounts[1], 1);
expect(restored.messageTypeCounts[42], 2);
});
});
}