Files
eatvio_app/test/features/registration/services/registration_service_test.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);
});
});
}