"""Tests for reference_signing_entity serialization.""" from abacus_contract.constants.constants import ( DEFAULT_PAGE_LIMIT, DEFAULT_PAGE_OFFSET, SIGNING_ENTITY_SORT_OPTIONS, SORT_ORDER_OPTIONS, ) from abacus_contract.schemas.reference_signing_entity import ( ReferenceSigningEntityDataloaderSchema, ReferenceSigningEntityFilterSchema, ReferenceSigningEntitySchema, ) from abacus_contract.tests.utils.factories import ReferenceSigningEntityFactory def test_reference_signing_entity_schema(): """Test reference_signing_entity serialization.""" reference_signing_entity = ReferenceSigningEntityFactory.create() result = ReferenceSigningEntitySchema().dump(reference_signing_entity) assert result == { 'reference_signing_entity_id': reference_signing_entity.reference_signing_entity_id, 'reference_sap_profit_center_id': reference_signing_entity.reference_sap_profit_center_id, 'reference_payment_entity_id': reference_signing_entity.reference_payment_entity_id, 'company_code': reference_signing_entity.company_code, 'tax_entity_company_code': reference_signing_entity.tax_entity_company_code, 'legal_name': 'AWAL Digital Limited', 'vat_number': 'GB 423 4787 86', 'company_registration_number': '04430703', 'address': '2 Canal Reach, London, N1C 4DB', } def test_reference_signing_entity_dataloader_schema(): """Test dataloader schema for reference_signing_entity.""" mock_signing_entities = [ { 'data': [ { 'reference_signing_entity_id': 1, 'reference_sap_profit_center_id': 1, 'reference_payment_entity_id': 1, 'company_code': '4920', 'legal_name': 'AWAL Digital Limited', 'vat_number': 'GB 423 4787 86', 'company_registration_number': '04430703', 'address': '2 Canal Reach, London, N1C 4DB', } ], 'data': None, } ] result = ReferenceSigningEntityDataloaderSchema(many=True).dump( mock_signing_entities ) assert result == mock_signing_entities def test_signing_entity_filter_schema(): """Test filter schema for signing entities.""" mock_input = { 'limit': DEFAULT_PAGE_LIMIT, 'offset': DEFAULT_PAGE_OFFSET, 'sort_by': SIGNING_ENTITY_SORT_OPTIONS.LEGAL_NAME, 'sort_order': SORT_ORDER_OPTIONS.DESC, } result = ReferenceSigningEntityFilterSchema().dump(mock_input) assert result == { 'limit': DEFAULT_PAGE_LIMIT, 'offset': DEFAULT_PAGE_OFFSET, 'sort_by': SIGNING_ENTITY_SORT_OPTIONS.LEGAL_NAME, 'sort_order': SORT_ORDER_OPTIONS.DESC, } def test_signing_entity_filter_schema_with_missing_fields(): """Test signing entities filter schema with missing fields.""" mock_input = {} result = ReferenceSigningEntityFilterSchema().load(mock_input) assert result == { 'limit': 500, 'offset': 0, 'sort_by': SIGNING_ENTITY_SORT_OPTIONS.COMPANY_CODE, 'sort_order': SORT_ORDER_OPTIONS.ASC, }