Select Git revision
input-hidden.php
-
Marcin Kolanko authoredMarcin Kolanko authored
TestPostTypeStrategy.php 1.35 KiB
<?php
namespace unit;
use PHPUnit\Framework\TestCase;
use WPDesk\ShowDecision\PostTypeStrategy;
class TestPostTypeStrategy extends TestCase {
const valid_post_type = 'test_post_type';
const invalid_post_type = 'invalid';
protected function setUp(): void {
require_once __DIR__ . DIRECTORY_SEPARATOR . 'Stub' . DIRECTORY_SEPARATOR . 'WP_Post.php';
parent::setUp();
\WP_Mock::setUp();
}
protected function tearDown(): void {
parent::tearDown();
\WP_Mock::tearDown();
}
public function testFailureWhenTriesUseInvalidPostType() {
$strategy = new PostTypeStrategy( self::invalid_post_type );
$this->assertFalse( $strategy->shouldDisplay() );
}
public function testValidPostTypeUsingGetSuccess() {
$_GET = [ 'post_type' => self::valid_post_type ];
$strategy = new PostTypeStrategy( self::valid_post_type );
$this->assertTrue( $strategy->shouldDisplay() );
}
public function testValidPostTypeUsingPostIdSuccess() {
$post_id = 123;
$_GET = [
'post' => $post_id
];
\WP_Mock::userFunction( 'get_post', [
'times' => 1,
'return' => function () use ( $post_id ) {
$post = new \WP_Post();
$post->ID = $post_id;
$post->post_type = self::valid_post_type;
return $post;
}
] );
$strategy = new PostTypeStrategy( self::valid_post_type );
$this->assertTrue( $strategy->shouldDisplay() );
}
}