Files
tm_app/test/mocks/mock_auth_repository.dart
T
amirrezaghabeli 0653cdb6d7 changes
2025-10-06 08:58:36 +03:30

98 lines
2.9 KiB
Dart

import 'package:tm_app/core/utils/result.dart';
import 'package:tm_app/data/repositories/auth_repository.dart';
import 'package:tm_app/data/services/model/forgot_password_response/forgot_password_response_model.dart';
import 'package:tm_app/data/services/model/login_response/login_response_model.dart';
import 'package:tm_app/data/services/model/logout_response/logout_response.dart';
import 'package:tm_app/data/services/model/reset_password_response/reset_password_response.dart';
import 'package:tm_app/data/services/model/verify_otp_response/verify_otp_response_model.dart';
import '../fixtures/test_fixtures.dart';
class MockAuthRepository implements AuthRepository {
Result<LoginResponseModel>? _loginResult;
Result<LogoutResponse>? _logoutResult;
Result<ForgotPasswordResponseModel>? _forgotPasswordResult;
Result<VerifyOtpResponseModel>? _verifyOtpResult;
Result<ResetPasswordResponse>? _resetPasswordResult;
Result<bool>? _checkIsLoggedInResult;
Exception? _localLogoutException;
void setLoginResult(Result<LoginResponseModel> result) {
_loginResult = result;
}
void setLogoutResult(Result<LogoutResponse> result) {
_logoutResult = result;
}
void setForgotPasswordResult(Result<ForgotPasswordResponseModel> result) {
_forgotPasswordResult = result;
}
void setVerifyOtpResult(Result<VerifyOtpResponseModel> result) {
_verifyOtpResult = result;
}
void setResetPasswordResult(Result<ResetPasswordResponse> result) {
_resetPasswordResult = result;
}
void setCheckIsLoggedInResult(Result<bool> result) {
_checkIsLoggedInResult = result;
}
void setLocalLogoutException(Exception exception) {
_localLogoutException = exception;
}
@override
Future<Result<LoginResponseModel>> login({
required String username,
required String password,
}) async {
return _loginResult ?? const Result.ok(TestFixtures.loginResponse);
}
@override
Future<Result<LogoutResponse>> logout() async {
return _logoutResult ?? const Result.ok(TestFixtures.logoutResponse);
}
@override
Future<Result<ResetPasswordResponse>> resetPassword({
required String newPassword,
required String token,
}) async {
return _resetPasswordResult ??
const Result.ok(TestFixtures.resetPasswordResponse);
}
@override
Future<void> localLogout() async {
if (_localLogoutException != null) {
throw _localLogoutException!;
}
}
@override
Future<Result<ForgotPasswordResponseModel>> forgotPassword({
required String email,
}) async {
return _forgotPasswordResult ??
const Result.ok(TestFixtures.forgotPasswordResponse);
}
@override
Future<Result<VerifyOtpResponseModel>> verifyOtp({
required String code,
required String email,
}) async {
return _verifyOtpResult ?? const Result.ok(TestFixtures.verifyOtpResponse);
}
@override
Future<Result<bool>> checkIsLoggedIn() async {
return _checkIsLoggedInResult ?? const Result.ok(true);
}
}