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
Create and delete bookmark using wp static methods.
Why? Performance => factory runs once instead for each test.
  • Loading branch information
hellofromtonya committed Apr 23, 2021
commit 829df40568b7ea437d04abdce489bebc370b575b
62 changes: 38 additions & 24 deletions tests/phpunit/tests/bookmark/getBookmark.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,29 @@ class Tests_Bookmark_GetBookmark extends WP_UnitTestCase {
*
* @var stdClass
*/
private $bookmark;
private static $bookmark;

public function setUp() {
parent::setUp();
/**
* Create and get a bookmark for the tests.
*
* @param WP_UnitTest_Factory $factory
*/
public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
self::$bookmark = $factory->bookmark->create_and_get();
// Delete the bookmark that was cached when the factory invoked get_bookmark().
wp_cache_delete( self::$bookmark->link_id, 'bookmark' );
}

$this->bookmark = self::factory()->bookmark->create_and_get();
wp_cache_delete( $this->bookmark->link_id, 'bookmark' );
/**
* Delete the bookmark before existing the test class.
*/
public static function wpTearDownAfterClass() {
wp_delete_link( self::$bookmark->link_id );
}

/**
* Reset globals after each test.
*/
public function tearDown() {
unset( $GLOBALS['link'] );
parent::tearDown();
Expand All @@ -30,7 +44,7 @@ public function tearDown() {
* @dataProvider data_when_empty_bookmark
*/
public function test_should_return_global_link_in_requested_output_format( $args ) {
$GLOBALS['link'] = $this->bookmark;
$GLOBALS['link'] = self::$bookmark;
$args = $this->init_func_args( $args, 0 );
$actual_bookmark = get_bookmark( ...$args );

Expand All @@ -39,7 +53,7 @@ public function test_should_return_global_link_in_requested_output_format( $args
$this->assertArrayHasKey( 'link', $GLOBALS );
$this->assertSame( $expected, $actual_bookmark );
// Should bypass the cache.
$this->assertFalse( wp_cache_get( $this->bookmark->link_id, 'bookmark' ) );
$this->assertFalse( wp_cache_get( self::$bookmark->link_id, 'bookmark' ) );
}

/**
Expand All @@ -55,7 +69,7 @@ public function test_should_return_null( $args ) {

$this->assertArrayNotHasKey( 'link', $GLOBALS );
$this->assertNull( $actual_bookmark );
$this->assertFalse( wp_cache_get( $this->bookmark->link_id, 'bookmark' ) );
$this->assertFalse( wp_cache_get( self::$bookmark->link_id, 'bookmark' ) );
}

/**
Expand Down Expand Up @@ -186,15 +200,15 @@ public function data_when_instance_bookmark() {
* @param array $args Function argument list.
*/
public function test_should_return_global_when_else( $args ) {
$args = $this->init_func_args( $args, $this->bookmark->link_id );
$GLOBALS['link'] = $this->bookmark;
$args = $this->init_func_args( $args, self::$bookmark->link_id );
$GLOBALS['link'] = self::$bookmark;
$expected = $this->maybe_format_expected_data( $args, $GLOBALS['link'] );

// Run the function and test results.
$actual_bookmark = get_bookmark( ...$args );

$this->assertSame( $expected, $actual_bookmark );
$this->assertFalse( wp_cache_get( $this->bookmark->link_id, 'bookmark' ) );
$this->assertFalse( wp_cache_get( self::$bookmark->link_id, 'bookmark' ) );
}

/**
Expand All @@ -206,9 +220,9 @@ public function test_should_return_global_when_else( $args ) {
*/
public function test_should_return_cached_bookmark_when_given_existing_link_id( $args ) {
// Cache the bookmark instance to setup the test.
wp_cache_add( $this->bookmark->link_id, $this->bookmark, 'bookmark' );
$args = $this->init_func_args( $args, $this->bookmark->link_id );
$expected = $this->maybe_format_expected_data( $args, $this->bookmark );
wp_cache_add( self::$bookmark->link_id, self::$bookmark, 'bookmark' );
$args = $this->init_func_args( $args, self::$bookmark->link_id );
$expected = $this->maybe_format_expected_data( $args, self::$bookmark );

// Run the function and test results.
$actual_bookmark = get_bookmark( ...$args );
Expand All @@ -224,8 +238,8 @@ public function test_should_return_cached_bookmark_when_given_existing_link_id(
}

// Check the bookmark was cached.
$actual_cache = wp_cache_get( $this->bookmark->link_id, 'bookmark' );
$this->assertEquals( $this->bookmark, $actual_cache );
$actual_cache = wp_cache_get( self::$bookmark->link_id, 'bookmark' );
$this->assertEquals( self::$bookmark, $actual_cache );
}

/**
Expand All @@ -236,7 +250,7 @@ public function test_should_return_cached_bookmark_when_given_existing_link_id(
* @param array $args Function argument list.
*/
public function test_should_return_null_when_bookmark_not_in_database( $args ) {
$bookmark_link_id = $this->bookmark->link_id * 100;
$bookmark_link_id = self::$bookmark->link_id * 100;
$args = $this->init_func_args( $args, $bookmark_link_id );

// Validate it will run path 6.
Expand All @@ -261,11 +275,11 @@ public function test_should_return_null_when_bookmark_not_in_database( $args ) {
* @param array $args Function argument list.
*/
public function test_should_return_existing_bookmark_from_database( $args ) {
$args = $this->init_func_args( $args, $this->bookmark->link_id );
$expected = $this->maybe_format_expected_data( $args, $this->bookmark );
$args = $this->init_func_args( $args, self::$bookmark->link_id );
$expected = $this->maybe_format_expected_data( $args, self::$bookmark );

// Validate it will run path 5.
$this->assertFalse( wp_cache_get( $this->bookmark->link_id, 'bookmark' ) );
$this->assertFalse( wp_cache_get( self::$bookmark->link_id, 'bookmark' ) );
$this->assertArrayNotHasKey( 'link', $GLOBALS );

// Run the function and test results.
Expand All @@ -282,8 +296,8 @@ public function test_should_return_existing_bookmark_from_database( $args ) {
}

// Check the bookmark was cached.
$actual_cache = wp_cache_get( $this->bookmark->link_id, 'bookmark' );
$this->assertEquals( $this->bookmark, $actual_cache );
$actual_cache = wp_cache_get( self::$bookmark->link_id, 'bookmark' );
$this->assertEquals( self::$bookmark, $actual_cache );
}

/**
Expand Down Expand Up @@ -337,7 +351,7 @@ public function data_when_else() {
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' => $this->bookmark,
'bookmark' => self::$bookmark,
'output' => OBJECT,
'filter' => 'raw',
);
Expand All @@ -364,7 +378,7 @@ private function init_func_args( array $args, $bookmark = null ) {
*/
private function maybe_format_expected_data( array $args, $bookmark = null ) {
if ( is_null( $bookmark ) ) {
$bookmark = $this->bookmark;
$bookmark = self::$bookmark;
}

switch ( $args[1] ) {
Expand Down