fix: return metadata section on delete
This commit is contained in:
parent
3b88491708
commit
eda15fdc40
|
@ -387,6 +387,9 @@ class Metadata_Sections extends Repository {
|
|||
*/
|
||||
public function delete( Entities\Entity $entity, $permanent = true ) {
|
||||
//test if not exist a metadata using this section
|
||||
if ( !empty( $this->get_metadata_object_list($entity->get_id() ) ) ) {
|
||||
throw new \Exception( 'The metadata section must not contain metadata before deleted' );
|
||||
}
|
||||
return parent::delete($entity, $permanent);
|
||||
}
|
||||
|
||||
|
|
|
@ -515,6 +515,7 @@ abstract class Repository {
|
|||
$Tainacan_Metadata = Repositories\Metadata::get_instance();
|
||||
$Tainacan_Taxonomies = Repositories\Taxonomies::get_instance();
|
||||
$Tainacan_Terms = Repositories\Terms::get_instance();
|
||||
$Tainacan_Metadata_Sections = Repositories\Metadata_Sections::get_instance();
|
||||
|
||||
$tnc_globals = [
|
||||
$Tainacan_Collections,
|
||||
|
@ -522,7 +523,8 @@ abstract class Repository {
|
|||
$Tainacan_Filters,
|
||||
$Tainacan_Taxonomies,
|
||||
$Tainacan_Terms,
|
||||
$Tainacan_Logs
|
||||
$Tainacan_Logs,
|
||||
$Tainacan_Metadata_Sections
|
||||
];
|
||||
foreach ( $tnc_globals as $tnc_repository ) {
|
||||
$tnc_entity = new $tnc_repository->entities_type();
|
||||
|
|
|
@ -9,15 +9,15 @@ use Tainacan\Metadata_Types;
|
|||
*/
|
||||
|
||||
/**
|
||||
* Metadatum test case.
|
||||
* MetadataSection test case.
|
||||
* @group metadata
|
||||
*/
|
||||
class MetadataSection extends TAINACAN_UnitTestCase {
|
||||
|
||||
/**
|
||||
* Test insert a regular metadatum with type
|
||||
* Test create a metadata section
|
||||
*/
|
||||
function test_add() {
|
||||
function test_create() {
|
||||
$Tainacan_Metadata = \Tainacan\Repositories\Metadata::get_instance();
|
||||
$Tainacan_Metadata_Section = \Tainacan\Repositories\Metadata_Sections::get_instance();
|
||||
|
||||
|
@ -55,7 +55,7 @@ class MetadataSection extends TAINACAN_UnitTestCase {
|
|||
);
|
||||
|
||||
$test = $Tainacan_Metadata->fetch($metadatum->get_id());
|
||||
$section = $Tainacan_Metadata_Section->fetch($metadata_section->get_id());
|
||||
$Tainacan_Metadata_Section->fetch($metadata_section->get_id());
|
||||
|
||||
$this->assertEquals($test->get_name(), 'metadado');
|
||||
$this->assertEquals($test->get_description(), 'descricao');
|
||||
|
@ -69,9 +69,69 @@ class MetadataSection extends TAINACAN_UnitTestCase {
|
|||
$this->assertTrue((bool) $test->get_accept_suggestion());
|
||||
}
|
||||
|
||||
// function test_remove() {
|
||||
// return;
|
||||
// }
|
||||
/**
|
||||
* Test remove a metadata section
|
||||
*/
|
||||
function test_remove() {
|
||||
$Tainacan_Metadata_Section = \Tainacan\Repositories\Metadata_Sections::get_instance();
|
||||
|
||||
$collection = $this->tainacan_entity_factory->create_entity(
|
||||
'collection',
|
||||
array(
|
||||
'name' => 'teste'
|
||||
),
|
||||
true
|
||||
);
|
||||
|
||||
$metadata_section_to_delete = $this->tainacan_entity_factory->create_entity(
|
||||
'Metadata_Section',
|
||||
array(
|
||||
'name' => 'Section',
|
||||
'description' => 'Section Description',
|
||||
'collection' => $collection,
|
||||
'status' => 'publish'
|
||||
),
|
||||
true
|
||||
);
|
||||
|
||||
$metadata_section_no_delete = $this->tainacan_entity_factory->create_entity(
|
||||
'Metadata_Section',
|
||||
array(
|
||||
'name' => 'Section',
|
||||
'description' => 'Section Description',
|
||||
'collection' => $collection,
|
||||
'status' => 'publish'
|
||||
),
|
||||
true
|
||||
);
|
||||
|
||||
$this->tainacan_entity_factory->create_entity(
|
||||
'metadatum',
|
||||
array(
|
||||
'name' => 'metadado',
|
||||
'description' => 'descricao',
|
||||
'collection' => $collection,
|
||||
'accept_suggestion' => true,
|
||||
'metadata_type' => 'Tainacan\Metadata_Types\Text',
|
||||
'metadata_section_id' => $metadata_section_no_delete->get_id(),
|
||||
),
|
||||
true,
|
||||
true
|
||||
);
|
||||
|
||||
// $Tainacan_Metadata->fetch($metadatum->get_id());
|
||||
$section_id = $metadata_section_to_delete->get_id();
|
||||
$section = $Tainacan_Metadata_Section->fetch($section_id);
|
||||
$section = $Tainacan_Metadata_Section->delete($section);
|
||||
$section_empty = $Tainacan_Metadata_Section->fetch($section_id);
|
||||
$this->assertEquals($section_id, $section->get_id() );
|
||||
$this->assertTrue(empty($section_empty));
|
||||
|
||||
$this->setExpectedException(\Exception::class);
|
||||
$section = $Tainacan_Metadata_Section->fetch($metadata_section_no_delete->get_id());
|
||||
$Tainacan_Metadata_Section->delete($section);
|
||||
|
||||
}
|
||||
|
||||
function test_change_section() {
|
||||
$Tainacan_Metadata = \Tainacan\Repositories\Metadata::get_instance();
|
||||
|
|
Loading…
Reference in New Issue