Factories and Test adaptations
Factories field and filter were created. Tests from collection, filters and item metadata were adapted it.
This commit is contained in:
parent
0083f35f1d
commit
ed0c3d9674
|
@ -29,5 +29,7 @@ tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' );
|
||||||
require $_tests_dir . '/includes/bootstrap.php';
|
require $_tests_dir . '/includes/bootstrap.php';
|
||||||
|
|
||||||
require_once(__DIR__ . '/factories/class-tainacan-entity-factory.php');
|
require_once(__DIR__ . '/factories/class-tainacan-entity-factory.php');
|
||||||
|
require_once(__DIR__ . '/factories/class-tainacan-field-factory.php');
|
||||||
|
require_once(__DIR__ . '/factories/class-tainacan-filter-factory.php');
|
||||||
require_once(__DIR__ . '/tainacan-unit-test-case.php');
|
require_once(__DIR__ . '/tainacan-unit-test-case.php');
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
namespace Tainacan\Tests\Factories;
|
namespace Tainacan\Tests\Factories;
|
||||||
|
|
||||||
|
|
||||||
class Entity_Factory {
|
class Entity_Factory {
|
||||||
|
|
||||||
private $entity;
|
private $entity;
|
||||||
|
@ -13,60 +12,90 @@ class Entity_Factory {
|
||||||
/**
|
/**
|
||||||
* Receive a type of the collection as string, an associative array,
|
* Receive a type of the collection as string, an associative array,
|
||||||
* a boolean that say if the values need to be validated and inserted in database, and then
|
* a boolean that say if the values need to be validated and inserted in database, and then
|
||||||
* create the entity type ordered.
|
* create the entity type ordered and return it.
|
||||||
*
|
*
|
||||||
* @param $type
|
* @param $type
|
||||||
* @param array $args
|
* @param array $args
|
||||||
* @param bool $is_validated_and_in_db
|
* @param bool $is_validated_and_in_db
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
* @throws \ErrorException
|
||||||
*/
|
*/
|
||||||
public function create_entity($type, $args = [], $is_validated_and_in_db = false){
|
public function create_entity($type, $args = [], $is_validated_and_in_db = false){
|
||||||
try {
|
try {
|
||||||
$this->entity_type = "\Tainacan\Entities\\$type";
|
if(empty($type)){
|
||||||
$this->repository_type = "\Tainacan\Repositories\\$type".'s';
|
throw new \InvalidArgumentException(__('The type can\'t be empty'));
|
||||||
|
} elseif(!strrchr($type, '_')){
|
||||||
|
$type = ucfirst(strtolower($type));
|
||||||
|
} else {
|
||||||
|
$type = ucwords(strtolower($type), '_');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->entity_type = "\Tainacan\Entities\\$type";
|
||||||
|
|
||||||
|
$type_size = strlen($type);
|
||||||
|
if($type[$type_size-1] == 'y'){
|
||||||
|
$type[$type_size-1] = 'ies';
|
||||||
|
} else {
|
||||||
|
$this->repository_type = "\Tainacan\Repositories\\$type".'s';
|
||||||
|
}
|
||||||
|
|
||||||
$this->entity = new $this->entity_type();
|
$this->entity = new $this->entity_type();
|
||||||
$this->repository = new $this->repository_type();
|
$this->repository = new $this->repository_type();
|
||||||
|
|
||||||
if ( ! empty( $args ) && $is_validated_and_in_db ) {
|
if (!empty($args) && $is_validated_and_in_db) {
|
||||||
foreach ( $args as $attribute => $content ) {
|
foreach ($args as $attribute => $content) {
|
||||||
$this->entity->set_mapped_property( $attribute, $content );
|
$set_ = 'set_'.$attribute;
|
||||||
|
$this->entity->$set_($content);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $this->entity->validate() ) {
|
if ($this->entity->validate()) {
|
||||||
$this->entity = $this->repository->insert( $this->entity );
|
$this->entity = $this->repository->insert($this->entity);
|
||||||
} else {
|
} else {
|
||||||
throw new Exception( __( 'The entity wasn\'t validated.' ) );
|
throw new \ErrorException( __( 'The entity wasn\'t validated.' ) );
|
||||||
}
|
}
|
||||||
} elseif ( empty( $args ) && ! $is_validated_and_in_db ) {
|
|
||||||
$this->entity->set_name( "$type" . random_int( 0, 10000 ) . " for test" );
|
|
||||||
$this->entity->set_description( 'It is only for test' );
|
|
||||||
} elseif ( empty( $args ) && $is_validated_and_in_db ) {
|
|
||||||
$this->entity->set_name( "$type" . random_int( 0, 10000 ) . " for test" );
|
|
||||||
$this->entity->set_description( 'It is only for test' );
|
|
||||||
|
|
||||||
if ( $this->entity->validate() ) {
|
} elseif (!empty($args) && !$is_validated_and_in_db){
|
||||||
|
foreach ($args as $attribute => $content) {
|
||||||
|
$set_ = 'set_'.$attribute;
|
||||||
|
$this->entity->$set_($content);
|
||||||
|
}
|
||||||
|
|
||||||
|
} elseif (empty($args) && !$is_validated_and_in_db) {
|
||||||
|
try {
|
||||||
|
$this->entity->set_name( "$type" . random_int( 0, 10000 ) . " for test" );
|
||||||
|
$this->entity->set_description( 'It is only for test' );
|
||||||
|
} catch (\Error $exception){
|
||||||
|
$this->entity->set_title( "$type" . random_int( 0, 10000 ) . " for test" );
|
||||||
|
$this->entity->set_description( 'It is only for test' );
|
||||||
|
}
|
||||||
|
|
||||||
|
} elseif (empty($args) && $is_validated_and_in_db) {
|
||||||
|
try {
|
||||||
|
$this->entity->set_name( "$type" . random_int( 0, 10000 ) . " for test" );
|
||||||
|
$this->entity->set_description( 'It is only for test' );
|
||||||
|
} catch (\Error $exception){
|
||||||
|
$this->entity->set_title( "$type" . random_int( 0, 10000 ) . " for test" );
|
||||||
|
$this->entity->set_description( 'It is only for test' );
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->entity->validate();
|
||||||
|
if ($this->entity->validate()) {
|
||||||
$this->entity = $this->repository->insert( $this->entity );
|
$this->entity = $this->repository->insert( $this->entity );
|
||||||
} else {
|
} else {
|
||||||
throw new Exception( __( 'The entity wasn\'t validated.' ) );
|
throw new \ErrorException( __( 'The entity wasn\'t validated.' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
throw new InvalidArgumentException( __( 'One or more arguments are invalid.', 'tainacan' ) );
|
throw new \InvalidArgumentException( __( 'One or more arguments are invalid.', 'tainacan' ) );
|
||||||
}
|
}
|
||||||
} catch (Error $exception){
|
} catch (\Error $exception){
|
||||||
echo($exception->getMessage());
|
echo($exception->getMessage());
|
||||||
echo($exception->getTraceAsString());
|
echo($exception->getTraceAsString());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the entity type ordered
|
|
||||||
*
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function get_entity(){
|
|
||||||
return $this->entity;
|
return $this->entity;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tainacan\Tests\Factories;
|
||||||
|
|
||||||
|
class Field_Factory {
|
||||||
|
private $field;
|
||||||
|
protected $field_type;
|
||||||
|
|
||||||
|
public function create_field($type, $primitive_type = []){
|
||||||
|
if(empty($type)){
|
||||||
|
throw new \InvalidArgumentException(__('The type can\'t be empty'));
|
||||||
|
} elseif(!strrchr($type, '_')){
|
||||||
|
$type = ucfirst(strtolower($type));
|
||||||
|
} else {
|
||||||
|
$type = ucwords(strtolower($type), '_');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->field_type = "\Tainacan\Field_Types\\$type";
|
||||||
|
$this->field = new $this->field_type(/* Here goes the primitive type */);
|
||||||
|
|
||||||
|
return $this->field;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tainacan\Tests\Factories;
|
||||||
|
|
||||||
|
class Filter_Factory {
|
||||||
|
private $filter;
|
||||||
|
protected $filter_type;
|
||||||
|
|
||||||
|
public function create_filter($type, $supported_types = []){
|
||||||
|
if(empty($type)){
|
||||||
|
throw new \InvalidArgumentException(__('The type can\'t be empty'));
|
||||||
|
} elseif(!strrchr($type, '_')){
|
||||||
|
$type = ucfirst(strtolower($type));
|
||||||
|
} else {
|
||||||
|
$type = ucwords(strtolower($type), '_');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->filter_type = "\Tainacan\Filter_Types\\$type";
|
||||||
|
$this->filter = new $this->filter_type(/* Here goes the supported types */);
|
||||||
|
|
||||||
|
return $this->filter;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
|
@ -6,8 +6,12 @@ use Tainacan\Tests\Factories;
|
||||||
|
|
||||||
class TAINACAN_UnitTestCase extends \WP_UnitTestCase {
|
class TAINACAN_UnitTestCase extends \WP_UnitTestCase {
|
||||||
protected $tainacan_entity_factory;
|
protected $tainacan_entity_factory;
|
||||||
|
protected $tainacan_field_factory;
|
||||||
|
protected $tainacan_filter_factory;
|
||||||
|
|
||||||
public function setUp(){
|
public function setUp(){
|
||||||
$this->tainacan_entity_factory = new Factories\Entity_Factory();
|
$this->tainacan_entity_factory = new Factories\Entity_Factory();
|
||||||
|
$this->tainacan_field_factory = new Factories\Field_Factory();
|
||||||
|
$this->tainacan_filter_factory = new Factories\Filter_Factory();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -17,8 +17,8 @@ class Collections extends TAINACAN_UnitTestCase {
|
||||||
* A single example test.
|
* A single example test.
|
||||||
*/
|
*/
|
||||||
function test_add() {
|
function test_add() {
|
||||||
$this->tainacan_entity_factory->create_entity(
|
$x = $this->tainacan_entity_factory->create_entity(
|
||||||
'Collection',
|
'collection',
|
||||||
array(
|
array(
|
||||||
'name' => 'teste',
|
'name' => 'teste',
|
||||||
'description' => 'adasdasdsa',
|
'description' => 'adasdasdsa',
|
||||||
|
@ -27,8 +27,6 @@ class Collections extends TAINACAN_UnitTestCase {
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|
||||||
$x = $this->tainacan_entity_factory->get_entity();;
|
|
||||||
|
|
||||||
global $Tainacan_Collections;
|
global $Tainacan_Collections;
|
||||||
|
|
||||||
$this->assertEquals('Tainacan\Entities\Collection', get_class($x));
|
$this->assertEquals('Tainacan\Entities\Collection', get_class($x));
|
||||||
|
@ -42,48 +40,49 @@ class Collections extends TAINACAN_UnitTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_item() {
|
function test_item() {
|
||||||
|
$x = $this->tainacan_entity_factory->create_entity(
|
||||||
|
'collection',
|
||||||
$x = new \Tainacan\Entities\Collection();
|
array(
|
||||||
|
'name' => 'teste',
|
||||||
$x->set_name('teste');
|
'description' => 'adasdasdsa',
|
||||||
$x->set_description('adasdasdsa');
|
'default_order' => 'DESC'
|
||||||
$x->set_default_order('DESC');
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
global $Tainacan_Collections;
|
global $Tainacan_Collections;
|
||||||
$x->validate();
|
$collection = $Tainacan_Collections->fetch($x->get_id());
|
||||||
$col = $Tainacan_Collections->insert($x);
|
|
||||||
|
$i = $this->tainacan_entity_factory->create_entity(
|
||||||
$collection = $Tainacan_Collections->fetch($col->get_id());
|
'item',
|
||||||
|
array(
|
||||||
|
'title' => 'item test',
|
||||||
|
'description' => 'adasdasdsa',
|
||||||
$i = new \Tainacan\Entities\Item();
|
'order' => 'DESC',
|
||||||
|
'collection' => $collection
|
||||||
$i->set_title('item teste');
|
),
|
||||||
$i->set_description('adasdasdsa');
|
true
|
||||||
$i->set_collection($collection);
|
);
|
||||||
|
|
||||||
global $Tainacan_Items;
|
global $Tainacan_Items;
|
||||||
$i->validate();
|
$item = $Tainacan_Items->fetch( $i->get_id() );
|
||||||
$item = $Tainacan_Items->insert( $i );
|
|
||||||
|
|
||||||
$item = $Tainacan_Items->fetch( $item->get_id() );
|
$this->assertEquals($item->get_title(), 'item test');
|
||||||
|
|
||||||
$this->assertEquals($item->get_title(), 'item teste');
|
|
||||||
$this->assertEquals($item->get_description(), 'adasdasdsa');
|
$this->assertEquals($item->get_description(), 'adasdasdsa');
|
||||||
$this->assertEquals($item->get_collection_id(), $collection->get_id());
|
$this->assertEquals($item->get_collection_id(), $collection->get_id());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_validation() {
|
function test_validation() {
|
||||||
|
$x = $this->tainacan_entity_factory->create_entity(
|
||||||
$x = new \Tainacan\Entities\Collection();
|
'collection',
|
||||||
|
array(
|
||||||
$x->set_name('teste');
|
'name' => 'teste',
|
||||||
$x->set_description('adasdasdsa');
|
'description' => 'adasdasdsa',
|
||||||
$x->set_default_order(13);
|
'default_order' => 13
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
$this->assertFalse($x->validate());
|
$this->assertFalse($x->validate());
|
||||||
$this->assertTrue(sizeof($x->get_errors()) > 0);
|
$this->assertTrue(sizeof($x->get_errors()) > 0);
|
||||||
|
|
||||||
|
|
|
@ -11,70 +11,76 @@ namespace Tainacan\Tests;
|
||||||
/**
|
/**
|
||||||
* Sample test case.
|
* Sample test case.
|
||||||
*/
|
*/
|
||||||
class Filters extends \WP_UnitTestCase {
|
class Filters extends TAINACAN_UnitTestCase {
|
||||||
|
|
||||||
|
|
||||||
function teste_add(){
|
function teste_add(){
|
||||||
global $Tainacan_Collections, $Tainacan_Filters;
|
global $Tainacan_Filters;
|
||||||
|
|
||||||
$collection = new \Tainacan\Entities\Collection();
|
$collection = $this->tainacan_entity_factory->create_entity(
|
||||||
$filter = new \Tainacan\Entities\Filter();
|
'collection',
|
||||||
|
array(
|
||||||
|
'name' => 'teste'
|
||||||
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$collection->set_name('teste');
|
$filter = $this->tainacan_entity_factory->create_entity(
|
||||||
$collection->validate();
|
'filter',
|
||||||
$collection = $Tainacan_Collections->insert($collection);
|
array(
|
||||||
|
'name' => 'filtro',
|
||||||
|
'collection' => $collection
|
||||||
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
//setando os valores na classe do metadado
|
$test = $Tainacan_Filters->fetch($filter->get_id());
|
||||||
$filter->set_name('filtro');
|
|
||||||
$filter->set_collection( $collection );
|
|
||||||
|
|
||||||
//inserindo o metadado
|
|
||||||
$filter->validate();
|
|
||||||
$filter = $Tainacan_Filters->insert( $filter );
|
|
||||||
|
|
||||||
$test = $Tainacan_Filters->fetch( $filter->get_id() );
|
|
||||||
|
|
||||||
$this->assertEquals('filtro', $test->get_name());
|
$this->assertEquals('filtro', $test->get_name());
|
||||||
$this->assertEquals($collection->get_id(), $test->get_collection_id());
|
$this->assertEquals($collection->get_id(), $test->get_collection_id());
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_add_with_metadata_and_type(){
|
function test_add_with_metadata_and_type(){
|
||||||
global $Tainacan_Collections, $Tainacan_Filters,$Tainacan_Metadatas;
|
global $Tainacan_Filters;
|
||||||
|
|
||||||
$collection = new \Tainacan\Entities\Collection();
|
$collection = $this->tainacan_entity_factory->create_entity(
|
||||||
$metadata = new \Tainacan\Entities\Metadata();
|
'collection',
|
||||||
$filter = new \Tainacan\Entities\Filter();
|
array(
|
||||||
$type = new \Tainacan\Field_Types\Text();
|
'name' => 'teste'
|
||||||
$filter_list_type = new \Tainacan\Filter_Types\List_Filter();
|
),
|
||||||
$filter_range_type = new \Tainacan\Filter_Types\Range();
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$collection->set_name('teste');
|
$type = $this->tainacan_field_factory->create_field('text');
|
||||||
$collection->validate();
|
|
||||||
$collection = $Tainacan_Collections->insert($collection);
|
|
||||||
|
|
||||||
//setando os valores na classe do metadado
|
$metadata = $this->tainacan_entity_factory->create_entity(
|
||||||
$metadata->set_name('metadado');
|
'metadata',
|
||||||
$metadata->set_collection_id( $collection->get_id() );
|
array(
|
||||||
$metadata->set_field_type_object( $type );
|
'name' => 'metadado',
|
||||||
|
'collection_id' => $collection->get_id(),
|
||||||
|
'field_type_object' => $type
|
||||||
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
$filter_list_type = $this->tainacan_filter_factory->create_filter('list_filter');
|
||||||
|
|
||||||
//inserindo o metadado
|
$filter = $this->tainacan_entity_factory->create_entity(
|
||||||
$metadata->validate();
|
'filter',
|
||||||
$metadata = $Tainacan_Metadatas->insert($metadata);
|
array(
|
||||||
|
'name' => 'filtro',
|
||||||
|
'collection' => $collection,
|
||||||
|
'metadata' => $metadata,
|
||||||
|
'filter_type_object' => $filter_list_type
|
||||||
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
//inserindo o filtro
|
$filter_range_type = $this->tainacan_filter_factory->create_filter('range');
|
||||||
$filter->set_name('filtro');
|
|
||||||
$filter->set_collection( $collection );
|
|
||||||
$filter->set_metadata( $metadata );
|
|
||||||
|
|
||||||
//nao devera permitir um filtro Range para o tipo string
|
//nao devera permitir um filtro Range para o tipo string
|
||||||
$this->assertTrue( $filter->set_filter_type_object( $filter_range_type ) === null );
|
$this->assertTrue( $filter->set_filter_type_object( $filter_range_type ) === null );
|
||||||
|
|
||||||
$filter->set_filter_type_object( $filter_list_type );
|
|
||||||
|
|
||||||
$filter->validate();
|
|
||||||
$filter = $Tainacan_Filters->insert( $filter );
|
|
||||||
|
|
||||||
$test = $Tainacan_Filters->fetch( $filter->get_id() );
|
$test = $Tainacan_Filters->fetch( $filter->get_id() );
|
||||||
|
|
||||||
$this->assertEquals( 'filtro', $test->get_name() );
|
$this->assertEquals( 'filtro', $test->get_name() );
|
||||||
|
|
|
@ -11,99 +11,104 @@ namespace Tainacan\Tests;
|
||||||
/**
|
/**
|
||||||
* Sample test case.
|
* Sample test case.
|
||||||
*/
|
*/
|
||||||
class Item_Metadata extends \WP_UnitTestCase {
|
class Item_Metadata extends TAINACAN_UnitTestCase {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Teste da insercao de um metadado simples sem o tipo
|
* Teste da insercao de um metadado simples sem o tipo
|
||||||
*/
|
*/
|
||||||
function test_add() {
|
function test_add() {
|
||||||
|
|
||||||
global $Tainacan_Collections, $Tainacan_Metadatas, $Tainacan_Item_Metadata;
|
global $Tainacan_Metadatas, $Tainacan_Item_Metadata;
|
||||||
|
|
||||||
$collection = new \Tainacan\Entities\Collection();
|
$collection = $this->tainacan_entity_factory->create_entity(
|
||||||
$metadata = new \Tainacan\Entities\Metadata();
|
'collection',
|
||||||
$type = new \Tainacan\Field_Types\Text();
|
array(
|
||||||
|
'name' => 'teste'
|
||||||
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$collection->set_name('teste');
|
$type = $this->tainacan_field_factory->create_field('text');
|
||||||
$collection->validate();
|
|
||||||
$collection = $Tainacan_Collections->insert($collection);
|
|
||||||
|
|
||||||
//setando os valores na classe do metadado
|
$metadata = $this->tainacan_entity_factory->create_entity(
|
||||||
$metadata->set_name('metadado');
|
'metadata',
|
||||||
$metadata->set_description('descricao');
|
array(
|
||||||
$metadata->set_collection( $collection );
|
'name' => 'metadado',
|
||||||
$metadata->set_field_type_object( $type );
|
'description' => 'descricao',
|
||||||
|
'collection' => $collection,
|
||||||
//inserindo o metadado
|
'field_type_object' => $type
|
||||||
$metadata->validate();
|
),
|
||||||
$metadata = $Tainacan_Metadatas->insert($metadata);
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$test = $Tainacan_Metadatas->fetch($metadata->get_id());
|
$test = $Tainacan_Metadatas->fetch($metadata->get_id());
|
||||||
|
|
||||||
$i = new \Tainacan\Entities\Item();
|
$i = $this->tainacan_entity_factory->create_entity(
|
||||||
|
'item',
|
||||||
$i->set_title('item teste');
|
array(
|
||||||
$i->set_description('adasdasdsa');
|
'title' => 'item teste',
|
||||||
$i->set_collection($collection);
|
'description' => 'adasdasdsa',
|
||||||
|
'collection' => $collection
|
||||||
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
global $Tainacan_Items;
|
global $Tainacan_Items;
|
||||||
$i->validate();
|
|
||||||
$item = $Tainacan_Items->insert($i);
|
|
||||||
|
|
||||||
$item = $Tainacan_Items->fetch($item->get_id());
|
$item = $Tainacan_Items->fetch($i->get_id());
|
||||||
|
|
||||||
$item_metadata = new \Tainacan\Entities\Item_Metadata_Entity($item, $metadata);
|
$item_metadata = new \Tainacan\Entities\Item_Metadata_Entity($item, $test);
|
||||||
|
|
||||||
$item_metadata->set_value('teste_value');
|
$item_metadata->set_value('teste_value');
|
||||||
|
|
||||||
$item_metadata = $Tainacan_Item_Metadata->insert($item_metadata);
|
$item_metadata = $Tainacan_Item_Metadata->insert($item_metadata);
|
||||||
|
|
||||||
$this->assertEquals('teste_value', $item_metadata->get_value());
|
$this->assertEquals('teste_value', $item_metadata->get_value());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Teste da insercao de um metadado simples com o tipo
|
* Teste da insercao de um metadado simples com o tipo
|
||||||
*/
|
*/
|
||||||
function teste_required(){
|
function teste_required(){
|
||||||
global $Tainacan_Collections, $Tainacan_Metadatas, $Tainacan_Item_Metadata;
|
global $Tainacan_Metadatas, $Tainacan_Item_Metadata;
|
||||||
|
|
||||||
$collection = new \Tainacan\Entities\Collection();
|
$collection = $this->tainacan_entity_factory->create_entity(
|
||||||
$metadata = new \Tainacan\Entities\Metadata();
|
'collection',
|
||||||
$type = new \Tainacan\Field_Types\Text();
|
array(
|
||||||
|
'name' => 'teste'
|
||||||
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$collection->set_name('teste');
|
$type = $this->tainacan_field_factory->create_field('text');
|
||||||
$collection->validate();
|
|
||||||
$collection = $Tainacan_Collections->insert($collection);
|
|
||||||
|
|
||||||
//setando os valores na classe do metadado
|
$metadata = $this->tainacan_entity_factory->create_entity(
|
||||||
$metadata->set_name('metadado');
|
'metadata',
|
||||||
$metadata->set_description('descricao');
|
array(
|
||||||
$metadata->set_collection( $collection );
|
'name' => 'metadado',
|
||||||
$metadata->set_required( 'yes' );
|
'description' => 'descricao',
|
||||||
$metadata->set_field_type_object( $type );
|
'collection' => $collection,
|
||||||
|
'required' => 'yes',
|
||||||
//inserindo o metadado
|
'field_type_object' => $type
|
||||||
$metadata->validate();
|
),
|
||||||
$metadata = $Tainacan_Metadatas->insert($metadata);
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$test = $Tainacan_Metadatas->fetch($metadata->get_id());
|
$test = $Tainacan_Metadatas->fetch($metadata->get_id());
|
||||||
|
|
||||||
$i = new \Tainacan\Entities\Item();
|
$i = $this->tainacan_entity_factory->create_entity(
|
||||||
|
'item',
|
||||||
$i->set_title('item teste');
|
array(
|
||||||
$i->set_description('adasdasdsa');
|
'title' => 'item teste',
|
||||||
$i->set_collection($collection);
|
'description' => 'adasdasdsa',
|
||||||
|
'collection' => $collection
|
||||||
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
global $Tainacan_Items;
|
global $Tainacan_Items;
|
||||||
$i->validate();
|
|
||||||
$item = $Tainacan_Items->insert($i);
|
|
||||||
|
|
||||||
$item = $Tainacan_Items->fetch($item->get_id());
|
$item = $Tainacan_Items->fetch($i->get_id());
|
||||||
|
$item_metadata = new \Tainacan\Entities\Item_Metadata_Entity($item, $test);
|
||||||
$item_metadata = new \Tainacan\Entities\Item_Metadata_Entity($item, $metadata);
|
|
||||||
|
|
||||||
// false because its required
|
// false because its required
|
||||||
$this->assertFalse($item_metadata->validate());
|
$this->assertFalse($item_metadata->validate());
|
||||||
|
@ -118,96 +123,105 @@ class Item_Metadata extends \WP_UnitTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
function teste_collection_key(){
|
function teste_collection_key(){
|
||||||
global $Tainacan_Collections, $Tainacan_Metadatas, $Tainacan_Item_Metadata;
|
global $Tainacan_Metadatas, $Tainacan_Item_Metadata;
|
||||||
|
|
||||||
$collection = new \Tainacan\Entities\Collection();
|
$collection = $this->tainacan_entity_factory->create_entity(
|
||||||
$metadata = new \Tainacan\Entities\Metadata();
|
'collection',
|
||||||
$type = new \Tainacan\Field_Types\Text();
|
array(
|
||||||
|
'name' => 'teste'
|
||||||
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$collection->set_name('teste');
|
$type = $this->tainacan_field_factory->create_field('text');
|
||||||
$collection->validate();
|
|
||||||
$collection = $Tainacan_Collections->insert($collection);
|
|
||||||
|
|
||||||
//setando os valores na classe do metadado
|
$metadata = $this->tainacan_entity_factory->create_entity(
|
||||||
$metadata->set_name('metadado');
|
'metadata',
|
||||||
$metadata->set_description('descricao');
|
array(
|
||||||
$metadata->set_collection( $collection );
|
'name' => 'metadado',
|
||||||
$metadata->set_collection_key( 'yes' );
|
'description' => 'descricao',
|
||||||
$metadata->set_field_type_object( $type );
|
'collection' => $collection,
|
||||||
|
'collection_key' => 'yes',
|
||||||
//inserindo o metadado
|
'field_type_object' => $type
|
||||||
$metadata->validate();
|
),
|
||||||
$metadata = $Tainacan_Metadatas->insert($metadata);
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$test = $Tainacan_Metadatas->fetch($metadata->get_id());
|
$test = $Tainacan_Metadatas->fetch($metadata->get_id());
|
||||||
|
|
||||||
$i = new \Tainacan\Entities\Item();
|
$i = $this->tainacan_entity_factory->create_entity(
|
||||||
|
'item',
|
||||||
$i->set_title('item teste');
|
array(
|
||||||
$i->set_description('adasdasdsa');
|
'title' => 'item teste',
|
||||||
$i->set_collection($collection);
|
'description' => 'adasdasdsa',
|
||||||
|
'collection' => $collection
|
||||||
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
global $Tainacan_Items;
|
global $Tainacan_Items;
|
||||||
$i->validate();
|
|
||||||
$item = $Tainacan_Items->insert($i);
|
|
||||||
|
|
||||||
$item = $Tainacan_Items->fetch($item->get_id());
|
|
||||||
|
|
||||||
|
$item = $Tainacan_Items->fetch($i->get_id());
|
||||||
|
|
||||||
$value = 'teste_val';
|
$value = 'teste_val';
|
||||||
|
|
||||||
$item_metadata = new \Tainacan\Entities\Item_Metadata_Entity($item, $metadata);
|
$item_metadata = new \Tainacan\Entities\Item_Metadata_Entity($item, $test);
|
||||||
$item_metadata->set_value($value);
|
$item_metadata->set_value($value);
|
||||||
|
|
||||||
$this->assertTrue($item_metadata->validate());
|
$this->assertTrue($item_metadata->validate());
|
||||||
|
|
||||||
$item_metadata->validate();
|
$item_metadata->validate();
|
||||||
$item_metadata = $Tainacan_Item_Metadata->insert($item_metadata);
|
$item_metadata = $Tainacan_Item_Metadata->insert($item_metadata);
|
||||||
|
|
||||||
$n_item_metadata = new \Tainacan\Entities\Item_Metadata_Entity($item, $metadata);
|
$n_item_metadata = new \Tainacan\Entities\Item_Metadata_Entity($item, $test);
|
||||||
$n_item_metadata->set_value($value);
|
$n_item_metadata->set_value($value);
|
||||||
|
|
||||||
$this->assertFalse($n_item_metadata->validate());
|
$this->assertFalse($n_item_metadata->validate());
|
||||||
}
|
}
|
||||||
|
|
||||||
function teste_fetch(){
|
function teste_fetch(){
|
||||||
global $Tainacan_Collections, $Tainacan_Metadatas, $Tainacan_Item_Metadata;
|
global $Tainacan_Item_Metadata;
|
||||||
|
|
||||||
$collection = new \Tainacan\Entities\Collection();
|
$collection = $this->tainacan_entity_factory->create_entity(
|
||||||
$metadata = new \Tainacan\Entities\Metadata();
|
'collection',
|
||||||
$type = new \Tainacan\Field_Types\Text();
|
array(
|
||||||
|
'name' => 'teste'
|
||||||
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$collection->set_name('teste');
|
|
||||||
$collection->validate();
|
|
||||||
$collection = $Tainacan_Collections->insert($collection);
|
|
||||||
|
|
||||||
//setando os valores na classe do metadado
|
$type = $this->tainacan_field_factory->create_field('text');
|
||||||
$metadata->set_name('metadado');
|
|
||||||
$metadata->set_description('descricao');
|
|
||||||
$metadata->set_collection( $collection );
|
|
||||||
$metadata->set_status('publish');
|
|
||||||
$metadata->set_field_type_object( $type );
|
|
||||||
|
|
||||||
//inserindo o metadado
|
$metadata = $this->tainacan_entity_factory->create_entity(
|
||||||
$metadata->validate();
|
'metadata',
|
||||||
$metadata = $Tainacan_Metadatas->insert($metadata);
|
array(
|
||||||
|
'name' => 'metadado',
|
||||||
|
'description' => 'descricao',
|
||||||
|
'collection' => $collection,
|
||||||
|
'status' => 'publish',
|
||||||
|
'field_type_object' => $type
|
||||||
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
//$test = $Tainacan_Metadatas->fetch($metadata->get_id());
|
//$test = $Tainacan_Metadatas->fetch($metadata->get_id());
|
||||||
|
|
||||||
$i = new \Tainacan\Entities\Item();
|
$i = $this->tainacan_entity_factory->create_entity(
|
||||||
|
'item',
|
||||||
$i->set_title('item teste');
|
array(
|
||||||
$i->set_description('adasdasdsa');
|
'title' => 'item teste',
|
||||||
$i->set_collection($collection);
|
'description' => 'adasdasdsa',
|
||||||
|
'collection' => $collection
|
||||||
global $Tainacan_Items;
|
),
|
||||||
$i->validate();
|
true
|
||||||
$item = $Tainacan_Items->insert($i);
|
);
|
||||||
|
|
||||||
|
|
||||||
$ItemMetadatas = $Tainacan_Item_Metadata->fetch($item, 'OBJECT');
|
$item_metadatas = $Tainacan_Item_Metadata->fetch($i, 'OBJECT');
|
||||||
|
|
||||||
$this->assertTrue(is_array($ItemMetadatas));
|
$this->assertTrue(is_array($item_metadatas));
|
||||||
$this->assertEquals(1, sizeof($ItemMetadatas));
|
$this->assertEquals(1, sizeof($item_metadatas));
|
||||||
$this->assertEquals('metadado', $ItemMetadatas[0]->get_metadata()->get_name());
|
$this->assertEquals('metadado', $item_metadatas[0]->get_metadata()->get_name());
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue