main
1import 'package:blood_pressure_app/model/storage/convert_util.dart';
2import 'package:blood_pressure_app/model/storage/settings_store.dart';
3import 'package:flutter/material.dart';
4import 'package:flutter_test/flutter_test.dart';
5
6void main() {
7 test('parseBool should parse valid boolean correctly', () {
8 expect(ConvertUtil.parseBool(true), true);
9 expect(ConvertUtil.parseBool(false), false);
10 expect(ConvertUtil.parseBool(1), true);
11 expect(ConvertUtil.parseBool(1.0), true);
12 expect(ConvertUtil.parseBool(0), false);
13 expect(ConvertUtil.parseBool(0.0), false);
14 expect(ConvertUtil.parseBool('true'), true);
15 expect(ConvertUtil.parseBool('false'), false);
16 });
17 test('parseBool should parse invalid values as null', () {
18 expect(ConvertUtil.parseBool('test'), null);
19 expect(ConvertUtil.parseBool(132), null);
20 expect(ConvertUtil.parseBool(-1), null);
21 expect(ConvertUtil.parseBool({'test': 5}), null);
22 expect(ConvertUtil.parseBool(null), null);
23 expect(ConvertUtil.parseBool(1.1), null);
24 });
25
26 test('parseInt should parse valid values correctly', () {
27 expect(ConvertUtil.parseInt(123), 123);
28 expect(ConvertUtil.parseInt(534), 534);
29 expect(ConvertUtil.parseInt(-1123), -1123);
30 expect(ConvertUtil.parseInt(1.0), 1);
31 expect(ConvertUtil.parseInt(0), 0);
32 expect(ConvertUtil.parseInt('0'), 0);
33 expect(ConvertUtil.parseInt('1321.0'), 1321);
34 expect(ConvertUtil.parseInt('-1234'), -1234);
35 });
36 test('parseInt should parse invalid values as null', () {
37 expect(ConvertUtil.parseInt('test'), null);
38 expect(ConvertUtil.parseInt(true), null);
39 expect(ConvertUtil.parseInt(1.2), null);
40 expect(ConvertUtil.parseInt({'test': 5}), null);
41 expect(ConvertUtil.parseInt(null), null);
42 expect(ConvertUtil.parseInt('123test'), null);
43 });
44
45 test('parseDouble should parse valid values correctly', () {
46 expect(ConvertUtil.parseDouble(123.123), 123.123);
47 expect(ConvertUtil.parseDouble(534), 534.0);
48 expect(ConvertUtil.parseDouble(-1123.543), -1123.543);
49 expect(ConvertUtil.parseDouble(1.0), 1.0);
50 expect(ConvertUtil.parseDouble(0.0), 0.0);
51 expect(ConvertUtil.parseDouble('0'), 0.0);
52 expect(ConvertUtil.parseDouble('1321.1234'), 1321.1234);
53 expect(ConvertUtil.parseDouble('-1234.654'), -1234.654);
54 });
55 test('parseDouble should parse invalid values as null', () {
56 expect(ConvertUtil.parseDouble('test'), null);
57 expect(ConvertUtil.parseDouble(true), null);
58 expect(ConvertUtil.parseDouble({'test': 5}), null);
59 expect(ConvertUtil.parseDouble(null), null);
60 expect(ConvertUtil.parseDouble('123test'), null);
61 expect(ConvertUtil.parseDouble('1234.1234.1234'), null);
62 });
63
64 test('parseString should parse valid values correctly', () {
65 expect(ConvertUtil.parseString('123.123'), '123.123');
66 expect(ConvertUtil.parseString('dasdhjsadjka'), 'dasdhjsadjka');
67 expect(ConvertUtil.parseString(123), '123');
68 expect(ConvertUtil.parseString(true), 'true');
69 expect(ConvertUtil.parseString(0.123), '0.123');
70 expect(ConvertUtil.parseString('null'), 'null');
71 });
72 test('parseString should parse invalid values as null', () {
73 expect(ConvertUtil.parseString(const Locale('test')), null);
74 expect(ConvertUtil.parseString({'test': 5}), null);
75 });
76
77 test('parseMaterialColor should parse valid values correctly', () {
78 expect(ConvertUtil.parseColor(Colors.deepOrange), Colors.deepOrange);
79 expect(ConvertUtil.parseColor(Colors.grey)?.toARGB32(), Colors.grey.toARGB32());
80 expect(ConvertUtil.parseColor(Colors.grey.toARGB32())?.toARGB32(), Colors.grey.toARGB32());
81 expect(ConvertUtil.parseColor(Colors.deepOrange.toARGB32())?.toARGB32(), Colors.deepOrange.toARGB32());
82 expect(ConvertUtil.parseColor(0xff000000)?.toARGB32(), 0xff000000);
83 expect(ConvertUtil.parseColor('0x00ff0000')?.toARGB32(), 0x00ff0000);
84 expect(ConvertUtil.parseColor(const Color(0x00ff0000))?.toARGB32(), 0x00ff0000);
85 });
86 test('parseMaterialColor should parse invalid values as null', () {
87 expect(ConvertUtil.parseColor('test'), null);
88 expect(ConvertUtil.parseString({'test': 5}), null);
89 });
90
91 test('parseLocale should not crash', () {
92 expect(ConvertUtil.parseLocale(const Locale('test')), const Locale('test'));
93 expect(ConvertUtil.parseLocale('DE'), const Locale('DE'));
94 expect(ConvertUtil.parseLocale(15), null);
95 expect(ConvertUtil.parseLocale(false), null);
96 expect(ConvertUtil.parseLocale('123'), const Locale('123'));
97 });
98 test('parseLocale should return null for string "NULL"', () {
99 expect(ConvertUtil.parseLocale('NULL'), null);
100 expect(ConvertUtil.parseLocale('null'), null);
101 expect(ConvertUtil.parseLocale('NuLl'), null);
102 });
103
104 test('parseList should convert valid values correctly', () {
105 expect(ConvertUtil.parseList<int>([1234,567,89,0]), [1234,567,89,0]);
106 expect(ConvertUtil.parseList<String>(['1234','567','89','0', 'test']), ['1234','567','89','0', 'test']);
107 expect(ConvertUtil.parseList<String>(<dynamic>['1234','567','89','0', 'test']), ['1234','567','89','0', 'test']);
108 expect(ConvertUtil.parseList<String>([]), []);
109 });
110 test('parseList should parse invalid values as null', () {
111 expect(ConvertUtil.parseList<int>(['1234','567','89','0', 'test']), null);
112 expect(ConvertUtil.parseList<String>({'test': 5}), null);
113 expect(ConvertUtil.parseList<String>([1234,567,89,0]), null);
114 expect(ConvertUtil.parseList<String>('tests'), null);
115 });
116
117 test('parseThemeMode should convert values correctly', () {
118 expect(ConvertUtil.parseThemeMode(ThemeMode.system.serialize()), ThemeMode.system);
119 expect(ConvertUtil.parseThemeMode(ThemeMode.dark.serialize()), ThemeMode.dark);
120 expect(ConvertUtil.parseThemeMode(ThemeMode.light.serialize()), ThemeMode.light);
121 expect(ConvertUtil.parseThemeMode(null), null);
122 });
123}