forked from eatvio/eatvio_app
61 lines
2.7 KiB
Dart
61 lines
2.7 KiB
Dart
import 'package:eatvio_app/features/registration/models/location_model.dart';
|
|
import 'package:eatvio_app/features/registration/services/registration_service.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:mockito/annotations.dart';
|
|
import 'package:mockito/mockito.dart';
|
|
|
|
import '../../../fixtures/fixture_reader.dart';
|
|
import 'registration_service_test.mocks.dart';
|
|
|
|
@GenerateNiceMocks([MockSpec<RegistrationService>()])
|
|
void main() {
|
|
group('RegistrationService', () {
|
|
late MockRegistrationService mockRegistrationService;
|
|
|
|
setUp(() {
|
|
mockRegistrationService = MockRegistrationService();
|
|
});
|
|
|
|
test('register - регистрирует нового пользователя', () async {
|
|
final expectedResponse = {'success': 'true', 'message': 'User registered'};
|
|
final registrationData = {'first_name': 'John', 'last_name': 'Doe', 'email': 'john@example.com', 'password': 'password123'};
|
|
|
|
when(mockRegistrationService.register(sheet: registrationData)).thenAnswer((_) async => expectedResponse);
|
|
|
|
final result = await mockRegistrationService.register(sheet: registrationData);
|
|
|
|
expect(result, isA<Map<String, String>>());
|
|
verify(mockRegistrationService.register(sheet: registrationData)).called(1);
|
|
});
|
|
|
|
test('getLocationsByAddress - возвращает локации по адресу', () async {
|
|
const query = 'Москва';
|
|
final locationJson = FixtureReader.readAsMap('registration/location_response.json');
|
|
final expectedLocation = LocationModel.fromJson(locationJson);
|
|
|
|
when(mockRegistrationService.getLocationsByAddress(query: query)).thenAnswer((_) async => expectedLocation);
|
|
|
|
final result = await mockRegistrationService.getLocationsByAddress(query: query);
|
|
|
|
expect(result, isA<LocationModel>());
|
|
expect(result.locations.length, 2);
|
|
verify(mockRegistrationService.getLocationsByAddress(query: query)).called(1);
|
|
});
|
|
|
|
test('getLocationsByCoordinate - возвращает локации по координатам', () async {
|
|
const latitude = '55.7558';
|
|
const longitude = '37.6173';
|
|
final locationJson = FixtureReader.readAsMap('registration/location_response.json');
|
|
final expectedLocation = LocationModel.fromJson(locationJson);
|
|
|
|
when(mockRegistrationService.getLocationsByCoordinate(latitude: latitude, longitude: longitude)).thenAnswer((_) async => expectedLocation);
|
|
|
|
final result = await mockRegistrationService.getLocationsByCoordinate(latitude: latitude, longitude: longitude);
|
|
|
|
expect(result, isA<LocationModel>());
|
|
expect(result.locations.length, 2);
|
|
verify(mockRegistrationService.getLocationsByCoordinate(latitude: latitude, longitude: longitude)).called(1);
|
|
});
|
|
});
|
|
}
|