Completed
Push — add/blocks-package-registratio... ( 1f7e2a...98552c )
by Jeremy
08:34
created

Jetpack_IXR_ClientMulticall_Test   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 162
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 162
rs 10
c 0
b 0
f 0
wmc 1
lcom 0
cbo 1

1 Method

Rating   Name   Duplication   Size   Complexity  
B test_sort_calls_preserves_relative_order_on_equal_items() 0 157 1
1
<?php // phpcs:ignore WordPress.Files.FileName.NotHyphenatedLowercase
2
/**
3
 * Connection Manager functionality testing.
4
 *
5
 * @package automattic/jetpack-connection
6
 */
7
8
namespace Automattic\Jetpack\Connection;
9
10
use Jetpack_IXR_ClientMulticall;
11
use WorDBless\BaseTestCase;
12
13
require_once ABSPATH . WPINC . '/IXR/class-IXR-client.php';
14
require_once ABSPATH . WPINC . '/IXR/class-IXR-clientmulticall.php';
15
16
/**
17
 * Class Jetpack_IXR_ClientMulticall_Test.
18
 *
19
 * @package Automattic\Jetpack\Connection
20
 */
21
class Jetpack_IXR_ClientMulticall_Test extends BaseTestCase {
22
	/**
23
	 * Test ::sort_calls() preserves the relative order of equal items.
24
	 */
25
	public function test_sort_calls_preserves_relative_order_on_equal_items() {
26
		$original = array(
27
			array(
28
				'methodName' => 'foo',
29
				'params'     => array( 1 ),
30
			),
31
			array(
32
				'methodName' => 'foo',
33
				'params'     => array( 2 ),
34
			),
35
			array(
36
				'methodName' => 'foo',
37
				'params'     => array( 3 ),
38
			),
39
			array(
40
				'methodName' => 'foo',
41
				'params'     => array( 4 ),
42
			),
43
			array(
44
				'methodName' => 'foo',
45
				'params'     => array( 5 ),
46
			),
47
			array(
48
				'methodName' => 'foo',
49
				'params'     => array( 6 ),
50
			),
51
			array(
52
				'methodName' => 'foo',
53
				'params'     => array( 7 ),
54
			),
55
			array(
56
				'methodName' => 'jetpack.syncContent',
57
				'params'     => array( 8 ),
58
			),
59
			array(
60
				'methodName' => 'foo',
61
				'params'     => array( 9 ),
62
			),
63
			array(
64
				'methodName' => 'foo',
65
				'params'     => array( 10 ),
66
			),
67
			array(
68
				'methodName' => 'foo',
69
				'params'     => array( 11 ),
70
			),
71
			array(
72
				'methodName' => 'foo',
73
				'params'     => array( 12 ),
74
			),
75
			array(
76
				'methodName' => 'foo',
77
				'params'     => array( 13 ),
78
			),
79
			array(
80
				'methodName' => 'jetpack.syncContent',
81
				'params'     => array( 14 ),
82
			),
83
			array(
84
				'methodName' => 'foo',
85
				'params'     => array( 15 ),
86
			),
87
			array(
88
				'methodName' => 'foo',
89
				'params'     => array( 16 ),
90
			),
91
			// Intentional duplicate.
92
			array(
93
				'methodName' => 'foo',
94
				'params'     => array( 12 ),
95
			),
96
			array(
97
				'methodName' => 'foo',
98
				'params'     => array( 17 ),
99
			),
100
		);
101
102
		$expected = array(
103
			array(
104
				'methodName' => 'jetpack.syncContent',
105
				'params'     => array( 8 ),
106
			),
107
			array(
108
				'methodName' => 'jetpack.syncContent',
109
				'params'     => array( 14 ),
110
			),
111
			array(
112
				'methodName' => 'foo',
113
				'params'     => array( 1 ),
114
			),
115
			array(
116
				'methodName' => 'foo',
117
				'params'     => array( 2 ),
118
			),
119
			array(
120
				'methodName' => 'foo',
121
				'params'     => array( 3 ),
122
			),
123
			array(
124
				'methodName' => 'foo',
125
				'params'     => array( 4 ),
126
			),
127
			array(
128
				'methodName' => 'foo',
129
				'params'     => array( 5 ),
130
			),
131
			array(
132
				'methodName' => 'foo',
133
				'params'     => array( 6 ),
134
			),
135
			array(
136
				'methodName' => 'foo',
137
				'params'     => array( 7 ),
138
			),
139
			array(
140
				'methodName' => 'foo',
141
				'params'     => array( 9 ),
142
			),
143
			array(
144
				'methodName' => 'foo',
145
				'params'     => array( 10 ),
146
			),
147
			array(
148
				'methodName' => 'foo',
149
				'params'     => array( 11 ),
150
			),
151
			array(
152
				'methodName' => 'foo',
153
				'params'     => array( 12 ),
154
			),
155
			array(
156
				'methodName' => 'foo',
157
				'params'     => array( 13 ),
158
			),
159
			array(
160
				'methodName' => 'foo',
161
				'params'     => array( 15 ),
162
			),
163
			array(
164
				'methodName' => 'foo',
165
				'params'     => array( 16 ),
166
			),
167
			// Intentional duplicate remains in the same place.
168
			array(
169
				'methodName' => 'foo',
170
				'params'     => array( 12 ),
171
			),
172
			array(
173
				'methodName' => 'foo',
174
				'params'     => array( 17 ),
175
			),
176
		);
177
178
		$ixr = new Jetpack_IXR_ClientMulticall();
179
180
		$this->assertSame( $expected, $ixr->sort_calls( $original ) );
181
	}
182
}
183