Skip to content
Closed
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
102d602
Adds empty bookmark tests.
Apr 7, 2021
a93df37
Adds tests when given bookmark instance.
Apr 7, 2021
dab9e40
Refactored to reduce params init and formatting expected data.
Apr 7, 2021
ae4c802
Speed up the test setup/teardown.
Apr 8, 2021
19a6c5e
Split out the data provider for the groups of tests.
Apr 8, 2021
58013e7
Improves the init_func_params for overriding the bookmark.
Apr 8, 2021
080cc85
Change param to arg to better match PHP docs.
Apr 8, 2021
bb83aee
Adds unhappy path to empty bookmark tests.
Apr 8, 2021
1d3f012
Adds unhappy path test cases to bookmark instance tests.
Apr 8, 2021
f97b83a
Adds @covers.
Apr 8, 2021
90b7062
Adds else path when global link is set and its link_id matches given …
Apr 8, 2021
3d2851d
Adds Path 4 - test pulling from cache when existing link ID given.
Apr 8, 2021
e365e5d
Adds Path 5 tests - pulls existing record from db.
Apr 8, 2021
fd71f83
Adds Path 6 - requested link ID does not exist in db.
Apr 8, 2021
0710645
Improves documentation and consistency.
Apr 8, 2021
9a50500
Rearranges the else branch tests to follow logic flow.
Apr 8, 2021
87caec6
Combines path 2 tests for consistency.
Apr 8, 2021
a4a6ded
Create bookmark in setUp to avoid downstream conflicts.
Apr 8, 2021
c50aeb9
Removes is numeric assertion.
Apr 8, 2021
3111683
Removes deleting bookmark from cache during tearDown.
Apr 23, 2021
6b340f0
Fixes multiline comments and removes empty line in DocBlock.
Apr 23, 2021
829df40
Create and delete bookmark using wp static methods.
Apr 23, 2021
263f7cc
Use custom WP assertSameSets.
Apr 23, 2021
9fcb19b
Removes changes to package-lock.json from PR.
Apr 25, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Change param to arg to better match PHP docs.
  • Loading branch information
hellofromtonya committed Apr 8, 2021
commit 080cc8560509b59820eedd85308f93901be53dfa
52 changes: 26 additions & 26 deletions tests/phpunit/tests/bookmark/getBookmark.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ public function tearDown() {
/**
* @dataProvider data_when_empty_bookmark
*/
public function test_should_return_null( $params ) {
$params = $this->init_func_params( $params, 0 );
$actual_bookmark = get_bookmark( ...$params );
public function test_should_return_null( $args ) {
$args = $this->init_func_args( $args, 0 );
$actual_bookmark = get_bookmark( ...$args );

$this->assertArrayNotHasKey( 'link', $GLOBALS );
$this->assertNull( $actual_bookmark );
Expand All @@ -51,12 +51,12 @@ public function test_should_return_null( $params ) {
/**
* @dataProvider data_when_empty_bookmark
*/
public function test_should_return_global_link_in_requested_output_format( $params ) {
public function test_should_return_global_link_in_requested_output_format( $args ) {
$GLOBALS['link'] = self::$bookmark;
$params = $this->init_func_params( $params, 0 );
$actual_bookmark = get_bookmark( ...$params );
$args = $this->init_func_args( $args, 0 );
$actual_bookmark = get_bookmark( ...$args );

$expected = $this->maybe_format_expected_data( $params, $GLOBALS['link'] );
$expected = $this->maybe_format_expected_data( $args, $GLOBALS['link'] );

$this->assertArrayHasKey( 'link', $GLOBALS );
$this->assertSame( $expected, $actual_bookmark );
Expand Down Expand Up @@ -101,13 +101,13 @@ public function data_when_empty_bookmark() {
/**
* @dataProvider data_when_instance_bookmark
*/
public function test_should_cache_bookmark_when_given_instance( $params ) {
$params = $this->init_func_params( $params );
public function test_should_cache_bookmark_when_given_instance( $args ) {
$args = $this->init_func_args( $args );

// Check the cache does not exist before the test.
$this->assertFalse( wp_cache_get( self::$bookmark->link_id, 'bookmark' ) );

get_bookmark( ...$params );
get_bookmark( ...$args );

// Check the bookmark was cached.
$actual_cache = wp_cache_get( self::$bookmark->link_id, 'bookmark' );
Expand All @@ -117,12 +117,12 @@ public function test_should_cache_bookmark_when_given_instance( $params ) {
/**
* @dataProvider data_when_instance_bookmark
*/
public function test_should_return_in_requested_output_format_when_given_instance( $params ) {
$params = $this->init_func_params( $params );
public function test_should_return_in_requested_output_format_when_given_instance( $args ) {
$args = $this->init_func_args( $args );

$expected = $this->maybe_format_expected_data( $params );
$expected = $this->maybe_format_expected_data( $args );

$actual_bookmark = get_bookmark( ...$params );
$actual_bookmark = get_bookmark( ...$args );

$this->assertSame( $expected, $actual_bookmark );
}
Expand Down Expand Up @@ -152,52 +152,52 @@ public function data_when_instance_bookmark() {
}

/**
* Initialize the get_bookmark's function parameters to match the order of the function's signature and
* Initialize the get_bookmark's function arguments to match the order of the function's signature and
* reduce code in the tests.
*
* @param array $params Array of given function parameters.
* @param array $args Function argument list.
* @param int|stdClass $bookmark Optional. Bookmark's cache key or instance.
*
* @return array An array of ordered parameters.
* @return array Ordered argument list.
*/
private function init_func_params( array $params, $bookmark = null ) {
// The defaults sets the order to match the function's parameters as well as setting the default values.
private function init_func_args( array $args, $bookmark = null ) {
// The defaults sets the order to match the function's arguments as well as setting the default values.
$defaults = array(
'bookmark' => self::$bookmark,
'output' => OBJECT,
'filter' => 'raw',
);
$params = array_merge( $defaults, $params );
$args = array_merge( $defaults, $args );

// When given a bookmark, use it.
if ( ! is_null( $bookmark ) ) {
$params['bookmark'] = $bookmark;
$args['bookmark'] = $bookmark;
}

// Strip out the keys. Why? The splat operator (...) does not work with associative arrays,
// except for in PHP 8 where the keys are named arguments.
return array_values( $params );
return array_values( $args );
}

/**
* Maybe format the bookmark's expected data.
*
* @param array $params Array of given function parameters.
* @param array $args Function argument list.
* @param int|stdClass|null $bookmark Optional. Bookmark's cache key or instance.
*
* @return array|stdClass bookmark's data.
*/
private function maybe_format_expected_data( array $params, $bookmark = null ) {
private function maybe_format_expected_data( array $args, $bookmark = null ) {
if ( is_null( $bookmark ) ) {
$bookmark = self::$bookmark;
}

switch ( $params[1] ) {
switch ( $args[1] ) {
case ARRAY_A:
case ARRAY_N:
$expected = get_object_vars( $bookmark );

if ( ARRAY_N === $params[1] ) {
if ( ARRAY_N === $args[1] ) {
$expected = array_values( $expected );
}

Expand Down