diff --git a/cosmogramme/tests/php/classes/NoticeIntegrationTest.php b/cosmogramme/tests/php/classes/NoticeIntegrationTest.php index 3e6c0022180cb85aab7aafd4b0d945a1f7e13c19..9be41add32b757c326da00288b25db2c69c4211b 100644 --- a/cosmogramme/tests/php/classes/NoticeIntegrationTest.php +++ b/cosmogramme/tests/php/classes/NoticeIntegrationTest.php @@ -357,31 +357,68 @@ abstract class NoticeIntegrationMarc21ToUnimarcTest extends NoticeIntegrationAbs class NoticeIntegrationMarc21CoupCavalierToUnimarcTest extends NoticeIntegrationAbstract { + protected $_id_profil_donnees = 150; //MARC21 DYNIX + public function setUp() { parent::setUp(); + + $this->_mock_sql + ->whenCalled('fetchEnreg') + ->with('Select * from profil_donnees where id_profil=150') + ->answers( + ['id_profil' => 150, + 'libelle' => 'MARC21 Dynix', + 'accents' => '4', + 'rejet_periodiques' => '1', + 'id_article_periodique' => '0', + 'type_fichier' => '0', + 'format' => '6', + 'attributs' => 'a:7:{i:0;a:8:{s:8:"type_doc";a:12:{i:0;a:3:{s:4:"code";s:1:"0";s:5:"label";s:0:"";s:8:"zone_995";s:0:"";}i:1;a:3:{s:4:"code";s:1:"1";s:5:"label";s:5:"am;na";s:8:"zone_995";s:22:"LIV;MS;LDV;LVI;LV;LIVC";}i:2;a:3:{s:4:"code";s:1:"2";s:5:"label";s:2:"as";s:8:"zone_995";s:12:"PER;REVC;REV";}i:3;a:3:{s:4:"code";s:1:"3";s:5:"label";s:3:"i;j";s:8:"zone_995";s:17:"CD;LIVCD;LIVK7;K7";}i:4;a:3:{s:4:"code";s:1:"4";s:5:"label";s:1:"g";s:8:"zone_995";s:25:"DIAPO;DVD;VHS;VHD;VD;DVDJ";}i:5;a:3:{s:4:"code";s:1:"5";s:5:"label";s:3:"l;m";s:8:"zone_995";s:3:"CDR";}i:6;a:3:{s:4:"code";s:1:"7";s:5:"label";s:0:"";s:8:"zone_995";s:7:"LCA;LCD";}i:7;a:3:{s:4:"code";s:1:"8";s:5:"label";s:0:"";s:8:"zone_995";s:3:"DOS";}i:8;a:3:{s:4:"code";s:1:"9";s:5:"label";s:0:"";s:8:"zone_995";s:0:"";}i:9;a:3:{s:4:"code";s:2:"10";s:5:"label";s:0:"";s:8:"zone_995";s:6:"WEB;MF";}i:10;a:3:{s:4:"code";s:2:"11";s:5:"label";s:0:"";s:8:"zone_995";s:2:"JV";}i:11;a:3:{s:4:"code";s:3:"100";s:5:"label";s:0:"";s:8:"zone_995";s:0:"";}}s:17:"champ_code_barres";s:3:"999";s:10:"champ_cote";s:1:"k";s:14:"champ_type_doc";s:1:"r";s:11:"champ_genre";s:0:"";s:13:"champ_section";s:1:"z";s:17:"champ_emplacement";s:1:"u";s:12:"champ_annexe";s:1:"b";}i:1;a:1:{s:6:"champs";s:0:"";}i:2;a:1:{s:6:"champs";s:0:"";}i:3;a:1:{s:6:"champs";s:0:"";}i:5;a:3:{s:6:"champs";s:0:"";s:17:"xml_balise_abonne";s:0:"";s:17:"xml_champs_abonne";a:11:{s:6:"IDABON";s:0:"";s:9:"ORDREABON";s:0:"";s:3:"NOM";s:0:"";s:6:"PRENOM";s:0:"";s:9:"NAISSANCE";s:0:"";s:8:"PASSWORD";s:0:"";s:4:"MAIL";s:0:"";s:10:"DATE_DEBUT";s:0:"";s:8:"DATE_FIN";s:0:"";s:7:"ID_SIGB";s:0:"";s:9:"NUM_CARTE";s:0:"";}}i:4;a:5:{s:4:"zone";s:3:"995";s:5:"champ";s:1:"v";s:6:"format";s:1:"3";s:5:"jours";s:0:"";s:7:"valeurs";s:1:"n";}i:6;a:2:{s:4:"zone";s:3:"901";s:5:"champ";s:1:"a";}}' + ]) + + ->whenCalled('fetchAll') + ->with('select * from codif_section', false) + ->answers([ + ['id_section' => 2, + 'regles' => '996$z=ADU'] + ]); + $this->notice_marc21 = new notice_marc21(); - $this->notice_marc21->ouvrirNotice(file_get_contents(dirname(__FILE__)."/marc21_coup_cavalier.txt"), 0); - $this->notice_sgbd->ouvrirNotice($this->notice_marc21->getFullRecord()); + $this->notice_marc21->ouvrirNotice(file_get_contents(dirname(__FILE__)."/marc21_coup_cavalier.txt"), $this->_id_profil_donnees); + $this->notice_data = $this->notice_marc21->getNoticeIntegration(); } /** @test */ public function zone200AShouldBeLeCoupDuCavalier() { - $this->assertEquals('Le coup du cavalier', $this->notice_sgbd->get_subfield('200', 'a')[0]); + $this->assertEquals('Le coup du cavalier', $this->notice_marc21->get_subfield('200', 'a')[0]); } /** @test */ public function zone210CShouldBeEditeurMetailie() { - $this->assertEquals('Métailié,', $this->notice_sgbd->get_subfield('210', 'c')[0]); + $this->assertEquals('Métailié,', $this->notice_marc21->get_subfield('210', 'c')[0]); + } + + + /** @test */ + public function zone996iShouldBe00715585() { + $this->assertEquals('00715585', $this->notice_marc21->get_subfield('996', 'i')[0]); + } + + + /** @test */ + public function sectionShouldHaveId2() { + $this->assertEquals(2, $this->notice_data['exemplaires'][0]['section']); } + /** @test */ public function getAllShouldReturnAllFields() { - $all = $this->notice_sgbd->getAll(); + $all = $this->notice_marc21->getAll(); $this->assertEquals('Le coup du cavalier', $all['titre_princ']); - $this->assertEquals([ ['Longueur de la notice', 805], + $this->assertEquals([ ['Longueur de la notice', 804], ['Statut de la notice', 'n'], ['Type de document', 'am'], ['Niveau hiérarchique', 0], @@ -630,4 +667,5 @@ class NoticeIntegrationDimancheALaPiscineTest extends NoticeIntegrationAbstract } } + ?> diff --git a/cosmogramme/tests/php/classes/marc21_coup_cavalier.txt b/cosmogramme/tests/php/classes/marc21_coup_cavalier.txt index 0750b2feee5a2c04172556bc9125e444cfe6d687..4d2d83a7faa85437ea10c561973fc660843dff2c 100644 --- a/cosmogramme/tests/php/classes/marc21_coup_cavalier.txt +++ b/cosmogramme/tests/php/classes/marc21_coup_cavalier.txt @@ -1 +1 @@ -01393nam 22003615i 4500001000700000003000600007005001700013008004100030015001500071017002000086020003100106035002500137035001900162035002500181035001800206039001900224040003900243041001300282044000700295082002300302096007000325100002700395245021200422260003100634300004300665490004000708655001700748700004100765765002500806830003600831949006000867999010400927117712SIRSI20040201095222.0000510s2000 FR r 000|1|fre|d aFR00046570 aDL 00-10794bBN a2-86424-345-8 (br.)c105 F aFRBNF371017590000009 aLBA00200002401 aFRBNF371017590000009 a9782864243458 oOPLa025338134 aBNFbFRc20000510dJouvee2004010610afrehita aFR04a853.914 oeuvre221 a8232Cadre de classement de la Bibliographie nationale franðcaise 0aCamilleri, Andrea407013aLe coup du cavalierh[Texte imprimâe] /cAndrea Camilleri ; trad. de l'italien, Sicile, par Serge Quadruppani, avec l'aide de Maruzza Loria (pour le sicilien) et d'Emilia et Tiziana Piccone (pour le gâenois) aParis :bMâetailiâe,c2000 a219 p. :bcouv. ill. en coul. ;c22 cm1 aBibliotháeque italienne,x1264-5834 aRoman adulte11aQuadruppani, Serged(1952-....)47300 tLa mossa del cavallo 0aBibliotháeque italienne (Paris) aR CAMwASISmLBl09AROMANSt1IMPi00715585rYxROMzADU aR CAMwASISc1i00715585d22/12/2009e5/12/2009l09AROMANSmLBn4rYsYt1IMPu19/12/2005xROMzADU +01393nam 22003615i 4500001000700000003000600007005001700013008004100030015001500071017002000086020003100106035002500137035001900162035002500181035001800206039001900224040003900243041001300282044000700295082002300302096007000325100002700395245021200422260003100634300004300665490004000708655001700748700004100765765002500806830003600831949006000867999010400927117712SIRSI20040201095222.0000510s2000 FR r 000|1|fre|d aFR00046570 aDL 00-10794bBN a2-86424-345-8 (br.)c105 F aFRBNF371017590000009 aLBA00200002401 aFRBNF371017590000009 a9782864243458 oOPLa025338134 aBNFbFRc20000510dJouvee2004010610afrehita aFR04a853.914 oeuvre221 a8232Cadre de classement de la Bibliographie nationale franðcaise 0aCamilleri, Andrea407013aLe coup du cavalierh[Texte imprimâe] /cAndrea Camilleri ; trad. de l'italien, Sicile, par Serge Quadruppani, avec l'aide de Maruzza Loria (pour le sicilien) et d'Emilia et Tiziana Piccone (pour le gâenois) aParis :bMâetailiâe,c2000 a219 p. :bcouv. ill. en coul. ;c22 cm1 aBibliotháeque italienne,x1264-5834 aRoman adulte11aQuadruppani, Serged(1952-....)47300 tLa mossa del cavallo 0aBibliotháeque italienne (Paris) aR CAMwASISmLBl09AROMANSt1IMPi00715585rYxROMzADU aR CAMwASISc1i00715585d22/12/2009e5/12/2009l09AROMANSmLBn4rYsYt1IMPu19/12/2005xROMzADU