tainacan/tests/test-item-metadata.php

235 lines
6.6 KiB
PHP
Raw Normal View History

2017-11-12 23:14:47 +00:00
<?php
2017-11-15 18:50:11 +00:00
namespace Tainacan\Tests;
2017-11-12 23:14:47 +00:00
/**
* Class TestCollections
*
* @package Test_Tainacan
*/
/**
* Sample test case.
*/
class Item_Metadata extends TAINACAN_UnitTestCase {
2017-11-12 23:14:47 +00:00
/**
* Teste da insercao de um metadado simples sem o tipo
*/
function test_add() {
2018-03-21 12:20:00 +00:00
$Tainacan_Fields = \Tainacan\Repositories\Fields::getInstance();
$Tainacan_Item_Metadata = \Tainacan\Repositories\Item_Metadata::getInstance();
$collection = $this->tainacan_entity_factory->create_entity(
'collection',
array(
'name' => 'teste',
'description' => 'No description',
),
true
);
$field = $this->tainacan_entity_factory->create_entity(
'field',
array(
'name' => 'metadado',
'description' => 'descricao',
'collection' => $collection,
'field_type' => 'Tainacan\Field_Types\Text',
),
true
);
2017-11-12 23:14:47 +00:00
$test = $Tainacan_Fields->fetch($field->get_id());
2017-11-12 23:14:47 +00:00
$i = $this->tainacan_entity_factory->create_entity(
'item',
array(
'title' => 'item teste',
'description' => 'adasdasdsa',
'collection' => $collection
),
true
);
2017-11-12 23:14:47 +00:00
2018-03-20 16:04:02 +00:00
$Tainacan_Items = \Tainacan\Repositories\Items::getInstance();
2017-11-12 23:14:47 +00:00
$item = $Tainacan_Items->fetch($i->get_id());
2017-11-12 23:14:47 +00:00
$item_metadata = new \Tainacan\Entities\Item_Metadata_Entity($item, $test);
2017-11-12 23:14:47 +00:00
$item_metadata->set_value('teste_value');
2017-11-12 23:14:47 +00:00
$item_metadata = $Tainacan_Item_Metadata->insert($item_metadata);
$this->assertEquals('teste_value', $item_metadata->get_value());
}
/**
* Teste da insercao de um metadado simples com o tipo
*/
function teste_required(){
2018-03-21 12:20:00 +00:00
$Tainacan_Fields = \Tainacan\Repositories\Fields::getInstance();
$Tainacan_Item_Metadata = \Tainacan\Repositories\Item_Metadata::getInstance();
$collection = $this->tainacan_entity_factory->create_entity(
'collection',
array(
'name' => 'teste',
'description' => 'No description',
),
true
);
$field = $this->tainacan_entity_factory->create_entity(
'field',
array(
'name' => 'metadado',
'description' => 'descricao',
'collection' => $collection,
'required' => 'yes',
'field_type' => 'Tainacan\Field_Types\Text',
),
true
);
2017-11-12 23:14:47 +00:00
$test = $Tainacan_Fields->fetch($field->get_id());
2017-11-12 23:14:47 +00:00
$i = $this->tainacan_entity_factory->create_entity(
'item',
array(
'title' => 'item teste',
'description' => 'adasdasdsa',
'collection' => $collection
),
true
);
2017-11-12 23:14:47 +00:00
2018-03-20 16:04:02 +00:00
$Tainacan_Items = \Tainacan\Repositories\Items::getInstance();
2017-11-12 23:14:47 +00:00
$item = $Tainacan_Items->fetch($i->get_id());
$item_metadata = new \Tainacan\Entities\Item_Metadata_Entity($item, $test);
2017-11-12 23:14:47 +00:00
// false because its required
$this->assertFalse($item_metadata->validate());
$item_metadata->set_value('teste_value');
$this->assertTrue($item_metadata->validate());
$item_metadata = $Tainacan_Item_Metadata->insert($item_metadata);
$this->assertEquals('teste_value', $item_metadata->get_value());
}
function teste_collection_key(){
2018-03-21 12:20:00 +00:00
$Tainacan_Fields = \Tainacan\Repositories\Fields::getInstance();
$Tainacan_Item_Metadata = \Tainacan\Repositories\Item_Metadata::getInstance();
$collection = $this->tainacan_entity_factory->create_entity(
'collection',
array(
'name' => 'teste',
'description' => 'No description',
),
true
);
$field = $this->tainacan_entity_factory->create_entity(
'field',
array(
'name' => 'metadado',
'description' => 'descricao',
'collection' => $collection,
'collection_key' => 'yes',
'field_type' => 'Tainacan\Field_Types\Text',
),
true
);
2017-11-12 23:14:47 +00:00
$test = $Tainacan_Fields->fetch($field->get_id());
$i = $this->tainacan_entity_factory->create_entity(
'item',
array(
'title' => 'item teste',
'description' => 'adasdasdsa',
2018-01-29 13:09:44 +00:00
'collection' => $collection,
'status' => 'publish'
),
true
);
2017-11-12 23:14:47 +00:00
2018-03-20 16:04:02 +00:00
$Tainacan_Items = \Tainacan\Repositories\Items::getInstance();
2017-11-12 23:14:47 +00:00
$item = $Tainacan_Items->fetch($i->get_id());
2017-11-12 23:14:47 +00:00
$value = 'teste_val';
$item_metadata = new \Tainacan\Entities\Item_Metadata_Entity($item, $test);
2017-11-12 23:14:47 +00:00
$item_metadata->set_value($value);
2017-11-12 23:14:47 +00:00
$this->assertTrue($item_metadata->validate());
$item_metadata->validate();
2017-11-12 23:14:47 +00:00
$item_metadata = $Tainacan_Item_Metadata->insert($item_metadata);
$n_item_metadata = new \Tainacan\Entities\Item_Metadata_Entity($item, $test);
2017-11-12 23:14:47 +00:00
$n_item_metadata->set_value($value);
2017-11-12 23:14:47 +00:00
$this->assertFalse($n_item_metadata->validate());
}
2017-12-03 21:49:50 +00:00
function teste_fetch(){
2018-03-20 16:04:02 +00:00
$Tainacan_Item_Metadata = \Tainacan\Repositories\Item_Metadata::getInstance();
$collection = $this->tainacan_entity_factory->create_entity(
'collection',
array(
'name' => 'teste',
'description' => 'No description',
),
true
);
2017-12-04 18:20:49 +00:00
$this->tainacan_entity_factory->create_entity(
'field',
array(
'name' => 'metadado',
'description' => 'descricao',
'collection' => $collection,
'status' => 'publish',
'field_type' => 'Tainacan\Field_Types\Text',
),
true
);
2017-12-03 21:49:50 +00:00
//$test = $Tainacan_Fields->fetch($field->get_id());
2017-12-03 21:49:50 +00:00
$i = $this->tainacan_entity_factory->create_entity(
'item',
array(
'title' => 'item teste',
'description' => 'adasdasdsa',
'collection' => $collection
),
true
);
$item_metadatas = $Tainacan_Item_Metadata->fetch($i, 'OBJECT');
$names = [];
foreach ($item_metadatas as $item_metadata) {
$names[] = $item_metadata->get_field()->get_name();
}
$this->assertTrue(is_array($item_metadatas));
// notice for repository fields
$this->assertEquals(3, sizeof($item_metadatas));
//first 2 fields are repository fields
$this->assertTrue( in_array('metadado', $names) );
2017-12-03 21:49:50 +00:00
}
2017-11-12 23:14:47 +00:00
}