/** * Test validate account relationship with financial account type. */ public function testValidateRelationship() { $params = array('labelColumn' => 'name'); $financialAccount = CRM_Core_PseudoConstant::get('CRM_Financial_DAO_FinancialAccount', 'financial_account_type_id', $params); $accountRelationships = CRM_Core_PseudoConstant::get('CRM_Financial_DAO_EntityFinancialAccount', 'account_relationship', $params); $financialType = CRM_Contribute_PseudoConstant::financialType(); $financialAccountType = new CRM_Financial_DAO_EntityFinancialAccount(); $financialAccountType->entity_table = 'civicrm_financial_type'; $financialAccountType->entity_id = array_search('Member Dues', $financialType); $financialAccountType->account_relationship = array_search('Credit/Contra Revenue Account is', $accountRelationships); $financialAccountType->financial_account_id = array_search('Liability', $financialAccount); try { CRM_Financial_BAO_FinancialTypeAccount::validateRelationship($financialAccountType); $this->fail("Missed expected exception"); } catch (Exception $e) { $this->assertTrue(TRUE, 'Received expected exception'); $this->assertEquals($e->getMessage(), "This financial account cannot have 'Credit/Contra Revenue Account is' relationship."); } }