<?php /** * Unit test factory for posts. * * 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 WP_Post create_and_get( $args = array(), $generation_definitions = null ) * @method int[] create_many( $count, $args = array(), $generation_definitions = null ) */ class WP_UnitTest_Factory_For_Post extends WP_UnitTest_Factory_For_Thing { public function __construct( $factory = null ) { parent::__construct( $factory ); $this->default_generation_definitions = array( 'post_status' => 'publish', 'post_title' => new WP_UnitTest_Generator_Sequence( 'Post title %s' ), 'post_content' => new WP_UnitTest_Generator_Sequence( 'Post content %s' ), 'post_excerpt' => new WP_UnitTest_Generator_Sequence( 'Post excerpt %s' ), 'post_type' => 'post', ); } /** * Creates a post object. * * @param array $args Array with elements for the post. * * @return int The post ID on success. The value 0 on failure. */ public function create_object( $args ) { return wp_insert_post( $args ); } /** * Updates an existing post object. * * @param int $post_id ID of the post to update. * @param array $fields Post data. * * @return int The post ID on success. The value 0 on failure. */ public function update_object( $post_id, $fields ) { $fields['ID'] = $post_id; return wp_update_post( $fields ); } /** * Retrieves a post by a given ID. * * @param int $post_id ID of the post to retrieve. * * @return WP_Post|null WP_Post object on success, null on failure. */ public function get_object_by_id( $post_id ) { return get_post( $post_id ); } }