forked from eatvio/eatvio_app
124 lines
3.8 KiB
Dart
124 lines
3.8 KiB
Dart
import 'package:eatvio_app/core/prefs.dart';
|
|
import 'package:eatvio_app/core/prefs_keys.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:mockito/annotations.dart';
|
|
import 'package:mockito/mockito.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
import 'prefs_test.mocks.dart';
|
|
|
|
@GenerateMocks([SharedPreferences])
|
|
void main() {
|
|
group('Prefs', () {
|
|
late MockSharedPreferences mockSharedPreferences;
|
|
late Prefs prefs;
|
|
|
|
setUp(() {
|
|
mockSharedPreferences = MockSharedPreferences();
|
|
prefs = Prefs(mockSharedPreferences);
|
|
});
|
|
|
|
test('setString stores string value', () async {
|
|
when(mockSharedPreferences.setString('hasAnonymousTokenBeenSent', 'value'))
|
|
.thenAnswer((_) async => true);
|
|
|
|
await prefs.setString(PrefsKeys.hasAnonymousTokenBeenSent, 'value');
|
|
|
|
verify(mockSharedPreferences.setString('hasAnonymousTokenBeenSent', 'value')).called(1);
|
|
});
|
|
|
|
test('getString retrieves string value', () {
|
|
when(mockSharedPreferences.getString('hasAnonymousTokenBeenSent'))
|
|
.thenReturn('value');
|
|
|
|
final result = prefs.getString(PrefsKeys.hasAnonymousTokenBeenSent);
|
|
|
|
expect(result, 'value');
|
|
verify(mockSharedPreferences.getString('hasAnonymousTokenBeenSent')).called(1);
|
|
});
|
|
|
|
test('getString returns null when key does not exist', () {
|
|
when(mockSharedPreferences.getString('hasAnonymousTokenBeenSent'))
|
|
.thenReturn(null);
|
|
|
|
final result = prefs.getString(PrefsKeys.hasAnonymousTokenBeenSent);
|
|
|
|
expect(result, null);
|
|
});
|
|
|
|
test('setInt stores int value', () async {
|
|
when(mockSharedPreferences.setInt('registrationDate', 12345))
|
|
.thenAnswer((_) async => true);
|
|
|
|
await prefs.setInt(PrefsKeys.registrationDate, 12345);
|
|
|
|
verify(mockSharedPreferences.setInt('registrationDate', 12345)).called(1);
|
|
});
|
|
|
|
test('getInt retrieves int value', () {
|
|
when(mockSharedPreferences.getInt('registrationDate'))
|
|
.thenReturn(12345);
|
|
|
|
final result = prefs.getInt(PrefsKeys.registrationDate);
|
|
|
|
expect(result, 12345);
|
|
verify(mockSharedPreferences.getInt('registrationDate')).called(1);
|
|
});
|
|
|
|
test('getInt returns null when key does not exist', () {
|
|
when(mockSharedPreferences.getInt('registrationDate'))
|
|
.thenReturn(null);
|
|
|
|
final result = prefs.getInt(PrefsKeys.registrationDate);
|
|
|
|
expect(result, null);
|
|
});
|
|
|
|
test('setBool stores bool value', () async {
|
|
when(mockSharedPreferences.setBool('welcomeScreenWasShowed', true))
|
|
.thenAnswer((_) async => true);
|
|
|
|
await prefs.setBool(PrefsKeys.welcomeScreenWasShowed, true);
|
|
|
|
verify(mockSharedPreferences.setBool('welcomeScreenWasShowed', true)).called(1);
|
|
});
|
|
|
|
test('getBool retrieves bool value', () {
|
|
when(mockSharedPreferences.getBool('welcomeScreenWasShowed'))
|
|
.thenReturn(true);
|
|
|
|
final result = prefs.getBool(PrefsKeys.welcomeScreenWasShowed);
|
|
|
|
expect(result, true);
|
|
verify(mockSharedPreferences.getBool('welcomeScreenWasShowed')).called(1);
|
|
});
|
|
|
|
test('getBool returns null when key does not exist', () {
|
|
when(mockSharedPreferences.getBool('welcomeScreenWasShowed'))
|
|
.thenReturn(null);
|
|
|
|
final result = prefs.getBool(PrefsKeys.welcomeScreenWasShowed);
|
|
|
|
expect(result, null);
|
|
});
|
|
|
|
test('remove deletes key', () async {
|
|
when(mockSharedPreferences.remove('hasAnonymousTokenBeenSent'))
|
|
.thenAnswer((_) async => true);
|
|
|
|
await prefs.remove(PrefsKeys.hasAnonymousTokenBeenSent);
|
|
|
|
verify(mockSharedPreferences.remove('hasAnonymousTokenBeenSent')).called(1);
|
|
});
|
|
|
|
test('clear removes all keys', () async {
|
|
when(mockSharedPreferences.clear())
|
|
.thenAnswer((_) async => true);
|
|
|
|
await prefs.clear();
|
|
|
|
verify(mockSharedPreferences.clear()).called(1);
|
|
});
|
|
});
|
|
}
|