<?php namespace unit; use PHPUnit\Framework\TestCase; use WPDesk\ShowDecision\GetStrategy; class TestGetStrategy extends TestCase { const true_1 = [ 'a' => '1' ]; const true_2 = [ 'b' => '2' ]; const true_3 = [ 'c' => '3' ]; const false_1 = [ 'x' => '1' ]; const false_2 = [ 'y' => '2' ]; /** * Prepares $_GET with true clauses */ private function prepare_get() { $_GET = [ self::true_1, self::true_2, self::true_3 ]; } protected function setUp() { parent::setUp(); $this->prepare_get(); } public function testAndClausesFailure() { $strategy = new GetStrategy( [ [ self::true_1, self::false_1 ] ] ); $this->assertFalse( $strategy->shouldDisplay() ); } public function testAndClausesSuccess() { $strategy = new GetStrategy( [ [ self::true_1, self::true_2, self::true_3 ] ] ); $this->assertTrue( $strategy->shouldDisplay() ); } public function testOrClausesSuccess() { $strategy = new GetStrategy( [ [ self::true_1, self::false_1 ], [ self::true_1, self::true_2 ] ] ); $this->assertTrue( $strategy->shouldDisplay() ); } public function testOrClausesFailure() { $strategy = new GetStrategy( [ [ self::true_1, self::false_1 ], [ self::true_1, self::true_2, self::true_3, self::false_1 ] ] ); $this->assertFalse( $strategy->shouldDisplay() ); } }