8f95800d52
WordPress' code just... wasn't. This is now dealt with. Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS. Fixes #41057. git-svn-id: https://develop.svn.wordpress.org/trunk@42343 602fd350-edb4-49c9-b593-d223f7449a82
62 lines
2.0 KiB
PHP
62 lines
2.0 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Unit test factory for terms.
|
|
*
|
|
* Note: The below @method notations are defined solely for the benefit of IDEs,
|
|
* as a way to indicate expected return values from the given factory methods.
|
|
*
|
|
* @method int create( $args = array(), $generation_definitions = null )
|
|
* @method int[] create_many( $count, $args = array(), $generation_definitions = null )
|
|
*/
|
|
class WP_UnitTest_Factory_For_Term extends WP_UnitTest_Factory_For_Thing {
|
|
|
|
private $taxonomy;
|
|
const DEFAULT_TAXONOMY = 'post_tag';
|
|
|
|
function __construct( $factory = null, $taxonomy = null ) {
|
|
parent::__construct( $factory );
|
|
$this->taxonomy = $taxonomy ? $taxonomy : self::DEFAULT_TAXONOMY;
|
|
$this->default_generation_definitions = array(
|
|
'name' => new WP_UnitTest_Generator_Sequence( 'Term %s' ),
|
|
'taxonomy' => $this->taxonomy,
|
|
'description' => new WP_UnitTest_Generator_Sequence( 'Term description %s' ),
|
|
);
|
|
}
|
|
|
|
function create_object( $args ) {
|
|
$args = array_merge( array( 'taxonomy' => $this->taxonomy ), $args );
|
|
$term_id_pair = wp_insert_term( $args['name'], $args['taxonomy'], $args );
|
|
if ( is_wp_error( $term_id_pair ) ) {
|
|
return $term_id_pair;
|
|
}
|
|
return $term_id_pair['term_id'];
|
|
}
|
|
|
|
function update_object( $term, $fields ) {
|
|
$fields = array_merge( array( 'taxonomy' => $this->taxonomy ), $fields );
|
|
if ( is_object( $term ) ) {
|
|
$taxonomy = $term->taxonomy;
|
|
}
|
|
$term_id_pair = wp_update_term( $term, $taxonomy, $fields );
|
|
return $term_id_pair['term_id'];
|
|
}
|
|
|
|
function add_post_terms( $post_id, $terms, $taxonomy, $append = true ) {
|
|
return wp_set_post_terms( $post_id, $terms, $taxonomy, $append );
|
|
}
|
|
|
|
/**
|
|
* @return array|null|WP_Error|WP_Term
|
|
*/
|
|
function create_and_get( $args = array(), $generation_definitions = null ) {
|
|
$term_id = $this->create( $args, $generation_definitions );
|
|
$taxonomy = isset( $args['taxonomy'] ) ? $args['taxonomy'] : $this->taxonomy;
|
|
return get_term( $term_id, $taxonomy );
|
|
}
|
|
|
|
function get_object_by_id( $term_id ) {
|
|
return get_term( $term_id, $this->taxonomy );
|
|
}
|
|
}
|