98 lines
2.9 KiB
Dart
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);
|
|
}
|
|
}
|