forked from eatvio/eatvio_app
79 lines
2.4 KiB
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);
|
|
});
|
|
});
|
|
}
|
|
|