From 54c08285cdd946a98c81b978184e21fa1f08c99d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20L=C3=B3pez?= Date: Mon, 20 Jan 2025 12:51:33 +0100 Subject: [PATCH] feature 464. Add Post Status support in post meta conditions --- .../Condition/Post_Status_Condition.php | 26 ++ core/Container/Post_Meta_Container.php | 233 ++++++++------- .../Provider/Container_Condition_Provider.php | 272 ++++++++++-------- .../Translator/ArrayTranslatorTest.php | 166 ++++++----- 4 files changed, 395 insertions(+), 302 deletions(-) create mode 100644 core/Container/Condition/Post_Status_Condition.php diff --git a/core/Container/Condition/Post_Status_Condition.php b/core/Container/Condition/Post_Status_Condition.php new file mode 100644 index 000000000..49631b90c --- /dev/null +++ b/core/Container/Condition/Post_Status_Condition.php @@ -0,0 +1,26 @@ +compare( + $post_status, + $this->get_comparison_operator(), + $this->get_value() + ); + } +} diff --git a/core/Container/Post_Meta_Container.php b/core/Container/Post_Meta_Container.php index 4c3687139..fdb5b75a9 100644 --- a/core/Container/Post_Meta_Container.php +++ b/core/Container/Post_Meta_Container.php @@ -11,7 +11,8 @@ * providing easier user interface to add, edit and delete text, media files, * location information and more. */ -class Post_Meta_Container extends Container { +class Post_Meta_Container extends Container +{ /** * ID of the post the container is working with * @@ -20,9 +21,15 @@ class Post_Meta_Container extends Container { */ protected $post_id; + /** + * Status of the post the container is working with + * + */ + protected $post_status; + /** * Post Types - * + * */ protected $post_types; @@ -47,11 +54,12 @@ class Post_Meta_Container extends Container { /** * {@inheritDoc} */ - public function __construct( $id, $title, $type, $condition_collection, $condition_translator ) { - parent::__construct( $id, $title, $type, $condition_collection, $condition_translator ); + public function __construct($id, $title, $type, $condition_collection, $condition_translator) + { + parent::__construct($id, $title, $type, $condition_collection, $condition_translator); - if ( ! $this->get_datastore() ) { - $this->set_datastore( Datastore::make( 'post_meta' ), $this->has_default_datastore() ); + if (! $this->get_datastore()) { + $this->set_datastore(Datastore::make('post_meta'), $this->has_default_datastore()); } } @@ -59,19 +67,20 @@ public function __construct( $id, $title, $type, $condition_collection, $conditi * Create DataStore instance, set post ID to operate with (if such exists). * Bind attach() and save() to the appropriate WordPress actions. */ - public function init() { - $input = stripslashes_deep( $_GET ); - $request_post_id = isset( $input['post'] ) ? intval( $input['post'] ) : 0; - if ( $request_post_id > 0 ) { - $this->set_post_id( $request_post_id ); + public function init() + { + $input = stripslashes_deep($_GET); + $request_post_id = isset($input['post']) ? intval($input['post']) : 0; + if ($request_post_id > 0) { + $this->set_post_id($request_post_id); } - add_action( 'admin_init', array( $this, '_attach' ) ); - add_action( 'save_post', array( $this, '_save' ) ); + add_action('admin_init', array($this, '_attach')); + add_action('save_post', array($this, '_save')); // support for attachments - add_action( 'add_attachment', array( $this, '_save' ) ); - add_action( 'edit_attachment', array( $this, '_save' ) ); + add_action('add_attachment', array($this, '_save')); + add_action('edit_attachment', array($this, '_save')); } /** @@ -81,25 +90,26 @@ public function init() { * * @return bool */ - public function is_valid_save() { + public function is_valid_save() + { $params = func_get_args(); $post_id = $params[0]; - $post_type = get_post_type( $post_id ); + $post_type = get_post_type($post_id); - $wp_preview = ( ! empty( $_POST['wp-preview'] ) ) ? $_POST['wp-preview'] : ''; + $wp_preview = (! empty($_POST['wp-preview'])) ? $_POST['wp-preview'] : ''; $in_preview = $wp_preview === 'dopreview'; - $doing_autosave = defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE; + $doing_autosave = defined('DOING_AUTOSAVE') && DOING_AUTOSAVE; $is_revision = $post_type === 'revision'; - if ( ( $doing_autosave || $is_revision ) && ( ! $in_preview || $this->revisions_disabled ) ) { + if (($doing_autosave || $is_revision) && (! $in_preview || $this->revisions_disabled)) { return false; } - if ( ! $this->verified_nonce_in_request() ) { + if (! $this->verified_nonce_in_request()) { return false; } - return $this->is_valid_attach_for_object( $post_id ); + return $this->is_valid_attach_for_object($post_id); } /** @@ -108,18 +118,19 @@ public function is_valid_save() { * * @param int $post_id ID of the post against which save() is ran */ - public function save( $post_id = null ) { + public function save($post_id = null) + { // Unhook action to garantee single save - remove_action( 'save_post', array( $this, '_save' ) ); + remove_action('save_post', array($this, '_save')); - $this->set_post_id( $post_id ); + $this->set_post_id($post_id); - foreach ( $this->fields as $field ) { - $field->set_value_from_input( Helper::input() ); + foreach ($this->fields as $field) { + $field->set_value_from_input(Helper::input()); $field->save(); } - do_action( 'carbon_fields_post_meta_container_saved', $post_id, $this ); + do_action('carbon_fields_post_meta_container_saved', $post_id, $this); } /** @@ -127,25 +138,27 @@ public function save( $post_id = null ) { * * @return array */ - protected function get_environment_for_request() { + protected function get_environment_for_request() + { global $pagenow; - $input = stripslashes_deep( $_GET ); - $request_post_type = isset( $input['post_type'] ) ? $input['post_type'] : ''; + $input = stripslashes_deep($_GET); + $request_post_type = isset($input['post_type']) ? $input['post_type'] : ''; $post_type = ''; - if ( $this->post_id ) { - $post_type = get_post_type( $this->post_id ); - } elseif ( ! empty( $request_post_type ) ) { + if ($this->post_id) { + $post_type = get_post_type($this->post_id); + } elseif (! empty($request_post_type)) { $post_type = $request_post_type; - } elseif ( $pagenow === 'post-new.php' ) { + } elseif ($pagenow === 'post-new.php') { $post_type = 'post'; } - $post = get_post( $this->post_id ); + $post = get_post($this->post_id); $post = $post ? $post : null; $environment = array( 'post_id' => $post ? $post->ID : 0, + 'post_status' => $post ? $post->post_status : 'draft', 'post_type' => $post ? $post->post_type : $post_type, 'post' => $post, ); @@ -157,15 +170,16 @@ protected function get_environment_for_request() { * * @return bool True if the container is allowed to be attached */ - public function is_valid_attach_for_request() { + public function is_valid_attach_for_request() + { global $pagenow; - if ( $pagenow !== 'post.php' && $pagenow !== 'post-new.php' ) { + if ($pagenow !== 'post.php' && $pagenow !== 'post-new.php') { return false; } $environment = $this->get_environment_for_request(); - if ( ! $environment['post_type'] ) { + if (! $environment['post_type']) { return false; } @@ -177,17 +191,19 @@ public function is_valid_attach_for_request() { * * @return array */ - protected function get_environment_for_object( $object_id ) { - $post = get_post( intval( $object_id ) ); + protected function get_environment_for_object($object_id) + { + $post = get_post(intval($object_id)); $post_type = $post->post_type; - if ( wp_is_post_revision( $post ) !== false ) { - $post = get_post( intval( $post->post_parent ) ); + if (wp_is_post_revision($post) !== false) { + $post = get_post(intval($post->post_parent)); $post_type = $post->post_type; } $environment = array( 'post_id' => $post->ID, + 'post_status' => $post->post_status, 'post' => $post, 'post_type' => $post_type, ); @@ -200,41 +216,44 @@ protected function get_environment_for_object( $object_id ) { * @param int $object_id * @return bool */ - public function is_valid_attach_for_object( $object_id = null ) { - $post = get_post( intval( $object_id ) ); + public function is_valid_attach_for_object($object_id = null) + { + $post = get_post(intval($object_id)); - if ( ! $post ) { + if (! $post) { return false; } - return $this->all_conditions_pass( intval( $post->ID ) ); + return $this->all_conditions_pass(intval($post->ID)); } /** * Add meta box for each of the container post types */ - public function attach() { + public function attach() + { $this->post_types = $this->get_post_type_visibility(); - foreach ( $this->post_types as $post_type ) { + foreach ($this->post_types as $post_type) { add_meta_box( $this->get_id(), $this->title, - array( $this, 'render' ), + array($this, 'render'), $post_type, $this->settings['meta_box_context'], $this->settings['meta_box_priority'] ); $container_id = $this->get_id(); - add_filter( "postbox_classes_{$post_type}_{$container_id}", array( $this, 'add_postbox_classes' ) ); + add_filter("postbox_classes_{$post_type}_{$container_id}", array($this, 'add_postbox_classes')); } } /** * Classes to add to the post meta box */ - public function add_postbox_classes( $classes ) { + public function add_postbox_classes($classes) + { $classes[] = 'carbon-box'; return $classes; } @@ -242,7 +261,8 @@ public function add_postbox_classes( $classes ) { /** * Output the container markup */ - public function render() { + public function render() + { include \Carbon_Fields\DIR . '/templates/Container/post_meta.php'; } @@ -251,14 +271,15 @@ public function render() { * * @param int $post_id */ - public function set_post_id( $post_id ) { + public function set_post_id($post_id) + { $this->post_id = $post_id; - $this->get_datastore()->set_object_id( $post_id ); + $this->get_datastore()->set_object_id($post_id); - foreach ( $this->fields as $field ) { + foreach ($this->fields as $field) { $datastore = $field->get_datastore(); - if ( $datastore->get_object_id() === 0 ) { - $datastore->set_object_id( $post_id ); + if ($datastore->get_object_id() === 0) { + $datastore->set_object_id($post_id); } } } @@ -268,16 +289,17 @@ public function set_post_id( $post_id ) { * * @return array */ - public function get_post_type_visibility() { + public function get_post_type_visibility() + { $all_post_types = get_post_types(); - $evaluated_collection = $this->condition_collection->evaluate( array( 'post_type' ), true, array(), true ); + $evaluated_collection = $this->condition_collection->evaluate(array('post_type'), true, array(), true); $shown_on = array(); - foreach ( $all_post_types as $post_type ) { + foreach ($all_post_types as $post_type) { $environment = array( 'post_type' => $post_type, ); - if ( $evaluated_collection->is_fulfilled( $environment ) ) { + if ($evaluated_collection->is_fulfilled($environment)) { $shown_on[] = $post_type; } } @@ -295,17 +317,18 @@ public function get_post_type_visibility() { * @param int|string $page page ID or page path * @return object $this */ - public function show_on_page( $page ) { - $page_id = absint( $page ); + public function show_on_page($page) + { + $page_id = absint($page); - if ( $page_id && $page_id == $page ) { - $page_obj = get_post( $page_id ); + if ($page_id && $page_id == $page) { + $page_obj = get_post($page_id); } else { - $page_obj = get_page_by_path( $page ); + $page_obj = get_page_by_path($page); } - $page_id = ( $page_obj ) ? $page_obj->ID : -1; + $page_id = ($page_obj) ? $page_obj->ID : -1; - $this->where( 'post_id', '=', $page_id ); + $this->where('post_id', '=', $page_id); return $this; } @@ -317,10 +340,11 @@ public function show_on_page( $page ) { * @param string $parent_page_path * @return object $this */ - public function show_on_page_children( $parent_page_path ) { - $page = get_page_by_path( $parent_page_path ); - $page_id = ( $page ) ? $page->ID : -1; - $this->where( 'post_parent_id', '=', $page_id ); + public function show_on_page_children($parent_page_path) + { + $page = get_page_by_path($parent_page_path); + $page_id = ($page) ? $page->ID : -1; + $this->where('post_parent_id', '=', $page_id); return $this; } @@ -331,14 +355,15 @@ public function show_on_page_children( $parent_page_path ) { * @param string|array $template_path * @return object $this */ - public function show_on_template( $template_path ) { + public function show_on_template($template_path) + { // Backwards compatibility where only pages support templates - if ( version_compare( get_bloginfo( 'version' ), '4.7', '<' ) ) { - $this->show_on_post_type( 'page' ); + if (version_compare(get_bloginfo('version'), '4.7', '<')) { + $this->show_on_post_type('page'); } - $template_paths = is_array( $template_path ) ? $template_path : array( $template_path ); - $this->where( 'post_template', 'IN', $template_paths ); + $template_paths = is_array($template_path) ? $template_path : array($template_path); + $this->where('post_template', 'IN', $template_paths); return $this; } @@ -349,9 +374,10 @@ public function show_on_template( $template_path ) { * @param string|array $template_path * @return object $this */ - public function hide_on_template( $template_path ) { - $template_paths = is_array( $template_path ) ? $template_path : array( $template_path ); - $this->where( 'post_template', 'NOT IN', $template_paths ); + public function hide_on_template($template_path) + { + $template_paths = is_array($template_path) ? $template_path : array($template_path); + $this->where('post_template', 'NOT IN', $template_paths); return $this; } @@ -363,8 +389,9 @@ public function hide_on_template( $template_path ) { * @param int $level * @return object $this */ - public function show_on_level( $level ) { - $this->where( 'post_level', '=', intval( $level ) ); + public function show_on_level($level) + { + $this->where('post_level', '=', intval($level)); return $this; } @@ -376,9 +403,10 @@ public function show_on_level( $level ) { * @param string|array $post_format Name of the format as listed on Codex * @return object $this */ - public function show_on_post_format( $post_format ) { - $post_formats = is_array( $post_format ) ? $post_format : array( $post_format ); - $this->where( 'post_format', 'IN', $post_formats ); + public function show_on_post_format($post_format) + { + $post_formats = is_array($post_format) ? $post_format : array($post_format); + $this->where('post_format', 'IN', $post_formats); return $this; } @@ -389,9 +417,10 @@ public function show_on_post_format( $post_format ) { * @param string|array $post_types * @return object $this */ - public function show_on_post_type( $post_types ) { - $post_types = is_array( $post_types ) ? $post_types : array( $post_types ); - $this->where( 'post_type', 'IN', $post_types ); + public function show_on_post_type($post_types) + { + $post_types = is_array($post_types) ? $post_types : array($post_types); + $this->where('post_type', 'IN', $post_types); return $this; } @@ -404,12 +433,13 @@ public function show_on_post_type( $post_types ) { * @param string $category_slug * @return object $this */ - public function show_on_category( $category_slug ) { - $this->where( 'post_term', '=', array( + public function show_on_category($category_slug) + { + $this->where('post_term', '=', array( 'value' => $category_slug, 'field' => 'slug', 'taxonomy' => 'category', - ) ); + )); return $this; } @@ -421,12 +451,13 @@ public function show_on_category( $category_slug ) { * @param string $term_slug * @return object $this */ - public function show_on_taxonomy_term( $term_slug, $taxonomy_slug ) { - $this->where( 'post_term', '=', array( + public function show_on_taxonomy_term($term_slug, $taxonomy_slug) + { + $this->where('post_term', '=', array( 'value' => $term_slug, 'field' => 'slug', 'taxonomy' => $taxonomy_slug, - ) ); + )); return $this; } @@ -436,7 +467,8 @@ public function show_on_taxonomy_term( $term_slug, $taxonomy_slug ) { * @see https://codex.wordpress.org/Function_Reference/add_meta_box * @param string $context ('normal', 'advanced', 'side' or the custom `carbon_fields_after_title`) */ - public function set_context( $context ) { + public function set_context($context) + { $this->settings['meta_box_context'] = $context; return $this; } @@ -447,17 +479,20 @@ public function set_context( $context ) { * @see https://codex.wordpress.org/Function_Reference/add_meta_box * @param string $priority ('high', 'core', 'default' or 'low') */ - public function set_priority( $priority ) { + public function set_priority($priority) + { $this->settings['meta_box_priority'] = $priority; return $this; } - public function set_revisions_disabled( $revisions_disabled ) { + public function set_revisions_disabled($revisions_disabled) + { $this->revisions_disabled = $revisions_disabled; return $this; } - public function get_revisions_disabled() { + public function get_revisions_disabled() + { return $this->revisions_disabled; } } diff --git a/core/Provider/Container_Condition_Provider.php b/core/Provider/Container_Condition_Provider.php index 240cbb1b9..ffd7a97e6 100644 --- a/core/Provider/Container_Condition_Provider.php +++ b/core/Provider/Container_Condition_Provider.php @@ -7,18 +7,20 @@ use Carbon_Fields\Container\Condition\Factory as ConditionFactory; use Carbon_Fields\Container\Fulfillable\Fulfillable_Collection; -class Container_Condition_Provider implements ServiceProviderInterface { +class Container_Condition_Provider implements ServiceProviderInterface +{ /** * Install dependencies in IoC container * * @param PimpleContainer $ioc */ - public function register( PimpleContainer $ioc ) { - $this->install_conditions( $ioc ); - $this->install_comparers( $ioc ); - $this->install_translators( $ioc ); - $this->install_container_conditions( $ioc ); + public function register(PimpleContainer $ioc) + { + $this->install_conditions($ioc); + $this->install_comparers($ioc); + $this->install_translators($ioc); + $this->install_container_conditions($ioc); } /** @@ -26,145 +28,151 @@ public function register( PimpleContainer $ioc ) { * * @param PimpleContainer $ioc */ - protected function install_conditions( $ioc ) { - $ioc['container_condition_factory'] = function( $ioc ) { - return new ConditionFactory( $ioc['container_conditions'] ); + protected function install_conditions($ioc) + { + $ioc['container_condition_factory'] = function ($ioc) { + return new ConditionFactory($ioc['container_conditions']); }; - $ioc['container_condition_fulfillable_collection'] = $ioc->factory( function( $ioc ) { - return new Fulfillable_Collection( $ioc['container_condition_factory'], $ioc['container_condition_translator_array'] ); - } ); + $ioc['container_condition_fulfillable_collection'] = $ioc->factory(function ($ioc) { + return new Fulfillable_Collection($ioc['container_condition_factory'], $ioc['container_condition_translator_array']); + }); - $ioc['container_conditions'] = function() { + $ioc['container_conditions'] = function () { return new PimpleContainer(); }; $cc_ioc = $ioc['container_conditions']; - $cc_ioc['boolean'] = $cc_ioc->factory( function() use ( $ioc ) { + $cc_ioc['boolean'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Boolean_Condition(); - $condition->set_comparers( array( + $condition->set_comparers(array( $ioc['container_condition_comparers']['equality'], - ) ); + )); return $condition; - } ); + }); - $cc_ioc['post_id'] = $cc_ioc->factory( function() use ( $ioc ) { + $cc_ioc['post_id'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Post_ID_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['generic'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['generic']); return $condition; - } ); - $cc_ioc['post_parent_id'] = $cc_ioc->factory( function() use ( $ioc ) { + }); + $cc_ioc['post_status'] = $cc_ioc->factory(function () use ($ioc) { + $condition = new \Carbon_Fields\Container\Condition\Post_Status_Condition(); + $condition->set_comparers($ioc['container_condition_comparer_collections']['generic']); + return $condition; + }); + $cc_ioc['post_parent_id'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Post_Parent_ID_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['generic'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['generic']); return $condition; - } ); - $cc_ioc['post_ancestor_id'] = $cc_ioc->factory( function() use ( $ioc ) { + }); + $cc_ioc['post_ancestor_id'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Post_Ancestor_ID_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['array'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['array']); return $condition; - } ); - $cc_ioc['post_type'] = $cc_ioc->factory( function() use ( $ioc ) { + }); + $cc_ioc['post_type'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Post_Type_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['nonscalar'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['nonscalar']); return $condition; - } ); - $cc_ioc['post_format'] = $cc_ioc->factory( function() use ( $ioc ) { + }); + $cc_ioc['post_format'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Post_Format_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['nonscalar'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['nonscalar']); return $condition; - } ); - $cc_ioc['post_level'] = $cc_ioc->factory( function() use ( $ioc ) { + }); + $cc_ioc['post_level'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Post_Level_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['generic'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['generic']); return $condition; - } ); - $cc_ioc['post_template'] = $cc_ioc->factory( function() use ( $ioc ) { + }); + $cc_ioc['post_template'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Post_Template_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['nonscalar'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['nonscalar']); return $condition; - } ); - $cc_ioc['post_term'] = $cc_ioc->factory( function() use ( $ioc ) { - $condition = new \Carbon_Fields\Container\Condition\Post_Term_Condition( $ioc['wp_toolset'] ); - $condition->set_comparers( array( + }); + $cc_ioc['post_term'] = $cc_ioc->factory(function () use ($ioc) { + $condition = new \Carbon_Fields\Container\Condition\Post_Term_Condition($ioc['wp_toolset']); + $condition->set_comparers(array( // Only support the custom comparer as this condition has its own comparison methods $ioc['container_condition_comparers']['custom'], - ) ); + )); return $condition; - } ); + }); - $cc_ioc['term'] = $cc_ioc->factory( function() use ( $ioc ) { - $condition = new \Carbon_Fields\Container\Condition\Term_Condition( $ioc['wp_toolset'] ); - $condition->set_comparers( array( + $cc_ioc['term'] = $cc_ioc->factory(function () use ($ioc) { + $condition = new \Carbon_Fields\Container\Condition\Term_Condition($ioc['wp_toolset']); + $condition->set_comparers(array( // Only support the custom comparer as this condition has its own comparison methods $ioc['container_condition_comparers']['custom'], - ) ); + )); return $condition; - } ); - $cc_ioc['term_taxonomy'] = $cc_ioc->factory( function() use ( $ioc ) { + }); + $cc_ioc['term_taxonomy'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Term_Taxonomy_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['nonscalar'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['nonscalar']); return $condition; - } ); - $cc_ioc['term_level'] = $cc_ioc->factory( function() use ( $ioc ) { + }); + $cc_ioc['term_level'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Term_Level_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['generic'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['generic']); return $condition; - } ); - $cc_ioc['term_parent'] = $cc_ioc->factory( function() use ( $ioc ) { - $condition = new \Carbon_Fields\Container\Condition\Term_Parent_Condition( $ioc['wp_toolset'] ); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['generic'] ); + }); + $cc_ioc['term_parent'] = $cc_ioc->factory(function () use ($ioc) { + $condition = new \Carbon_Fields\Container\Condition\Term_Parent_Condition($ioc['wp_toolset']); + $condition->set_comparers($ioc['container_condition_comparer_collections']['generic']); return $condition; - } ); - $cc_ioc['term_ancestor'] = $cc_ioc->factory( function() use ( $ioc ) { - $condition = new \Carbon_Fields\Container\Condition\Term_Ancestor_Condition( $ioc['wp_toolset'] ); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['array'] ); + }); + $cc_ioc['term_ancestor'] = $cc_ioc->factory(function () use ($ioc) { + $condition = new \Carbon_Fields\Container\Condition\Term_Ancestor_Condition($ioc['wp_toolset']); + $condition->set_comparers($ioc['container_condition_comparer_collections']['array']); return $condition; - } ); + }); - $cc_ioc['user_id'] = $cc_ioc->factory( function() use ( $ioc ) { + $cc_ioc['user_id'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\User_ID_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['generic'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['generic']); return $condition; - } ); - $cc_ioc['user_role'] = $cc_ioc->factory( function() use ( $ioc ) { + }); + $cc_ioc['user_role'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\User_Role_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['array'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['array']); return $condition; - } ); - $cc_ioc['user_capability'] = $cc_ioc->factory( function() use ( $ioc ) { + }); + $cc_ioc['user_capability'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\User_Capability_Condition(); - $condition->set_comparers( array( + $condition->set_comparers(array( // Only support the custom comparer as this condition has its own comparison methods $ioc['container_condition_comparers']['custom'], - ) ); + )); return $condition; - } ); + }); - $cc_ioc['blog_id'] = $cc_ioc->factory( function() use ( $ioc ) { + $cc_ioc['blog_id'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Blog_ID_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['generic'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['generic']); return $condition; - } ); + }); - $cc_ioc['current_user_id'] = $cc_ioc->factory( function() use ( $ioc ) { + $cc_ioc['current_user_id'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Current_User_ID_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['generic'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['generic']); return $condition; - } ); - $cc_ioc['current_user_role'] = $cc_ioc->factory( function() use ( $ioc ) { + }); + $cc_ioc['current_user_role'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Current_User_Role_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['array'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['array']); return $condition; - } ); - $cc_ioc['current_user_capability'] = $cc_ioc->factory( function() use ( $ioc ) { + }); + $cc_ioc['current_user_capability'] = $cc_ioc->factory(function () use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Current_User_Capability_Condition(); - $condition->set_comparers( array( + $condition->set_comparers(array( // Only support the custom comparer as this condition has its own comparison methods $ioc['container_condition_comparers']['custom'], - ) ); + )); return $condition; - } ); + }); } /** @@ -172,40 +180,41 @@ protected function install_conditions( $ioc ) { * * @param PimpleContainer $ioc */ - protected function install_comparers( $ioc ) { - $ioc['container_condition_comparers'] = function() { + protected function install_comparers($ioc) + { + $ioc['container_condition_comparers'] = function () { return new PimpleContainer(); }; - $ioc['container_condition_comparers']['equality'] = function() { + $ioc['container_condition_comparers']['equality'] = function () { return new \Carbon_Fields\Container\Condition\Comparer\Equality_Comparer(); }; - $ioc['container_condition_comparers']['any_equality'] = function() { + $ioc['container_condition_comparers']['any_equality'] = function () { return new \Carbon_Fields\Container\Condition\Comparer\Any_Equality_Comparer(); }; - $ioc['container_condition_comparers']['contain'] = function() { + $ioc['container_condition_comparers']['contain'] = function () { return new \Carbon_Fields\Container\Condition\Comparer\Contain_Comparer(); }; - $ioc['container_condition_comparers']['any_contain'] = function() { + $ioc['container_condition_comparers']['any_contain'] = function () { return new \Carbon_Fields\Container\Condition\Comparer\Any_Contain_Comparer(); }; - $ioc['container_condition_comparers']['scalar'] = function() { + $ioc['container_condition_comparers']['scalar'] = function () { return new \Carbon_Fields\Container\Condition\Comparer\Scalar_Comparer(); }; - $ioc['container_condition_comparers']['custom'] = function() { + $ioc['container_condition_comparers']['custom'] = function () { return new \Carbon_Fields\Container\Condition\Comparer\Custom_Comparer(); }; - $ioc['container_condition_comparer_collections'] = function() { + $ioc['container_condition_comparer_collections'] = function () { return new PimpleContainer(); }; - $ioc['container_condition_comparer_collections']['generic'] = function() use ( $ioc ) { + $ioc['container_condition_comparer_collections']['generic'] = function () use ($ioc) { return array( $ioc['container_condition_comparers']['equality'], $ioc['container_condition_comparers']['contain'], @@ -213,14 +222,14 @@ protected function install_comparers( $ioc ) { $ioc['container_condition_comparers']['custom'], ); }; - $ioc['container_condition_comparer_collections']['nonscalar'] = function() use ( $ioc ) { + $ioc['container_condition_comparer_collections']['nonscalar'] = function () use ($ioc) { return array( $ioc['container_condition_comparers']['equality'], $ioc['container_condition_comparers']['contain'], $ioc['container_condition_comparers']['custom'], ); }; - $ioc['container_condition_comparer_collections']['array'] = function() use ( $ioc ) { + $ioc['container_condition_comparer_collections']['array'] = function () use ($ioc) { return array( $ioc['container_condition_comparers']['any_equality'], $ioc['container_condition_comparers']['any_contain'], @@ -234,13 +243,14 @@ protected function install_comparers( $ioc ) { * * @param PimpleContainer $ioc */ - protected static function install_translators( $ioc ) { - $ioc['container_condition_translator_array'] = function( $ioc ) { - return new \Carbon_Fields\Container\Fulfillable\Translator\Array_Translator( $ioc['container_condition_factory'] ); + protected static function install_translators($ioc) + { + $ioc['container_condition_translator_array'] = function ($ioc) { + return new \Carbon_Fields\Container\Fulfillable\Translator\Array_Translator($ioc['container_condition_factory']); }; - $ioc['container_condition_translator_json'] = function( $ioc ) { - return new \Carbon_Fields\Container\Fulfillable\Translator\Json_Translator( $ioc['container_condition_factory'] ); + $ioc['container_condition_translator_json'] = function ($ioc) { + return new \Carbon_Fields\Container\Fulfillable\Translator\Json_Translator($ioc['container_condition_factory']); }; } @@ -249,26 +259,27 @@ protected static function install_translators( $ioc ) { * * @param PimpleContainer $ioc */ - protected function install_container_conditions( $ioc ) { + protected function install_container_conditions($ioc) + { // add current_user_* static condition types to all containers - add_filter( 'carbon_fields_container_static_condition_types', function( $condition_types, $container_type, $container ) { + add_filter('carbon_fields_container_static_condition_types', function ($condition_types, $container_type, $container) { return array_merge( $condition_types, - array( 'current_user_id', 'current_user_role', 'current_user_capability' ) + array('current_user_id', 'current_user_role', 'current_user_capability') ); - }, 10, 3 ); + }, 10, 3); // add container-specific conditions - add_filter( 'carbon_fields_post_meta_container_static_condition_types', array( $this, 'filter_post_meta_container_static_condition_types' ), 10, 3 ); - add_filter( 'carbon_fields_post_meta_container_dynamic_condition_types', array( $this, 'filter_post_meta_container_dynamic_condition_types' ), 10, 3 ); + add_filter('carbon_fields_post_meta_container_static_condition_types', array($this, 'filter_post_meta_container_static_condition_types'), 10, 3); + add_filter('carbon_fields_post_meta_container_dynamic_condition_types', array($this, 'filter_post_meta_container_dynamic_condition_types'), 10, 3); - add_filter( 'carbon_fields_term_meta_container_static_condition_types', array( $this, 'filter_term_meta_container_static_condition_types' ), 10, 3 ); - add_filter( 'carbon_fields_term_meta_container_dynamic_condition_types', array( $this, 'filter_term_meta_container_dynamic_condition_types' ), 10, 3 ); + add_filter('carbon_fields_term_meta_container_static_condition_types', array($this, 'filter_term_meta_container_static_condition_types'), 10, 3); + add_filter('carbon_fields_term_meta_container_dynamic_condition_types', array($this, 'filter_term_meta_container_dynamic_condition_types'), 10, 3); - add_filter( 'carbon_fields_user_meta_container_static_condition_types', array( $this, 'filter_user_meta_container_static_condition_types' ), 10, 3 ); - add_filter( 'carbon_fields_user_meta_container_dynamic_condition_types', array( $this, 'filter_user_meta_container_dynamic_condition_types' ), 10, 3 ); + add_filter('carbon_fields_user_meta_container_static_condition_types', array($this, 'filter_user_meta_container_static_condition_types'), 10, 3); + add_filter('carbon_fields_user_meta_container_dynamic_condition_types', array($this, 'filter_user_meta_container_dynamic_condition_types'), 10, 3); - add_filter( 'carbon_fields_theme_options_container_static_condition_types', array( $this, 'filter_theme_options_container_static_condition_types' ), 10, 3 ); + add_filter('carbon_fields_theme_options_container_static_condition_types', array($this, 'filter_theme_options_container_static_condition_types'), 10, 3); } /** @@ -278,10 +289,11 @@ protected function install_container_conditions( $ioc ) { * @param \Carbon_Fields\Container\Container $container * @return array */ - public function filter_post_meta_container_static_condition_types( $condition_types, $container_type, $container ) { + public function filter_post_meta_container_static_condition_types($condition_types, $container_type, $container) + { return array_merge( $condition_types, - array( 'post_id', 'post_type' ) + array('post_id', 'post_status', 'post_type') ); } @@ -293,10 +305,11 @@ public function filter_post_meta_container_static_condition_types( $condition_ty * @param \Carbon_Fields\Container\Container $container * @return array */ - public function filter_post_meta_container_dynamic_condition_types( $condition_types, $container_type, $container ) { + public function filter_post_meta_container_dynamic_condition_types($condition_types, $container_type, $container) + { return array_merge( $condition_types, - array( 'post_parent_id', 'post_ancestor_id', 'post_format', 'post_level', 'post_template', 'post_term' ) + array('post_parent_id', 'post_ancestor_id', 'post_format', 'post_level', 'post_template', 'post_term') ); } @@ -308,10 +321,11 @@ public function filter_post_meta_container_dynamic_condition_types( $condition_t * @param \Carbon_Fields\Container\Container $container * @return array */ - public function filter_term_meta_container_static_condition_types( $condition_types, $container_type, $container ) { + public function filter_term_meta_container_static_condition_types($condition_types, $container_type, $container) + { return array_merge( $condition_types, - array( 'term', 'term_taxonomy' ) + array('term', 'term_taxonomy') ); } @@ -323,10 +337,11 @@ public function filter_term_meta_container_static_condition_types( $condition_ty * @param \Carbon_Fields\Container\Container $container * @return array */ - public function filter_term_meta_container_dynamic_condition_types( $condition_types, $container_type, $container ) { + public function filter_term_meta_container_dynamic_condition_types($condition_types, $container_type, $container) + { return array_merge( $condition_types, - array( 'term_level', 'term_parent', 'term_ancestor' ) + array('term_level', 'term_parent', 'term_ancestor') ); } @@ -338,10 +353,11 @@ public function filter_term_meta_container_dynamic_condition_types( $condition_t * @param \Carbon_Fields\Container\Container $container * @return array */ - public function filter_user_meta_container_static_condition_types( $condition_types, $container_type, $container ) { + public function filter_user_meta_container_static_condition_types($condition_types, $container_type, $container) + { return array_merge( $condition_types, - array( 'user_id', 'user_capability' ) + array('user_id', 'user_capability') ); } @@ -353,10 +369,11 @@ public function filter_user_meta_container_static_condition_types( $condition_ty * @param \Carbon_Fields\Container\Container $container * @return array */ - public function filter_user_meta_container_dynamic_condition_types( $condition_types, $container_type, $container ) { + public function filter_user_meta_container_dynamic_condition_types($condition_types, $container_type, $container) + { return array_merge( $condition_types, - array( 'user_role' ) + array('user_role') ); } @@ -368,10 +385,11 @@ public function filter_user_meta_container_dynamic_condition_types( $condition_t * @param \Carbon_Fields\Container\Container $container * @return array */ - public function filter_theme_options_container_static_condition_types( $condition_types, $container_type, $container ) { + public function filter_theme_options_container_static_condition_types($condition_types, $container_type, $container) + { return array_merge( $condition_types, - array( 'blog_id' ) + array('blog_id') ); } } diff --git a/tests/unit-tests/Container/Fulfillable/Translator/ArrayTranslatorTest.php b/tests/unit-tests/Container/Fulfillable/Translator/ArrayTranslatorTest.php index b36e7004e..8b0cafec5 100644 --- a/tests/unit-tests/Container/Fulfillable/Translator/ArrayTranslatorTest.php +++ b/tests/unit-tests/Container/Fulfillable/Translator/ArrayTranslatorTest.php @@ -8,67 +8,74 @@ /** * WARNING: the array translator produces logically identical results but not 100% identical representations when dealing with nested collections - * + * * @coversDefaultClass Carbon_Fields\Container\Fulfillable\Translator\Array_Translator */ -class ArrayTranslatorTest extends WP_UnitTestCase { +class ArrayTranslatorTest extends WP_UnitTestCase +{ public $subject; - public function setUp(): void { + public function setUp(): void + { $ioc = new PimpleContainer(); /* Conditions */ - $ioc['container_condition_factory'] = function( $ioc ) { - return new ConditionFactory( $ioc['container_conditions'] ); + $ioc['container_condition_factory'] = function ($ioc) { + return new ConditionFactory($ioc['container_conditions']); }; - - $ioc['container_condition_fulfillable_collection'] = $ioc->factory( function( $ioc ) { - return new Fulfillable_Collection( $ioc['container_condition_factory'], $ioc['container_condition_translator_array'] ); - } ); - $ioc['container_conditions'] = function() { + $ioc['container_condition_fulfillable_collection'] = $ioc->factory(function ($ioc) { + return new Fulfillable_Collection($ioc['container_condition_factory'], $ioc['container_condition_translator_array']); + }); + + $ioc['container_conditions'] = function () { return new PimpleContainer(); }; $cc_ioc = $ioc['container_conditions']; - $cc_ioc['post_id'] = $cc_ioc->factory( function( $cc_ioc ) use ( $ioc ) { + $cc_ioc['post_id'] = $cc_ioc->factory(function ($cc_ioc) use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Post_ID_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['generic'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['generic']); + return $condition; + }); + $cc_ioc['post_status'] = $cc_ioc->factory(function ($cc_ioc) use ($ioc) { + $condition = new \Carbon_Fields\Container\Condition\Post_Status_Condition(); + $condition->set_comparers($ioc['container_condition_comparer_collections']['generic']); return $condition; - } ); - $cc_ioc['post_type'] = $cc_ioc->factory( function( $cc_ioc ) use ( $ioc ) { + }); + $cc_ioc['post_type'] = $cc_ioc->factory(function ($cc_ioc) use ($ioc) { $condition = new \Carbon_Fields\Container\Condition\Post_Type_Condition(); - $condition->set_comparers( $ioc['container_condition_comparer_collections']['nonscalar'] ); + $condition->set_comparers($ioc['container_condition_comparer_collections']['nonscalar']); return $condition; - } ); + }); /* Comparers */ - $ioc['container_condition_comparers'] = function( $ioc ) { + $ioc['container_condition_comparers'] = function ($ioc) { return new PimpleContainer(); }; - $ioc['container_condition_comparers']['equality'] = function() { + $ioc['container_condition_comparers']['equality'] = function () { return new \Carbon_Fields\Container\Condition\Comparer\Equality_Comparer(); }; - $ioc['container_condition_comparers']['contain'] = function() { + $ioc['container_condition_comparers']['contain'] = function () { return new \Carbon_Fields\Container\Condition\Comparer\Contain_Comparer(); }; - $ioc['container_condition_comparers']['scalar'] = function() { + $ioc['container_condition_comparers']['scalar'] = function () { return new \Carbon_Fields\Container\Condition\Comparer\Scalar_Comparer(); }; - $ioc['container_condition_comparers']['custom'] = function() { + $ioc['container_condition_comparers']['custom'] = function () { return new \Carbon_Fields\Container\Condition\Comparer\Custom_Comparer(); }; - $ioc['container_condition_comparer_collections'] = function( $ioc ) { + $ioc['container_condition_comparer_collections'] = function ($ioc) { return new PimpleContainer(); }; - $ioc['container_condition_comparer_collections']['generic'] = function( $cccc_ioc ) use ( $ioc ) { + $ioc['container_condition_comparer_collections']['generic'] = function ($cccc_ioc) use ($ioc) { return array( $ioc['container_condition_comparers']['equality'], $ioc['container_condition_comparers']['contain'], @@ -76,7 +83,7 @@ public function setUp(): void { $ioc['container_condition_comparers']['custom'], ); }; - $ioc['container_condition_comparer_collections']['nonscalar'] = function( $cccc_ioc ) use ( $ioc ) { + $ioc['container_condition_comparer_collections']['nonscalar'] = function ($cccc_ioc) use ($ioc) { return array( $ioc['container_condition_comparers']['equality'], $ioc['container_condition_comparers']['contain'], @@ -85,16 +92,17 @@ public function setUp(): void { }; /* Translators */ - $ioc['container_condition_translator_array'] = function( $ioc ) { - return new \Carbon_Fields\Container\Fulfillable\Translator\Array_Translator( $ioc['container_condition_factory'] ); + $ioc['container_condition_translator_array'] = function ($ioc) { + return new \Carbon_Fields\Container\Fulfillable\Translator\Array_Translator($ioc['container_condition_factory']); }; - \Carbon_Fields\Carbon_Fields::instance()->install( $ioc ); + \Carbon_Fields\Carbon_Fields::instance()->install($ioc); $this->subject = $ioc['container_condition_translator_array']; } - public function tearDown(): void { + public function tearDown(): void + { M::close(); $this->subject = null; } @@ -102,46 +110,49 @@ public function tearDown(): void { /** * @covers ::fulfillable_to_foreign */ - public function testFulfillableToForeignWithCondition() { - $factory = \Carbon_Fields\Carbon_Fields::resolve( 'container_condition_factory' ); - $condition = $factory->make( 'post_type' ); - $condition->set_comparison_operator( '!=' ); - $condition->set_value( 'post' ); + public function testFulfillableToForeignWithCondition() + { + $factory = \Carbon_Fields\Carbon_Fields::resolve('container_condition_factory'); + $condition = $factory->make('post_type'); + $condition->set_comparison_operator('!='); + $condition->set_value('post'); $expected = array( 'type' => 'post_type', 'compare' => '!=', 'value' => 'post', ); - $received = $this->subject->fulfillable_to_foreign( $condition ); - $this->assertSame( $expected, $received ); + $received = $this->subject->fulfillable_to_foreign($condition); + $this->assertSame($expected, $received); } /** * @covers ::foreign_to_fulfillable */ - public function testForeignToFulfillableWithCondition() { - $factory = \Carbon_Fields\Carbon_Fields::resolve( 'container_condition_factory' ); - $condition = $factory->make( 'post_type' ); - $condition->set_comparison_operator( '!=' ); - $condition->set_value( 'post' ); + public function testForeignToFulfillableWithCondition() + { + $factory = \Carbon_Fields\Carbon_Fields::resolve('container_condition_factory'); + $condition = $factory->make('post_type'); + $condition->set_comparison_operator('!='); + $condition->set_value('post'); $expected = $condition; - $received = $this->subject->foreign_to_fulfillable( array( + $received = $this->subject->foreign_to_fulfillable(array( 'type' => 'post_type', 'compare' => '!=', 'value' => 'post', - ) ); - $this->assertEquals( $expected, $received ); + )); + $this->assertEquals($expected, $received); } /** * @covers ::fulfillable_to_foreign */ - public function testFulfillableToForeignWithCollection() { - $fulfillable = \Carbon_Fields\Carbon_Fields::resolve( 'container_condition_fulfillable_collection' ); - $fulfillable->where( 'post_type', '!=', 'post' ); - $fulfillable->where( 'post_id', '!=', 1 ); + public function testFulfillableToForeignWithCollection() + { + $fulfillable = \Carbon_Fields\Carbon_Fields::resolve('container_condition_fulfillable_collection'); + $fulfillable->where('post_type', '!=', 'post'); + $fulfillable->where('post_id', '!=', 1); $expected = array( 'relation' => 'AND', @@ -156,20 +167,21 @@ public function testFulfillableToForeignWithCollection() { 'value' => 1, ), ); - $received = $this->subject->fulfillable_to_foreign( $fulfillable ); - $this->assertSame( $expected, $received ); + $received = $this->subject->fulfillable_to_foreign($fulfillable); + $this->assertSame($expected, $received); } /** * @covers ::foreign_to_fulfillable */ - public function testForeignToFulfillableWithCollection() { - $fulfillable = \Carbon_Fields\Carbon_Fields::resolve( 'container_condition_fulfillable_collection' ); - $fulfillable->where( 'post_type', '!=', 'post' ); - $fulfillable->where( 'post_id', '!=', 1 ); + public function testForeignToFulfillableWithCollection() + { + $fulfillable = \Carbon_Fields\Carbon_Fields::resolve('container_condition_fulfillable_collection'); + $fulfillable->where('post_type', '!=', 'post'); + $fulfillable->where('post_id', '!=', 1); $expected = $fulfillable; - $received = $this->subject->foreign_to_fulfillable( array( + $received = $this->subject->foreign_to_fulfillable(array( 'relation' => 'AND', array( 'type' => 'post_type', @@ -181,20 +193,21 @@ public function testForeignToFulfillableWithCollection() { 'compare' => '!=', 'value' => 1, ), - ) ); - $this->assertEquals( $expected, $received ); + )); + $this->assertEquals($expected, $received); } /** * @covers ::fulfillable_to_foreign */ - public function testFulfillableToForeignWithNestedCollection() { - $fulfillable = \Carbon_Fields\Carbon_Fields::resolve( 'container_condition_fulfillable_collection' ); - $fulfillable->where( 'post_type', '!=', 'post' ); - $fulfillable->where( function( $c ) { - $c->where( 'post_id', '!=', 1 ); - $c->or_where( 'post_id', '!=', 2 ); - } ); + public function testFulfillableToForeignWithNestedCollection() + { + $fulfillable = \Carbon_Fields\Carbon_Fields::resolve('container_condition_fulfillable_collection'); + $fulfillable->where('post_type', '!=', 'post'); + $fulfillable->where(function ($c) { + $c->where('post_id', '!=', 1); + $c->or_where('post_id', '!=', 2); + }); $expected = array( 'relation' => 'AND', @@ -223,23 +236,24 @@ public function testFulfillableToForeignWithNestedCollection() { ), ), ); - $received = $this->subject->fulfillable_to_foreign( $fulfillable ); - $this->assertSame( $expected, $received ); + $received = $this->subject->fulfillable_to_foreign($fulfillable); + $this->assertSame($expected, $received); } /** * @covers ::foreign_to_fulfillable */ - public function testForeignToFulfillableWithNestedCollection() { - $fulfillable = \Carbon_Fields\Carbon_Fields::resolve( 'container_condition_fulfillable_collection' ); - $fulfillable->where( 'post_type', '!=', 'post' ); - $fulfillable->where( function( $c ) { - $c->or_where( 'post_id', '!=', 1 ); - $c->or_where( 'post_id', '!=', 2 ); - } ); + public function testForeignToFulfillableWithNestedCollection() + { + $fulfillable = \Carbon_Fields\Carbon_Fields::resolve('container_condition_fulfillable_collection'); + $fulfillable->where('post_type', '!=', 'post'); + $fulfillable->where(function ($c) { + $c->or_where('post_id', '!=', 1); + $c->or_where('post_id', '!=', 2); + }); $expected = $fulfillable; - $received = $this->subject->foreign_to_fulfillable( array( + $received = $this->subject->foreign_to_fulfillable(array( 'relation' => 'AND', array( 'type' => 'post_type', @@ -259,7 +273,7 @@ public function testForeignToFulfillableWithNestedCollection() { 'value' => 2, ), ), - ) ); - $this->assertEquals( $expected, $received ); + )); + $this->assertEquals($expected, $received); } -} \ No newline at end of file +}