Files
eatvio_app/test/features/my_finance/services/cards_service_test.dart

79 lines
2.4 KiB
Dart

import 'package:eatvio_app/features/my_finance/models/card_model.dart';
import 'package:eatvio_app/features/my_finance/models/payment_url_model.dart';
import 'package:eatvio_app/features/my_finance/services/cards_service.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/annotations.dart';
import 'package:mockito/mockito.dart';
import 'cards_service_test.mocks.dart';
@GenerateNiceMocks([MockSpec<CardsService>()])
void main() {
group('CardsService', () {
late MockCardsService mockCardsService;
setUp(() {
mockCardsService = MockCardsService();
});
test('getCards - возвращает список карт', () async {
final expectedCards = <CardModel>[];
when(mockCardsService.getCards())
.thenAnswer((_) async => expectedCards);
final result = await mockCardsService.getCards();
expect(result, isA<List<CardModel>>());
verify(mockCardsService.getCards()).called(1);
});
test('addCard - добавляет карту', () async {
final expectedUrl = PaymentUrlModel(paymentUrl: 'https://example.com/payment');
when(mockCardsService.addCard())
.thenAnswer((_) async => expectedUrl);
final result = await mockCardsService.addCard();
expect(result, isA<PaymentUrlModel>());
expect(result.paymentUrl, 'https://example.com/payment');
verify(mockCardsService.addCard()).called(1);
});
test('markAsDefault - помечает карту как основную', () async {
const id = 1;
when(mockCardsService.markAsDefault(id: id))
.thenAnswer((_) async => Future.value());
await mockCardsService.markAsDefault(id: id);
verify(mockCardsService.markAsDefault(id: id)).called(1);
});
test('deleteCard - удаляет карту', () async {
const id = 1;
when(mockCardsService.deleteCard(id: id))
.thenAnswer((_) async => Future.value());
await mockCardsService.deleteCard(id: id);
verify(mockCardsService.deleteCard(id: id)).called(1);
});
test('collectCharge - собирает платеж', () async {
const chosenPlanId = 1;
when(mockCardsService.collectCharge(chosenPlanId: chosenPlanId))
.thenAnswer((_) async => Future.value());
await mockCardsService.collectCharge(chosenPlanId: chosenPlanId);
verify(mockCardsService.collectCharge(chosenPlanId: chosenPlanId)).called(1);
});
});
}