createObject('Team', array( 'name' => 'Name_'.$iNum, 'org_id' => $this->getTestOrgId(), )); $this->debug("Created Team {$oTeam->GetName()} ({$oTeam->GetKey()})"); return $oTeam; } /** * * @param Person $oPerson * @param Team $oTeam * * @return lnkPersonToTeam * @throws Exception */ protected function AddPersonToTeam($oPerson, $oTeam) { $oNewLink = new lnkPersonToTeam(); $oNewLink->Set('person_id', $oPerson->GetKey()); $oPersons = $oTeam->Get('persons_list'); $oPersons->AddItem($oNewLink); $oTeam->Set('persons_list', $oPersons); return $oNewLink; } /** * testUniquenessRuleMessage. * * N°5916 - Generic message on Link Uniqueness rules */ public function testUniquenessRuleMessage() { $this->CreateTestOrganization(); $oPerson = $this->CreatePerson(1); $oTeam = $this->CreateTeam(1); $oLnk = $this->AddPersonToTeam($oPerson, $oTeam); $oTeam->DBUpdate(); // Default error $sMessage = $this->InvokeNonPublicMethod(Person::class, 'GetUniquenessRuleMessage', $oPerson, ['no_duplicate']); $this->assertEquals("Uniqueness rule 'no_duplicate' in error", $sMessage); // Generic message $sMessage = $this->InvokeNonPublicMethod(lnkPersonToTeam::class, 'GetUniquenessRuleMessage', $oLnk, ['no_duplicate']); $this->assertEquals("Team: Name_1 is already linked to Person: Test Person_1, duplicates are not allowed on this relation.", $sMessage); // Specific message $sMessage = $this->InvokeNonPublicMethod(Person::class, 'GetUniquenessRuleMessage', $oPerson, ['employee_number']); $this->assertEquals("there is already a person in 'UnitTestOrganization' organization with the same employee number", $sMessage); } }