Completed
Push — update/show-recurring-payments... ( 106a5e...b030b6 )
by
unknown
415:44 queued 407:29
created

Test_Version_Selector::set_up()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2
/**
3
 * The VersionSelectorTest class file.
4
 *
5
 * @package automattic/jetpack-autoloader
6
 */
7
8
use PHPUnit\Framework\TestCase;
9
10
/**
11
 * Provides unit tests for the methods in the Version_Selector class.
12
 */
13
class Test_Version_Selector extends TestCase {
14
15
	/**
16
	 * This is called before each test.
17
	 *
18
	 * @before
19
	 */
20
	public function set_up() {
21
		$this->version_selector = new Version_Selector();
22
	}
23
24
	/**
25
	 * Tests is_version_update_required().
26
	 *
27
	 * @param String $selected_version The currently selected package version.
28
	 * @param String $compare_version The package version that is being compared to the
29
	 *                                currently selected version to determine if the version
30
	 *                                needs to be updated.
31
	 * @param bool   $expected The expected Version_Selector::is_version_update_required() output.
32
	 *
33
	 * @covers Version_Selector::is_version_update_required
34
	 * @dataProvider is_version_update_required_provider
35
	 * @dataProvider is_version_update_required_without_dev_constant_provider
36
	 */
37
	public function test_is_version_update_required( $selected_version, $compare_version, $expected ) {
38
		$this->assertEquals( $expected, $this->version_selector->is_version_update_required( $selected_version, $compare_version ) );
39
	}
40
41
	/**
42
	 * Tests is_version_update_required() with the JETPACK_AUTOLOAD_DEV constant set to true.
43
	 *
44
	 * @param String $selected_version The currently selected package version.
45
	 * @param String $compare_version The package version that is being compared to the
46
	 *                                currently selected version to determine if the version
47
	 *                                needs to be updated.
48
	 * @param bool   $expected The expected Version_Selector::is_version_update_required() output.
49
	 *
50
	 * @covers Version_Selector::is_version_update_required
51
	 * @dataProvider Test_Version_Selector::is_version_update_required_provider
52
	 * @dataProvider is_version_update_required_with_dev_constant_provider
53
	 * @runInSeparateProcess
54
	 * @preserveGlobalState disabled
55
	 */
56
	public function test_is_version_update_required_with_dev_constant( $selected_version, $compare_version, $expected ) {
57
		define( 'JETPACK_AUTOLOAD_DEV', true );
58
		$this->assertEquals( $expected, $this->version_selector->is_version_update_required( $selected_version, $compare_version ) );
59
	}
60
61
	/**
62
	 * Data provider for the is_version_update_required() unit tests.
63
	 *
64
	 * This data provider covers inputs that are not affected by the JETPACK_AUTOLOAD_DEV
65
	 * constant.
66
	 *
67
	 * @return Array The test data.
68
	 */
69
	public static function is_version_update_required_provider() {
70
		return array(
71
			'selected greater than compare' => array( '2.0', '1.0', false ),
72
			'compare greater than selected' => array( '1.0', '2.0', true ),
73
			'selected null, compare stable' => array( null, '2.0', true ),
74
			'selected beta, compare stable' => array( '1.0-beta', '1.0', true ),
75
			'selected alpha, compare beta'  => array( '2.0-alpha', '2.0-beta', true ),
76
			'selected beta, compare less'   => array( '2.0-beta', '1.0', false ),
77
			'selected and compare dev'      => array( 'dev-test', 'dev-test2', false ),
78
			'selected null, compare dev'    => array( null, 'dev-test', true ),
79
		);
80
	}
81
82
	/**
83
	 * Data provider for the is_version_update_required() unit tests.
84
	 *
85
	 * This data provider covers inputs that are affected by the JETPACK_AUTOLOAD_DEV
86
	 * constant. The expected outputs in this provider are for environments where the
87
	 * JETPACK_AUTOLOAD_DEV constant is not set.
88
	 *
89
	 * @return Array The test data.
90
	 */
91
	public static function is_version_update_required_without_dev_constant_provider() {
92
		return array(
93
			'selected dev, compare stable' => array( 'dev-test', '1.0', true ),
94
			'selected stable, compare dev' => array( '1.0', 'dev-test', false ),
95
		);
96
	}
97
98
	/**
99
	 * Data provider for the is_version_update_required() unit tests.
100
	 *
101
	 * This data provider covers inputs that are affected by the JETPACK_AUTOLOAD_DEV
102
	 * constant. The expected outputs in this provider are for environments where the
103
	 * JETPACK_AUTOLOAD_DEV constant is set to 'true'.
104
	 *
105
	 * @return Array The test data.
106
	 */
107
	public function is_version_update_required_with_dev_constant_provider() {
108
		return array(
109
			'selected dev, compare stable' => array( 'dev-test', '1.0', false ),
110
			'selected stable, compare dev' => array( '1.0', 'dev-test', true ),
111
		);
112
	}
113
}
114