Loading module/Oscar/src/Oscar/Connector/ConnectorActivityCSVWithConf.php +1 −1 Original line number Diff line number Diff line Loading @@ -173,7 +173,7 @@ class ConnectorActivityCSVWithConf implements ConnectorInterface * @param $separator * @return array */ private function extractArrayString( $value, $separator ){ public function extractArrayString( $value, $separator ){ $out = []; if( $separator === null ){ $out = [trim($value)]; Loading module/Oscar/src/Oscar/Connector/ConnectorActivityJSON.php +0 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,6 @@ class ConnectorActivityJSON implements ConnectorInterface return $roleObj; } catch (\Exception $e ){ throw new ConnectorException(sprintf("Impossible de créer le rôle '%s' : %s", $role, $e->getMessage())); throw new ConnectorException(sprintf("Impossible de créer le rôle '%s' : %s", $role, $e->getMessage())); } } catch (NonUniqueResultException $e){ throw new ConnectorException(sprintf("ATTENTION ! Le rôle '%s' est présent plusieurs fois dans la base de données", $role)); Loading module/Oscar/src/Oscar/Import/Data/DataExtractorFullname.php +11 −5 Original line number Diff line number Diff line Loading @@ -21,11 +21,17 @@ class DataExtractorFullname extends AbstractDataExtractor return null; if( preg_match('/([\w-]*)( |\.)([\w- ]*)(<(.*@.*)>)?/ui', $data, $matches) ){ $firstname = $matches[1]; $lastname = trim($matches[3]); $fullname = sprintf('%s %s', $firstname, $lastname); $email = count($matches) == 6 ? $matches[5] : ""; return [ 'firstname' => $matches[1], 'lastname' => $matches[3], 'fullname' => $matches[1].' '.$matches[3], 'email' => count($matches) == 6 ? $matches[5] : "" 'firstname' => $firstname, 'lastname' => $lastname, 'fullname' => $fullname, 'email' => $email ]; } return null; Loading tests/Oscar/Connector/DataExtractorFullnameTest.php 0 → 100644 +98 −0 Original line number Diff line number Diff line <?php /** * Created by PhpStorm. * User: jacksay * Date: 18/04/2018 * Time: 13:42 */ namespace tests\Oscar\Connector; use Oscar\Connector\ConnectorActivityCSVWithConf; use Oscar\Import\Data\DataExtractorFullname; use PHPUnit\Framework\TestCase; class DataExtractorFullnameTest extends TestCase { /** * Prénom simple */ public function testSimple() { $input = 'Stéphane Bouvry'; $extractor = new DataExtractorFullname(); $datas = $extractor->extract($input); $this->assertEquals('Stéphane', $datas['firstname']); $this->assertEquals('Bouvry', $datas['lastname']); $this->assertEquals('Stéphane Bouvry', $datas['fullname']); $this->assertEquals('', $datas['email']); } /** * Simple avec Email */ public function testSimpleAvecEmail() { $input = 'Stéphane Bouvry <stephane.bouvry@unicaen.fr>'; $extractor = new DataExtractorFullname(); $datas = $extractor->extract($input); $this->assertEquals('Stéphane', $datas['firstname']); $this->assertEquals('Bouvry', $datas['lastname']); $this->assertEquals('Stéphane Bouvry', $datas['fullname']); $this->assertEquals('stephane.bouvry@unicaen.fr', $datas['email']); } /** * Prénom composé avec un tiret */ public function testPrénomComposé() { $input = 'Jean-Claude Dus'; $extractor = new DataExtractorFullname(); $datas = $extractor->extract($input); $this->assertEquals('Jean-Claude', $datas['firstname']); $this->assertEquals('Dus', $datas['lastname']); $this->assertEquals('Jean-Claude Dus', $datas['fullname']); $this->assertEquals('', $datas['email']); } /** * Prénom composé avec un tiret */ public function testPrénomComposéAvecEmail() { $input = 'Jean-Claude Dus <jean-claude.dus@unicaen.fr>'; $extractor = new DataExtractorFullname(); $datas = $extractor->extract($input); $this->assertEquals('Jean-Claude', $datas['firstname']); $this->assertEquals('Dus', $datas['lastname']); $this->assertEquals('Jean-Claude Dus', $datas['fullname']); $this->assertEquals('jean-claude.dus@unicaen.fr', $datas['email']); } /** * BUG : Identifié par Damien Rieu sur les nom de famille avec espace */ public function testNomEspace() { $input = 'Julie Le Carpentier'; $extractor = new DataExtractorFullname(); $datas = $extractor->extract($input); $this->assertEquals('Julie', $datas['firstname']); $this->assertEquals('Le Carpentier', $datas['lastname']); $this->assertEquals('Julie Le Carpentier', $datas['fullname']); $this->assertEquals('', $datas['email']); } } No newline at end of file Loading
module/Oscar/src/Oscar/Connector/ConnectorActivityCSVWithConf.php +1 −1 Original line number Diff line number Diff line Loading @@ -173,7 +173,7 @@ class ConnectorActivityCSVWithConf implements ConnectorInterface * @param $separator * @return array */ private function extractArrayString( $value, $separator ){ public function extractArrayString( $value, $separator ){ $out = []; if( $separator === null ){ $out = [trim($value)]; Loading
module/Oscar/src/Oscar/Connector/ConnectorActivityJSON.php +0 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,6 @@ class ConnectorActivityJSON implements ConnectorInterface return $roleObj; } catch (\Exception $e ){ throw new ConnectorException(sprintf("Impossible de créer le rôle '%s' : %s", $role, $e->getMessage())); throw new ConnectorException(sprintf("Impossible de créer le rôle '%s' : %s", $role, $e->getMessage())); } } catch (NonUniqueResultException $e){ throw new ConnectorException(sprintf("ATTENTION ! Le rôle '%s' est présent plusieurs fois dans la base de données", $role)); Loading
module/Oscar/src/Oscar/Import/Data/DataExtractorFullname.php +11 −5 Original line number Diff line number Diff line Loading @@ -21,11 +21,17 @@ class DataExtractorFullname extends AbstractDataExtractor return null; if( preg_match('/([\w-]*)( |\.)([\w- ]*)(<(.*@.*)>)?/ui', $data, $matches) ){ $firstname = $matches[1]; $lastname = trim($matches[3]); $fullname = sprintf('%s %s', $firstname, $lastname); $email = count($matches) == 6 ? $matches[5] : ""; return [ 'firstname' => $matches[1], 'lastname' => $matches[3], 'fullname' => $matches[1].' '.$matches[3], 'email' => count($matches) == 6 ? $matches[5] : "" 'firstname' => $firstname, 'lastname' => $lastname, 'fullname' => $fullname, 'email' => $email ]; } return null; Loading
tests/Oscar/Connector/DataExtractorFullnameTest.php 0 → 100644 +98 −0 Original line number Diff line number Diff line <?php /** * Created by PhpStorm. * User: jacksay * Date: 18/04/2018 * Time: 13:42 */ namespace tests\Oscar\Connector; use Oscar\Connector\ConnectorActivityCSVWithConf; use Oscar\Import\Data\DataExtractorFullname; use PHPUnit\Framework\TestCase; class DataExtractorFullnameTest extends TestCase { /** * Prénom simple */ public function testSimple() { $input = 'Stéphane Bouvry'; $extractor = new DataExtractorFullname(); $datas = $extractor->extract($input); $this->assertEquals('Stéphane', $datas['firstname']); $this->assertEquals('Bouvry', $datas['lastname']); $this->assertEquals('Stéphane Bouvry', $datas['fullname']); $this->assertEquals('', $datas['email']); } /** * Simple avec Email */ public function testSimpleAvecEmail() { $input = 'Stéphane Bouvry <stephane.bouvry@unicaen.fr>'; $extractor = new DataExtractorFullname(); $datas = $extractor->extract($input); $this->assertEquals('Stéphane', $datas['firstname']); $this->assertEquals('Bouvry', $datas['lastname']); $this->assertEquals('Stéphane Bouvry', $datas['fullname']); $this->assertEquals('stephane.bouvry@unicaen.fr', $datas['email']); } /** * Prénom composé avec un tiret */ public function testPrénomComposé() { $input = 'Jean-Claude Dus'; $extractor = new DataExtractorFullname(); $datas = $extractor->extract($input); $this->assertEquals('Jean-Claude', $datas['firstname']); $this->assertEquals('Dus', $datas['lastname']); $this->assertEquals('Jean-Claude Dus', $datas['fullname']); $this->assertEquals('', $datas['email']); } /** * Prénom composé avec un tiret */ public function testPrénomComposéAvecEmail() { $input = 'Jean-Claude Dus <jean-claude.dus@unicaen.fr>'; $extractor = new DataExtractorFullname(); $datas = $extractor->extract($input); $this->assertEquals('Jean-Claude', $datas['firstname']); $this->assertEquals('Dus', $datas['lastname']); $this->assertEquals('Jean-Claude Dus', $datas['fullname']); $this->assertEquals('jean-claude.dus@unicaen.fr', $datas['email']); } /** * BUG : Identifié par Damien Rieu sur les nom de famille avec espace */ public function testNomEspace() { $input = 'Julie Le Carpentier'; $extractor = new DataExtractorFullname(); $datas = $extractor->extract($input); $this->assertEquals('Julie', $datas['firstname']); $this->assertEquals('Le Carpentier', $datas['lastname']); $this->assertEquals('Julie Le Carpentier', $datas['fullname']); $this->assertEquals('', $datas['email']); } } No newline at end of file