import pytest from dmp.google.dtos import AssignGoogleUserAdAccountLabelData from dmp.google.models import GoogleAdAccount, GoogleUserAdAccount from dmp.google.repositories import GoogleUserAdAccountRepository from dmp.google.services import GoogleUserAdAccountService from tests.unit.types import BuildModel, CreateModel class TestGoogleUserAdAccountService: @pytest.mark.db def test_create_or_update_user_ad_accounts_for_user( self, service: GoogleUserAdAccountService, user_ad_account_repository: GoogleUserAdAccountRepository, build_model: BuildModel, create_model: CreateModel, identity_id: str, ) -> None: ad_account_1 = create_model(GoogleAdAccount) ad_account_2 = create_model(GoogleAdAccount) create_model( GoogleUserAdAccount, identity_id=identity_id, ad_account_id=ad_account_1.id ) assignment_request_1 = build_model( AssignGoogleUserAdAccountLabelData, ad_account_id=ad_account_1.id ) assignment_request_2 = build_model( AssignGoogleUserAdAccountLabelData, ad_account_id=ad_account_2.id ) result_ad_accounts = service.create_or_update_user_ad_accounts_for_user( assignments=[assignment_request_1, assignment_request_2], identity_id=identity_id, ) assert result_ad_accounts assert len(result_ad_accounts) == 2 assert result_ad_accounts[0].ad_account_id == ad_account_1.id assert result_ad_accounts[0].vendor_id == assignment_request_1.vendor_id assert result_ad_accounts[0].subaccount_id == assignment_request_1.subaccount_id assert result_ad_accounts[1].ad_account_id == ad_account_2.id assert result_ad_accounts[1].vendor_id == assignment_request_2.vendor_id assert result_ad_accounts[1].subaccount_id == assignment_request_2.subaccount_id db_user_ad_accounts = user_ad_account_repository.find_by_identity_id( identity_id=identity_id ) assert db_user_ad_accounts assert len(db_user_ad_accounts) == 2 assert db_user_ad_accounts[0].ad_account_id == ad_account_1.id assert db_user_ad_accounts[0].vendor_id == assignment_request_1.vendor_id assert ( db_user_ad_accounts[0].subaccount_id == assignment_request_1.subaccount_id ) assert db_user_ad_accounts[1].ad_account_id == ad_account_2.id assert db_user_ad_accounts[1].vendor_id == assignment_request_2.vendor_id assert ( db_user_ad_accounts[1].subaccount_id == assignment_request_2.subaccount_id )