This commit is contained in:
amirrezaghabeli
2025-10-06 08:58:36 +03:30
parent 15f34e7006
commit 0653cdb6d7
21 changed files with 2190 additions and 15 deletions
+97
View File
@@ -0,0 +1,97 @@
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);
}
}
@@ -0,0 +1,37 @@
import 'package:tm_app/core/utils/result.dart';
import 'package:tm_app/data/repositories/your_tenders_repository.dart';
import 'package:tm_app/data/services/model/liked_tenders_response/liked_tenders_response.dart';
import 'package:tm_app/data/services/model/request_models/get_tenders_request_model/get_tenders_request_model.dart';
import 'package:tm_app/data/services/model/request_models/tender_feedback_request_model/tender_feedback_request_model.dart';
import 'package:tm_app/data/services/model/tender_approvals_response/tender_approvals_response.dart';
import '../fixtures/test_fixtures.dart';
class MockYourTendersRepository implements YourTendersRepository {
Result<TenderApprovalsResponse>? _getTendersResult;
Result<LikedTendersResponse>? _getTendersFeedbackResult;
void setGetTendersResult(Result<TenderApprovalsResponse> result) {
_getTendersResult = result;
}
void setGetTendersFeedbackResult(Result<LikedTendersResponse> result) {
_getTendersFeedbackResult = result;
}
@override
Future<Result<TenderApprovalsResponse>> getTenders({
required GetTendersRequestModel requestModel,
}) async {
return _getTendersResult ??
const Result.ok(TestFixtures.tenderApprovalsResponse);
}
@override
Future<Result<LikedTendersResponse>> getTendersFeedback({
required TenderFeedbackRequestModel requestModel,
}) async {
return _getTendersFeedbackResult ??
const Result.ok(TestFixtures.likedTendersResponse);
}
}