"""Payment Entity Payoneer Program model.""" from abacus_account.models.payment_entity_payoneer_program import ( PaymentEntityPayoneerProgram, ) from abacus_account.tests.utils.factories import ( PaymentEntityPayoneerProgramFactory, ReferencePayoneerProgramFactory, ) def test_get_payment_entity_payoneer_program_by_payment_entity_id( reference_payment_entity_fixture, ): """Test GET reference_payoneer_program by payoneer_program_id.""" payoneer_program = ReferencePayoneerProgramFactory.create(payoneer_program_id=101) payment_entity_payoneer_program = PaymentEntityPayoneerProgramFactory.create( reference_payment_entity_id=6, payoneer_program_id=payoneer_program.payoneer_program_id, ) result = PaymentEntityPayoneerProgram.get_by_payment_entity_id( payment_entity_payoneer_program.reference_payment_entity_id ) assert len(result) == 1 record = result[0] assert ( record.payment_entity_payoneer_program_id == payment_entity_payoneer_program.payment_entity_payoneer_program_id ) assert record.payment_currency == payment_entity_payoneer_program.payment_currency assert ( record.payoneer_program_id == payment_entity_payoneer_program.payoneer_program_id ) assert ( record.reference_payment_entity_id == payment_entity_payoneer_program.reference_payment_entity_id ) def test_get_by_criteria(fresh_db, reference_payment_entity_fixture): """Get reference_payoneer_program by payoneer_program_id and payment currency.""" gbp_payoneer_program = ReferencePayoneerProgramFactory.create() gbp_payment_entity_payoneer_program = PaymentEntityPayoneerProgramFactory.create( payoneer_program_id=gbp_payoneer_program.payoneer_program_id, payment_currency='GBP', reference_payment_entity_id=5, ) usd_payoneer_program = ReferencePayoneerProgramFactory.create( funding_currency='USD' ) PaymentEntityPayoneerProgramFactory.create( payoneer_program_id=usd_payoneer_program.payoneer_program_id, reference_payment_entity_id=5, ) result = PaymentEntityPayoneerProgram.get_by_criteria( payment_entity_id=5, payment_currency='GBP' ) assert ( result.payment_entity_payoneer_program_id == gbp_payment_entity_payoneer_program.payment_entity_payoneer_program_id ) assert result.payoneer_program_id == gbp_payoneer_program.payoneer_program_id assert result.payment_currency == 'GBP' result = PaymentEntityPayoneerProgram.get_by_criteria( payment_entity_id=5, payment_currency='NOK' ) assert not result