criando testes para criação de taxonomias e termos destas taxonomias

This commit is contained in:
Eduardo humberto 2017-11-10 13:23:02 -02:00
parent f1ca439b04
commit 7e2dd2c199
6 changed files with 150 additions and 4 deletions

View File

@ -22,4 +22,67 @@ class Tainacan_Taxonomy extends Entity {
}
}
// Getters
function get_id() {
return $this->get_mapped_property('ID');
}
function get_name() {
return $this->get_mapped_property('name');
}
function get_parent() {
return $this->get_mapped_property('parent');
}
function get_description() {
return $this->get_mapped_property('description');
}
function get_allow_insert() {
return ( boolean ) $this->get_mapped_property('allow_insert');
}
function get_taxonomy_name() {
return $this->get_mapped_property('taxonomy_name');
}
function get_collection() {
return new TainacanCollection( $this->get_mapped_property('collection') );
}
// Setters
function set_name($value) {
return $this->set_mapped_property('name', $value);
}
function set_parent($value) {
return $this->set_mapped_property('parent', $value);
}
function set_description($value) {
return $this->set_mapped_property('description', $value);
}
function set_allow_insert($value) {
return $this->set_mapped_property('allow_insert', $value);
}
/**
* @param TainacanCollection
*/
function set_collection($value) {
$ID = ($value instanceof TainacanCollection ) ? $value->get_id() : $value;
return $this->set_mapped_property('collection', $ID);
}
}

View File

@ -16,6 +16,7 @@ class Tainacan_Taxonomies {
'name' => 'post_title',
'parent' => 'parent',
'description' => 'post_content',
'taxonomy_name' => 'post_name',
'allow_insert' => 'meta',
'collection' => 'meta',
];
@ -107,7 +108,7 @@ class Tainacan_Taxonomies {
if (!get_post_meta($id, self::DB_IDENTIFIER_META, true)) {
$p = get_post($id);
add_post_meta($id, self::DB_IDENTIFIER_META, $p->post_name);
registerTainacanTaxonomy( $p->post_name );
$this->registerTainacanTaxonomy( $p->post_name );
}
return $id;
@ -137,4 +138,24 @@ class Tainacan_Taxonomies {
register_taxonomy( $taxonomy_name, array( ), $args );
}
}
function get_taxonomy_by_id($id) {
return new Tainacan_Taxonomy($id);
}
function insert_term( $name, $taxonomy, $args = array() ){
$term = wp_insert_term( $name, $taxonomy, $args );
return $term['term_id'];
}
function get_terms( $taxonomies, $args ){
return get_terms( $taxonomies, $args );
}
function get_term_by($field,$value,$taxonomy){
return get_term_by($field,$value,$taxonomy);
}
}
global $Tainacan_Taxonomies;
$Tainacan_Taxonomies = new Tainacan_Taxonomies();

View File

@ -10,12 +10,14 @@ Version: 10.9.8.7.6.5.4
include('classes/Repositories/Collections.php');
include('classes/Repositories/Items.php');
include('classes/Repositories/Metatadas.php');
include('classes/Repositories/Taxonomies.php');
include('classes/Entity.php');
include('classes/Entities/Collection.php');
include('classes/Entities/Item.php');
include('classes/Entities/Metadata.php');
include('classes/Entities/FieldType.php');
include('classes/Entities/TextFieldType.php');
include('classes/Entities/Taxonomy.php');
include('classes/FieldTypes/FieldType.php');
include('classes/FieldTypes/TextFieldType.php');
require_once('tainacan-api-controllers/class-tainacan-api.php');
$tainacan_api = new Tainacan_API();

60
tests/test-taxonomies.php Normal file
View File

@ -0,0 +1,60 @@
<?php
/**
* Class TestCollections
*
* @package Test_Tainacan
*/
/**
* Sample test case.
*/
class TestTaxonomies extends WP_UnitTestCase {
/**
* Teste da insercao de uma taxonomia simples
*/
function test_add() {
global $Tainacan_Taxonomies;
$taxonomy = new Tainacan_Taxonomy();
//setando os valores na classe do tainacan
$taxonomy->set_name('genero');
$taxonomy->set_description('tipos de musica');
$taxonomy->set_allow_insert(true);
//inserindo
$taxonomy_id = $Tainacan_Taxonomies->insert($taxonomy);
//retorna a taxonomia
$test = $Tainacan_Taxonomies->get_taxonomy_by_id($taxonomy_id);
$this->assertEquals( $test->get_name(), 'genero' );
$this->assertEquals( $test->get_description(), 'tipos de musica' );
$this->assertEquals( $test->get_allow_insert(), true );
$this->assertEquals( taxonomy_exists( $test->get_taxonomy_name() ) , true );
}
function test_add_term_taxonomy(){
global $Tainacan_Taxonomies;
$taxonomy = new Tainacan_Taxonomy();
//setando os valores na classe do tainacan
$taxonomy->set_name('genero');
//insere a taxonomia
$taxonomy_id = $Tainacan_Taxonomies->insert($taxonomy);
//retorna a taxonomia
$taxonomy_test = $Tainacan_Taxonomies->get_taxonomy_by_id($taxonomy_id);
//insere um termo na taxonmia
$term_id = $Tainacan_Taxonomies->insert_term('Rock', $taxonomy_test->get_taxonomy_name());
//retorna o termo
$term = $Tainacan_Taxonomies->get_term_by('id', $term_id, $taxonomy_test->get_taxonomy_name());
$this->assertEquals( $term->name, 'Rock' );
}
}