From 0cdc02fca3c445411c1d1433e27e7b1c44d4360a Mon Sep 17 00:00:00 2001 From: Mark van Driel Date: Fri, 8 Jul 2016 14:29:12 +0200 Subject: [PATCH] Support EDEXML 2.0 (#10) * Refactoring: replace deprecated assertEqual * Refactoring: replace deprecated App::pluginPath * Refactoring: move EDEXML 1.0.3 files to separate directory * Fixed typo * Added EDEXML 2.0 XSD's and sample files * Added support for EDEXML 2.0 * Fixed tests --- .../EDEXML.elementen.lvs.xsd | 0 File/{ => EDEXML-1.0.3}/EDEXML.elementen.xsd | 0 File/{ => EDEXML-1.0.3}/EDEXML.structuur.xsd | 0 .../EDEXML.types.variabel.xsd | 0 File/{ => EDEXML-1.0.3}/EDEXML.types.vast.xsd | 0 File/EDEXML-2.0/EDEXML.elementen.xsd | 270 +++ File/EDEXML-2.0/EDEXML.structuur.xsd | 104 ++ File/EDEXML-2.0/EDEXML.types.variabel.xsd | 1586 +++++++++++++++++ File/EDEXML-2.0/EDEXML.types.vast.xsd | 228 +++ Model/Edexml.php | 22 +- Test/Case/Model/EdexmlTest.php | 72 +- .../{ => EDEXML-1.0.3}/sample-invalid.xml | 0 Test/File/{ => EDEXML-1.0.3}/sample.xml | 0 .../EDEXML-2.0/EDEXML.Voorbeeld.2.0-Vla.xml | 125 ++ Test/File/EDEXML-2.0/EDEXML.Voorbeeld.2.0.xml | 153 ++ 15 files changed, 2531 insertions(+), 29 deletions(-) rename File/{ => EDEXML-1.0.3}/EDEXML.elementen.lvs.xsd (100%) rename File/{ => EDEXML-1.0.3}/EDEXML.elementen.xsd (100%) rename File/{ => EDEXML-1.0.3}/EDEXML.structuur.xsd (100%) rename File/{ => EDEXML-1.0.3}/EDEXML.types.variabel.xsd (100%) rename File/{ => EDEXML-1.0.3}/EDEXML.types.vast.xsd (100%) create mode 100644 File/EDEXML-2.0/EDEXML.elementen.xsd create mode 100644 File/EDEXML-2.0/EDEXML.structuur.xsd create mode 100644 File/EDEXML-2.0/EDEXML.types.variabel.xsd create mode 100644 File/EDEXML-2.0/EDEXML.types.vast.xsd rename Test/File/{ => EDEXML-1.0.3}/sample-invalid.xml (100%) rename Test/File/{ => EDEXML-1.0.3}/sample.xml (100%) create mode 100644 Test/File/EDEXML-2.0/EDEXML.Voorbeeld.2.0-Vla.xml create mode 100644 Test/File/EDEXML-2.0/EDEXML.Voorbeeld.2.0.xml diff --git a/File/EDEXML.elementen.lvs.xsd b/File/EDEXML-1.0.3/EDEXML.elementen.lvs.xsd similarity index 100% rename from File/EDEXML.elementen.lvs.xsd rename to File/EDEXML-1.0.3/EDEXML.elementen.lvs.xsd diff --git a/File/EDEXML.elementen.xsd b/File/EDEXML-1.0.3/EDEXML.elementen.xsd similarity index 100% rename from File/EDEXML.elementen.xsd rename to File/EDEXML-1.0.3/EDEXML.elementen.xsd diff --git a/File/EDEXML.structuur.xsd b/File/EDEXML-1.0.3/EDEXML.structuur.xsd similarity index 100% rename from File/EDEXML.structuur.xsd rename to File/EDEXML-1.0.3/EDEXML.structuur.xsd diff --git a/File/EDEXML.types.variabel.xsd b/File/EDEXML-1.0.3/EDEXML.types.variabel.xsd similarity index 100% rename from File/EDEXML.types.variabel.xsd rename to File/EDEXML-1.0.3/EDEXML.types.variabel.xsd diff --git a/File/EDEXML.types.vast.xsd b/File/EDEXML-1.0.3/EDEXML.types.vast.xsd similarity index 100% rename from File/EDEXML.types.vast.xsd rename to File/EDEXML-1.0.3/EDEXML.types.vast.xsd diff --git a/File/EDEXML-2.0/EDEXML.elementen.xsd b/File/EDEXML-2.0/EDEXML.elementen.xsd new file mode 100644 index 0000000..122813a --- /dev/null +++ b/File/EDEXML-2.0/EDEXML.elementen.xsd @@ -0,0 +1,270 @@ + + + + + + 2.0 CONCEPT + Geert Evers, Gerrit Jansen en Jurgen Kevelaers. Input van Marc Fleischeuers en Erik Siegel. + Dit document definieert de objecten van de EDEX Mark-up Language EDEXML + + + + + + + + + + + + + + De inhoud 00 betekent hetzelfde als leeg + + + + + + + + + + + + + + + Altijd gelijk aan de versie van de XSD waaraan gerefereerd wordt + + + + + + + + + + + + + + + + + + Brincode school. Formaat 99XX, evt gevolg door 1 tot 2 cijfers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/File/EDEXML-2.0/EDEXML.structuur.xsd b/File/EDEXML-2.0/EDEXML.structuur.xsd new file mode 100644 index 0000000..2420b76 --- /dev/null +++ b/File/EDEXML-2.0/EDEXML.structuur.xsd @@ -0,0 +1,104 @@ + + + + + + 2.0 CONCEPT + Geert Evers, Gerrit Jansen en Jurgen Kevelaers. Input van Marc Fleischeuers en Erik Siegel. + Dit document definieert de structuur voor het opslaan van EDEX data in de EDEX Mark-up Language EDEXML + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/File/EDEXML-2.0/EDEXML.types.variabel.xsd b/File/EDEXML-2.0/EDEXML.types.variabel.xsd new file mode 100644 index 0000000..e306807 --- /dev/null +++ b/File/EDEXML-2.0/EDEXML.types.variabel.xsd @@ -0,0 +1,1586 @@ + + + + + + 2.0 CONCEPT + Geert Evers, Gerrit Jansen en Jurgen Kevelaers. Input van Marc Fleischeuers en Erik Siegel. + Dit document definieert de variabele (semi-vaste) EDEX typen voor de EDEX Mark-up Language EDEXML + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XML representatie Etniciteit + + + + + Onbekend + + + + + Autochtoon + + + + + Allochtoon + + + + + + + XML representatie nieuwe Leerlinggewicht + + + + + Onbekend (?) + + + + + Leerlingen van wie één ouder een hogere opleiding heeft dan bij 0.3 en 1.2 + + + + + Leerlingen van ouders/verzorger met max.lbo/vbo + + + + + Leerlingen van wie één ouder max. basisonderwijs en de andere ouder max. lbo/vbo heeft + + + + + + + XML representatie Leerlinggewicht + + + + + Onbekend (?) + + + + + Nagenoeg alle leerlingen die niet in onderstaande categorie‰n vallen + + + + + Leerlingen waarvan de autochtone ouders maximaal VBO hebben genoten + + + + + Schipperskinderen + + + + + Kinderen uit de reizende en trekkende bevolkingsgroepen + + + + + Leerlingen waarvan de allochtone ouders maximaal VBO hebben genoten + + + + + + + XML representatie Jaargroep + + + + + "Baby's leeftijd 0 tot 12 maanden" + + + + + "Dreumesen leeftijd 1 tot 2 jaar" + + + + + "Peutergroep leeftijd 3 tot 4 jaar / Kleuterklas 1 (Vlaanderen)" + + + + + "Groep 1 / Vierjaringen / Kleuterklas 2 (Vlaanderen)" + + + + + "Groep 2 / Vijfjarigen / Kleuterklas 3 (Vlaanderen)" + + + + + "Groep 3 / Basisonderwijs leerjaar 1 (Vlaanderen)" + + + + + "Groep 4 /Basisonderwijs leerjaar 2 (Vlaanderen)" + + + + + "Groep 5 / Basisonderwijs leerjaar 3 (Vlaanderen)" + + + + + "Groep 6 / Basisonderwijs leerjaar 4 (Vlaanderen)" + + + + + "Groep 7 / Basisonderwijs leerjaar 5 (Vlaanderen)" + + + + + "Groep 8 / Basisonderwijs leerjaar 6 (Vlaanderen)" + + + + + "Voortgezet onderwijs leerjaar 1 / Secundair onderwijs leerjaar 1 (Vlaanderen)" + + + + + "Voortgezet onderwijs leerjaar 2 / Secundair onderwijs leerjaar 2 (Vlaanderen)" + + + + + "Voortgezet onderwijs leerjaar 3 / Secundair onderwijs leerjaar 3 (Vlaanderen)" + + + + + "Voortgezet onderwijs leerjaar 4 / Secundair onderwijs leerjaar 4 (Vlaanderen)" + + + + + "Voortgezet onderwijs leerjaar 5 / Secundair onderwijs leerjaar 5 (Vlaanderen)" + + + + + "Voortgezet onderwijs leerjaar 6 / Secundair onderwijs leerjaar 6 (Vlaanderen)" + + + + + "S(B)O (speciaal (basis)onderwijs / BuO (buitengewoon kleuter/lager onderwijs, Vlaanderen)" + + + + + "VSO (voortgezet speciaal onderwijs) / BuSO (buitengewoon secundair onderwijs, Vlaanderen)" + + + + + "Combinatiegroep (jaargroep per leerling vastgelegd)" + + + + + "Niet PO / VO" + + + + + "Historisch" + + + + + + + XML representatie Rol Leerkracht bij Groep of onafhankelijk van Groep + + + + + "Adjunctdirecteur" + + + + + "Administratief medewerk(st)er" + + + + + "Conciërge" + + + + + "Directeur / Schoolleider" + + + + + "ICT-coördinator" + + + + + "Interne begeleider" + + + + + "Klassenassistent (SBO)" + + + + + "Leerkracht / Groepsleraar" + + + + + "Lerarenondersteuner" + + + + + "Locatieleider" + + + + + "Onderwijsassistent (BO)" + + + + + "Ouder" + + + + + "Remedial teacher" + + + + + "Schoolmaatschappelijk werk(st)er" + + + + + "Stagiair(e)" + + + + + "Vakleerkracht (bijv. voor gymnastiek, muziek of handvaardigheid)" + + + + + + + XML representatie Land van herkomst + + + + + Onbekend (?) + + + + + Nederland + + + + + Afghanistan + + + + + Åland eilanden + + + + + Albanië + + + + + Algerije + + + + + Am. Maagdeneilanden + + + + + Amerikaans Samoa + + + + + Andorra + + + + + Angola + + + + + Anguilla + + + + + Antarctica + + + + + Antigua en Barbuda + + + + + Argentinië + + + + + Armenië + + + + + Aruba + + + + + Australië + + + + + Azerbeidzjan + + + + + Bahamas + + + + + Bahrein + + + + + Bangladesh + + + + + Barbados + + + + + België + + + + + Belize + + + + + Benin + + + + + Bermuda + + + + + Bhutan + + + + + Birma + + + + + Burkina Faso + + + + + Burundi + + + + + Bolivia + + + + + Bosnië en Herzegovina + + + + + Botswana + + + + + Brazilië + + + + + Britse Maagdeneilanden + + + + + Brunei + + + + + Bulgarije + + + + + Cambodja + + + + + Canada + + + + + Centraal-Afrikaanse Republiek + + + + + Chili + + + + + China + + + + + Christmaseiland + + + + + Cocoseilanden + + + + + Colombia + + + + + Congo-Brazzaville + + + + + Congo-Kinshasa + + + + + Cookeilanden + + + + + Costa Rica + + + + + Cuba + + + + + Cyprus + + + + + Denemarken + + + + + Djibouti + + + + + Dominica + + + + + Dominicaanse Republiek + + + + + Duitsland + + + + + Ecuador + + + + + Egypte + + + + + El Salvador + + + + + Engeland en Noord-Ierland + + + + + Equatoriaal-Guinea + + + + + Eritrea + + + + + Estland + + + + + Ethiopië + + + + + Faeröer + + + + + Falklandeilanden + + + + + Fiji Eilanden + + + + + Filipijnen + + + + + Finland + + + + + Frankrijk + + + + + Frans-Guyana + + + + + Frans-Polynesië + + + + + Franse Overzeese Gebieden + + + + + Franse Zuidelijke Gebieden + + + + + Gabon + + + + + Gambia + + + + + Gazastrook + + + + + Georgië + + + + + Ghana + + + + + Gibraltar + + + + + Grenada + + + + + Griekenland + + + + + Groenland + + + + + Guadeloupe + + + + + Guam + + + + + Guatemala + + + + + Guinee + + + + + Guinee-Bissau + + + + + Guyana + + + + + Haïti + + + + + Honduras + + + + + Hongkong + + + + + Heard en McDonaldeilanden + + + + + Hongarije + + + + + Ierland + + + + + Ijsland + + + + + India + + + + + Indonesië + + + + + Irak + + + + + Iran + + + + + Israël + + + + + Italië + + + + + Ivoorkust + + + + + Jamaica + + + + + Japan + + + + + Jemen + + + + + Joegoslavië + + + + + Johore + + + + + Jordanië + + + + + Kaaimaneilanden + + + + + Kaapverdië + + + + + Kameroen + + + + + Jersey (Kanaaleilanden) + + + + + Qatar + + + + + Kazachstan + + + + + Kenia + + + + + Kirgizië + + + + + Kiribati + + + + + Koeweit + + + + + Comoren + + + + + Kroatië + + + + + Laos + + + + + Lesotho + + + + + Letland + + + + + Libanon + + + + + Liberia + + + + + Libië + + + + + Liechtenstein + + + + + Litouwen + + + + + Luxemburg + + + + + Macau + + + + + Macedonië + + + + + Madagaskar + + + + + Malawi + + + + + Malediven + + + + + Maleisië + + + + + Mali + + + + + Malta + + + + + Eiland Man + + + + + Marokko + + + + + Marshalleilanden + + + + + Martinique + + + + + Mauretanië + + + + + Mauritius + + + + + Mayotte + + + + + Mexico + + + + + Micronesië + + + + + Moldavië + + + + + Monaco + + + + + Mongolië + + + + + Montserrat + + + + + Mozambique + + + + + Namibië + + + + + Nauru + + + + + Nederlandse Antillen + + + + + Nepal + + + + + Nicaragua + + + + + Nieuw-Caledonië + + + + + Nieuw-Zeeland + + + + + Niger + + + + + Nigeria + + + + + Niue + + + + + Noord-Korea + + + + + Noordelijke Marianen + + + + + Noorwegen + + + + + Norfolk eiland + + + + + Oekraïne + + + + + Oezbekistan + + + + + Okinawa + + + + + Oman + + + + + Oostenrijk + + + + + Oost-Timor + + + + + Pakistan + + + + + Palau + + + + + Palestijnse Autoriteit + + + + + Panama + + + + + Papoea-Nieuw-Guinea + + + + + Paraguay + + + + + Peru + + + + + Pitcairneilanden + + + + + Polen + + + + + Puerto Rico + + + + + Portugal + + + + + Réunion + + + + + Rwanda + + + + + Roemenië + + + + + Rusland + + + + + San Marino + + + + + Sao Tomé en Principe + + + + + Saoedi-Arabië + + + + + Senegal + + + + + Servië en Montenegro + + + + + Servië + + + + + Montenegro + + + + + Seychellen + + + + + Sierra Leone + + + + + Singapore + + + + + Sint-Helena + + + + + Slovenië + + + + + Slowakije + + + + + Soedan + + + + + Salomonseilanden + + + + + Somalië + + + + + Spanje + + + + + Spitsbergen en Jan Mayen + + + + + Sri-Lanka + + + + + Saint Kitts en Nevis + + + + + Saint Lucia + + + + + Saint-Pierre en Miquelon + + + + + Saint Vincent en de Grenadines + + + + + Suriname + + + + + Swaziland + + + + + Syrië + + + + + Tadzjikistan + + + + + Taiwan + + + + + Tanzania + + + + + Thailand + + + + + Tibet + + + + + Turkmenistan + + + + + Togo + + + + + Tokelau-eilanden + + + + + Tonga + + + + + Trinidad en Tobago + + + + + Tsjaad + + + + + Tsjechië + + + + + Tunesië + + + + + Turkije + + + + + Turks- en Caicoseilanden + + + + + Tuvalu + + + + + Uganda + + + + + Uruguay + + + + + Vanuatu + + + + + Vaticaanstad + + + + + Venezuela + + + + + Verenigde Arabische Emiraten + + + + + Verenigde Staten + + + + + Vietnam + + + + + Wallis en Futuna + + + + + Westelijke Sahara + + + + + Samoa + + + + + Wit-Rusland + + + + + Zambia + + + + + Zimbabwe + + + + + Zuid-Afrika + + + + + Zuid-Korea + + + + + Zuid-Georgia en Zuidelijke Sandwicheilanden + + + + + Zweden + + + + + Zwitserland + + + + + diff --git a/File/EDEXML-2.0/EDEXML.types.vast.xsd b/File/EDEXML-2.0/EDEXML.types.vast.xsd new file mode 100644 index 0000000..467a06e --- /dev/null +++ b/File/EDEXML-2.0/EDEXML.types.vast.xsd @@ -0,0 +1,228 @@ + + + + + + 2.0 CONCEPT + Geert Evers, Gerrit Jansen en Jurgen Kevelaers. Input van Marc Fleischeuers en Erik Siegel. + Dit document definieert de vaste EDEX typen voor de EDEX Mark-up Language EDEXML + + + + + Geslacht leerling volgens NEN-ISO 5218. + + + + + + Onbekend + + + + + Jongen + + + + + Meisje + + + + + Niet gespecificeerd + + + + + + + Een Key is een identificerende code van een object, die bij voorkeur uniek is. + + + + + + + + + Negen cijferig sofinummer. In principe vervagen door burgerservicenummer (BSN), maar gehandhaafd om compatible te blijven met EDEXML 1.0x. + + + + + + + + Negen cijferig onderwijsnummer + + + + + + + + Burgerservicenummer (BSN). Als nummer gelijk aan het sofinummer, maar ander wettelijk kader waardoor een breder gebruik mogelijk is. + + + + + + + + Laatste 4 posities van het BSN of, indien BSN onbekend, laatste 4 posities van het onderwijsnummer. Extra identificatie leerling als gebruik van volledige BSN of onderwijsnummer vanwege privacy niet toegestaan is. Bijvoorbeeld t.b.v. tweelingen. + + + + + + + + Elf cijferig rijksregisternumer (België) + + + + + + + + Postcode Nederlands woonadres leerling. Formaat 9999XX. + + + + + + + + Postnummer Belgisch woonadres leerling. Formaat 9999. + + + + + + + + Brincode school NL. Formaat 99XX. + + + + + + + + Optionele aanvullende twee cijferige dependancecode bij Brincode. + + + + + + + + Instellingsnummer school Vlaanderen. Formaat min. 2 en max. 6 cijfers zonder voorloopnullen. + + + + + + + + NEN 1888 Achternaam. + + + + + + + + + NEN 1888 Voorvoegsel. + + + + + + + + + NEN 1888 Voornamen. + + + + + + + + + NEN 1888 Voorletters-1. + + + + + + + + + Door de school toegekende Inlognaam digitale systemen + + + + + + + + + Vrij in te vullen rol bij leerkracht of leerkracht-groep koppeling + + + + + + + + + String met minimale lengte 1 en maximale lengte 32. + + + + + + + + + String met minimale lengte 1 en maximale lengte 64. + + + + + + + + + String met minimale lengte 1 en maximale lengte 128. + + + + + + + + + String met minimale lengte 1 en maximale lengte 256. + + + + + + + + + Boolean J/N (dus niet voluit Ja of Nee). + + + + + + + + diff --git a/Model/Edexml.php b/Model/Edexml.php index 67306e9..246fadb 100644 --- a/Model/Edexml.php +++ b/Model/Edexml.php @@ -67,6 +67,8 @@ class Edexml extends AppModel { * @var array */ protected $_yearGroupToGradeMapping = [ + 'B' => 1, // Baby's leeftijd 0 tot 12 maanden + 'D' => 1, // Dreumesen leeftijd 1 tot 2 jaar 0 => 1, // Peutergroep / Kleutergroep 1 1 => 1, // Groep 1 / Kleutergroep 2 2 => 2, // Groep 2 / Kleutergroep 3 @@ -76,10 +78,16 @@ class Edexml extends AppModel { 6 => 6, // Groep 6 / Klas 4 7 => 7, // Groep 7 / Klas 5 8 => 8, // Groep 8 / Klas 6 - 11 => 9, // VO leerjaar 1 - 12 => 10, // VO leerjaar 2 - 13 => 11, // VO leerjaar 3 - 'S' => null, // SO / SBO / BO + 11 => 9, // Voortgezet onderwijs leerjaar 1 / Secundair onderwijs leerjaar 1 (Vlaanderen) + 12 => 10, // Voortgezet onderwijs leerjaar 2 / Secundair onderwijs leerjaar 2 (Vlaanderen) + 13 => 11, // Voortgezet onderwijs leerjaar 3 / Secundair onderwijs leerjaar 3 (Vlaanderen) + 14 => 12, // Voortgezet onderwijs leerjaar 4 / Secundair onderwijs leerjaar 4 (Vlaanderen) + 15 => 13, // Voortgezet onderwijs leerjaar 5 / Secundair onderwijs leerjaar 5 (Vlaanderen) + 16 => 14, // Voortgezet onderwijs leerjaar 6 / Secundair onderwijs leerjaar 6 (Vlaanderen) + 'S' => null, // S(B)O (speciaal (basis)onderwijs / BuO (buitengewoon kleuter/lager onderwijs, Vlaanderen) + 'V' => null, // VSO (voortgezet speciaal onderwijs) / BuSO (buitengewoon secundair onderwijs, Vlaanderen) + 'C' => null, // Combinatiegroep (jaargroep per leerling vastgelegd) + 'N' => 19, // Niet PO / VO 'H' => null // Historisch ]; @@ -117,7 +125,7 @@ protected function _parse($filename) { $dom = Xml::build($filename, ['return' => 'domdocument']); if ($dom) { - $schemaFile = App::pluginPath('Edexml') . 'File' . DS . 'EDEXML.structuur.xsd'; + $schemaFile = CakePlugin::path('Edexml') . 'File' . DS . 'EDEXML-2.0' . DS . 'EDEXML.structuur.xsd'; if (!$dom->schemaValidate($schemaFile)) { $dom = false; foreach (libxml_get_errors() as $error) { @@ -205,7 +213,9 @@ protected function _convertNames($user) { if (!empty($user['voorvoegsel'])) { $result['last_name'] .= $user['voorvoegsel'] . ' '; } - $result['last_name'] .= $user['achternaam']; + if (!empty($user['achternaam'])) { + $result['last_name'] .= $user['achternaam']; + } if (!empty($user['roepnaam'])) { $result['first_name'] = $user['roepnaam']; } diff --git a/Test/Case/Model/EdexmlTest.php b/Test/Case/Model/EdexmlTest.php index c4c64f7..ff28456 100644 --- a/Test/Case/Model/EdexmlTest.php +++ b/Test/Case/Model/EdexmlTest.php @@ -115,8 +115,8 @@ public function tearDown() { */ public function testConvertKey() { $this->assertNull($this->Edexml->convertKey('#001')); - $this->assertEqual($this->Edexml->convertKey('1'), '1'); - $this->assertEqual($this->Edexml->convertKey('key'), 'key'); + $this->assertEquals('1', $this->Edexml->convertKey('1')); + $this->assertEquals('key', $this->Edexml->convertKey('key')); } /** @@ -133,7 +133,7 @@ public function testConvertNames() { 'last_name' => $data['achternaam'], 'first_name' => $data['roepnaam'], ]; - $this->assertEqual($this->Edexml->convertNames($data), $expected); + $this->assertEquals($expected, $this->Edexml->convertNames($data)); $data = [ 'achternaam' => 'Achternaam', @@ -144,7 +144,7 @@ public function testConvertNames() { 'last_name' => $data['voorvoegsel'] . ' ' . $data['achternaam'], 'first_name' => $data['roepnaam'], ]; - $this->assertEqual($this->Edexml->convertNames($data), $expected); + $this->assertEquals($expected, $this->Edexml->convertNames($data)); } /** @@ -159,7 +159,7 @@ public function testConvertSchool() { $expected = [ 'key' => $data['schoolkey'] ]; - $this->assertEqual($this->Edexml->convertSchool($data), $expected); + $this->assertEquals($expected, $this->Edexml->convertSchool($data)); $data = [ 'schoolkey' => '#001', @@ -167,13 +167,13 @@ public function testConvertSchool() { $expected = [ 'key' => null ]; - $this->assertEqual($this->Edexml->convertSchool($data), $expected); + $this->assertEquals($expected, $this->Edexml->convertSchool($data)); $data = []; $expected = [ 'key' => null ]; - $this->assertEqual($this->Edexml->convertSchool($data), $expected); + $this->assertEquals($expected, $this->Edexml->convertSchool($data)); } /** @@ -192,7 +192,7 @@ public function testConvertSchoolClass() { 'name' => 'naam', 'grade' => '1' ]; - $this->assertEqual($this->Edexml->convertSchoolClass($data), $expected); + $this->assertEquals($expected, $this->Edexml->convertSchoolClass($data)); } /** @@ -215,7 +215,7 @@ public function testConvertSchoolClasses() { 'grade' => '1' ] ]; - $this->assertEqual($this->Edexml->convertSchoolClasses($data), $expected); + $this->assertEquals($expected, $this->Edexml->convertSchoolClasses($data)); } /** @@ -240,7 +240,7 @@ public function testConvertStudent() { 'grade' => null, 'SchoolClass' => [] ]; - $this->assertEqual($this->Edexml->convertStudent($data), $expected); + $this->assertEquals($expected, $this->Edexml->convertStudent($data)); $data = [ '@key' => 'key', @@ -271,7 +271,7 @@ public function testConvertStudent() { ] ]; $this->Edexml->schoolClasses($schoolClasses); - $this->assertEqual($this->Edexml->convertStudent($data), $expected); + $this->assertEquals($expected, $this->Edexml->convertStudent($data)); $data = [ 'achternaam' => 'Achternaam', @@ -287,7 +287,7 @@ public function testConvertStudent() { 'grade' => null, 'SchoolClass' => [] ]; - $this->assertEqual($this->Edexml->convertStudent($data), $expected); + $this->assertEquals($expected, $this->Edexml->convertStudent($data)); $data = [ 'achternaam' => 'Achternaam', @@ -295,8 +295,8 @@ public function testConvertStudent() { 'geslacht' => '2' ]; $result = $this->Edexml->convertStudent($data); - $this->assertEqual($result['last_name'], 'Achternaam'); - $this->assertEqual($result['gender'], 'f'); + $this->assertEquals('Achternaam', $result['last_name']); + $this->assertEquals('f', $result['gender']); $data = [ 'achternaam' => 'Achternaam', @@ -304,7 +304,7 @@ public function testConvertStudent() { 'geslacht' => '9' ]; $result = $this->Edexml->convertStudent($data); - $this->assertEqual($result['last_name'], 'Achternaam'); + $this->assertEquals('Achternaam', $result['last_name']); $this->assertNull($result['gender']); $data = [ @@ -313,8 +313,8 @@ public function testConvertStudent() { 'roepnaam' => 'Roepnaam' ]; $result = $this->Edexml->convertStudent($data); - $this->assertEqual($result['last_name'], 'Voorvoegsel Achternaam'); - $this->assertEqual($result['first_name'], 'Roepnaam'); + $this->assertEquals('Voorvoegsel Achternaam', $result['last_name']); + $this->assertEquals('Roepnaam', $result['first_name']); // Check dummy key for example #001 // TODO: what to do when there are no identifiers? @@ -348,7 +348,7 @@ public function testConvertTeacher() { 'grade' => null, 'SchoolClass' => [] ]; - $this->assertEqual($this->Edexml->convertTeacher($data), $expected); + $this->assertEquals($expected, $this->Edexml->convertTeacher($data)); } /** @@ -357,17 +357,43 @@ public function testConvertTeacher() { * @return void */ public function testParseToArray() { - $this->assertFalse($this->Edexml->parseToArray(App::pluginPath('Edexml') . 'Test' . DS . 'File' . DS . 'sample-invalid.xml')); + $this->assertFalse($this->Edexml->parseToArray(CakePlugin::path('Edexml') . 'Test' . DS . 'File' . DS . 'EDEXML-1.0.3' . DS . 'sample-invalid.xml')); - $data = $this->Edexml->parseToArray(App::pluginPath('Edexml') . 'Test' . DS . 'File' . DS . 'sample.xml'); + $data = $this->Edexml->parseToArray(CakePlugin::path('Edexml') . 'Test' . DS . 'File' . DS . 'EDEXML-1.0.3' . DS . 'sample.xml'); $this->assertTrue((bool)$data); $result = $this->Edexml->convert($data); $this->assertTrue((bool)$result); - $this->assertEqual(count($result['Student']), count($data['EDEX']['leerlingen']['leerling'])); - $this->assertEqual(count($result['SchoolClass']), count($data['EDEX']['groepen']['groep'])); - $this->assertEqual(count($result['Teacher']), count($data['EDEX']['leerkrachten']['leerkracht'])); + $this->assertEquals(count($data['EDEX']['leerlingen']['leerling']), count($result['Student'])); + $this->assertEquals(count($data['EDEX']['groepen']['groep']), count($result['SchoolClass'])); + $this->assertEquals(count($data['EDEX']['leerkrachten']['leerkracht']), count($result['Teacher'])); + } + +/** + * testParseToArrayEdexml20SampleFile method + * + * @return void + */ + public function testParseToArrayEdexml20SampleFile() { + $data = $this->Edexml->parseToArray(CakePlugin::path('Edexml') . 'Test' . DS . 'File' . DS . 'EDEXML-2.0' . DS . 'EDEXML.Voorbeeld.2.0.xml'); + $this->assertTrue((bool)$data); + + $result = $this->Edexml->convert($data); + $this->assertTrue((bool)$result); + } + +/** + * testParseToArrayEdexml20VlaSampleFile method + * + * @return void + */ + public function testParseToArrayEdexml20VlaSampleFile() { + $data = $this->Edexml->parseToArray(CakePlugin::path('Edexml') . 'Test' . DS . 'File' . DS . 'EDEXML-2.0' . DS . 'EDEXML.Voorbeeld.2.0-Vla.xml'); + $this->assertTrue((bool)$data); + + $result = $this->Edexml->convert($data); + $this->assertTrue((bool)$result); } /** diff --git a/Test/File/sample-invalid.xml b/Test/File/EDEXML-1.0.3/sample-invalid.xml similarity index 100% rename from Test/File/sample-invalid.xml rename to Test/File/EDEXML-1.0.3/sample-invalid.xml diff --git a/Test/File/sample.xml b/Test/File/EDEXML-1.0.3/sample.xml similarity index 100% rename from Test/File/sample.xml rename to Test/File/EDEXML-1.0.3/sample.xml diff --git a/Test/File/EDEXML-2.0/EDEXML.Voorbeeld.2.0-Vla.xml b/Test/File/EDEXML-2.0/EDEXML.Voorbeeld.2.0-Vla.xml new file mode 100644 index 0000000..aca68a4 --- /dev/null +++ b/Test/File/EDEXML-2.0/EDEXML.Voorbeeld.2.0-Vla.xml @@ -0,0 +1,125 @@ + + + + 2014-2015 + 1234 + 41323 + 2014-09-22T08:33:33 + Geert Evers + 2.0 + + Voorbeeldschool. Dit EDEXML databestand is een voorbeeld bij EDEXML schema versie 2.0 Vlaanderen + + + + + sg 1 + + + sg 2 + + + Kabouters + 0 + + + Muizen + 1 + + + Vlinders + 1 + + + x + + + + + + Klas 4A + 6 + + + In Vlaanderen komt Klas 4 overeen met de Nederlandse groep 6 + + + + + + Klas 4B + 6 + + + + + Wimpie + 2006-06-21 + 1 + 6 + + + + + + 2014-10-10T08:47:34 + + + Assati + Ismaël Hassan + IMA + 0 + 6 + MA + 13345678512 + 6971 + 2011-08-25 + 2014-10-14T08:47:35 + + + Einde + van 't + G + Gradje + 2004-02-20 + 1 + H + NL + NL + NL + 2007-08-19 + 2012-05-30 + + + bla bla + + + + 2014-10-14T08:47:36 + + + + + Gent + van + J + + + + + + Veldman + ter + Uilke + + + + + + + + + Lia + + + diff --git a/Test/File/EDEXML-2.0/EDEXML.Voorbeeld.2.0.xml b/Test/File/EDEXML-2.0/EDEXML.Voorbeeld.2.0.xml new file mode 100644 index 0000000..2fbf89b --- /dev/null +++ b/Test/File/EDEXML-2.0/EDEXML.Voorbeeld.2.0.xml @@ -0,0 +1,153 @@ + + + + 2014-2015 + 2014-10-01 + 99ZZ + 00 + 41323 + 2014-11-25T14:33:33 + Geert Evers + 2.0 + Voorbeeld bij EDEXML schema versie 2.0 + + + + Vestiging Huissen + + + Vestiging Bemmel + + + + + Kabouters + 0 + + + Samgroep 3 + + + Muizen + 1 + + + Vlinders + 1 + + + Opmerking X + + + + + + 4A + 4 + + + Opmerking X + + + + + + 4B + 4 + + + Samgroep 1 + + + Samgroep 2 + + + + + Wimpie + 2006-06-21 + 1 + 2013-08-16 + 4 + + + + + + + 2014-09-07T08:47:34 + + + Assati + Ismaël Hassan + IH + 0 + 4 + + MA + 133456785 + 0,3 + 6971VB + 2013-08-25 + 2014-10-14T08:47:35 + + + Hof + van 't + G + Gradje + 2006-06-21 + 1 + H + NL + NL + NL + 2731 + 2010-08-19 + 2014-07-18 + + + Opmerking X + + + + Opmerking Y + + + + 2013-06-17T08:47:36 + + + + + Bemmel + van + J + + + + + + Veldman + UGH + Uilke + Manusje van alles + + + + + + + + + + Lia + + + STA + OWA + + + + +