from src.entity.api.transaction_api import TransactionApi from datetime import datetime, timedelta def test_is_valid(transaction_api: TransactionApi): """ Test the is_valid method of the TransactionApi class Case: valid transaction_api object """ # Check if the transaction_api object is valid assert transaction_api.is_valid() is True def test_is_valid_negative_amount(transaction_api: TransactionApi): # Check if the transaction_api object is invalid with negative amount transaction_api.transaction_amount = -100.0 assert transaction_api.is_valid() is False def test_is_valid_future_timestamp(transaction_api: TransactionApi): # Check if the transaction_api object is invalid with future timestamp transaction_api.transaction_timestamp = 999999999999999 assert transaction_api.is_valid() is False def test_is_valid_future_dob(transaction_api: TransactionApi): # Check if the transaction_api object is invalid with too young date of birth nine_years_ago = datetime.now() - timedelta(days=365 * 9) # 9 years old customer transaction_api.customer_date_of_birth = nine_years_ago.strftime("%Y-%m-%d") assert transaction_api.is_valid() is False def test_is_valid_invalid_date_format(transaction_api: TransactionApi): # Check if the transaction_api object is invalid with invalid date of birth format transaction_api.customer_date_of_birth = "01-01-1980" assert transaction_api.is_valid() is False