tainacan csv importer - add tests for create metadata in csv header

This commit is contained in:
Eduardo Humberto 2018-10-23 19:44:07 -03:00
parent cca72df7fa
commit 0c8545159c
3 changed files with 10 additions and 15 deletions

View File

@ -160,7 +160,7 @@ class CSV extends Importer {
$valueToInsert = $this->handle_encoding( $values[ $column ] ); $valueToInsert = $this->handle_encoding( $values[ $column ] );
if( !is_numeric($metadatum_id) ){ if( !is_numeric($metadatum_id) ){
$metadatum = $this->create_metadata( $metadatum_id, $collection_definition['id']); $metadatum = $this->create_metadata( $headers[ $column ], $collection_definition['id']);
} else { } else {
$metadatum = new \Tainacan\Entities\Metadatum($metadatum_id); $metadatum = new \Tainacan\Entities\Metadatum($metadatum_id);
} }

View File

@ -908,8 +908,8 @@ abstract class Importer {
* @throws \Exception * @throws \Exception
*/ */
protected function create_metadata( $metadata_description, $collection_id){ protected function create_metadata( $metadata_description, $collection_id){
$taxonomy_repo = \Repositories\Taxonomy::get_instance(); $taxonomy_repo = \Tainacan\Repositories\Taxonomies::get_instance();
$metadata_repo = \Repositories\Metadata::get_instance(); $metadata_repo = \Tainacan\Repositories\Metadata::get_instance();
$properties = array_filter( explode('|', $metadata_description) ); $properties = array_filter( explode('|', $metadata_description) );

View File

@ -258,7 +258,7 @@ class ImporterTests extends TAINACAN_UnitTestCase {
$file = fopen($file_name, 'w'); $file = fopen($file_name, 'w');
// save the column headers // save the column headers
fputcsv($file, array('Column 1', 'Column 2', 'Column 3', 'Column 4', 'Column 5')); fputcsv($file, array('novo metadatao|text', 'Column 2', 'Column 3', 'Column 4', 'Column 5'));
// Sample data // Sample data
$data = array( $data = array(
@ -363,7 +363,12 @@ class ImporterTests extends TAINACAN_UnitTestCase {
//create a random mapping //create a random mapping
$map = []; $map = [];
foreach ( $metadata as $index => $metadatum ){ foreach ( $metadata as $index => $metadatum ){
if( $index === 0){
$map['create_metadata'] = $headers[$index];
} else {
$map[$metadatum->get_id()] = $headers[$index]; $map[$metadatum->get_id()] = $headers[$index];
}
} }
$collection_definition['mapping'] = $map; $collection_definition['mapping'] = $map;
@ -383,16 +388,6 @@ class ImporterTests extends TAINACAN_UnitTestCase {
$items = $Tainacan_Items->fetch( ['order'=> 'ASC','orderby' => 'date'], $collection, 'OBJECT' ); $items = $Tainacan_Items->fetch( ['order'=> 'ASC','orderby' => 'date'], $collection, 'OBJECT' );
foreach ( $items as $index => $item ) {
$singleItemMetadata = new Entities\Item_Metadata_Entity( $item, $metadata_taxonomy );
$term = $singleItemMetadata->get_value();
if( in_array( $item->get_title(),[ 'Data 11','Data 51', 'Data 12','Data 52'] ) && $term ){
$this->assertTrue(in_array( strtoupper($term->get_name()),['DATA 151','DATA551'] ));
}
}
$this->assertEquals( $_SESSION['tainacan_importer'][$id]->get_source_number_of_items(), count( $items ) ); $this->assertEquals( $_SESSION['tainacan_importer'][$id]->get_source_number_of_items(), count( $items ) );
} }