PluginProbe ʕ •ᴥ•ʔ
Brevo – Email, SMS, Web Push, Chat, and more. / trunk
Brevo – Email, SMS, Web Push, Chat, and more. vtrunk
2.9.13 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8 2.9.9 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.9 3.1.0 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.2 3.1.20 3.1.21 3.1.22 3.1.23 3.1.24 3.1.25 3.1.26 3.1.27 3.1.28 3.1.29 3.1.3 3.1.30 3.1.31 3.1.32 3.1.33 3.1.34 3.1.35 3.1.36 3.1.37 3.1.38 3.1.39 3.1.4 3.1.40 3.1.41 3.1.42 3.1.43 3.1.44 3.1.45 3.1.46 3.1.47 3.1.48 3.1.49 3.1.5 3.1.50 3.1.51 3.1.52 3.1.53 3.1.54 3.1.55 3.1.56 3.1.57 3.1.58 3.1.59 3.1.6 3.1.60 3.1.61 3.1.62 3.1.63 3.1.64 3.1.65 3.1.66 3.1.67 3.1.68 3.1.69 3.1.7 3.1.70 3.1.71 3.1.72 3.1.73 3.1.74 3.1.75 3.1.76 3.1.77 3.1.78 3.1.79 3.1.8 3.1.80 3.1.81 3.1.82 3.1.83 3.1.84 3.1.85 3.1.86 3.1.87 3.1.88 3.1.89 3.1.9 3.1.90 3.1.91 3.1.92 3.1.93 3.1.94 3.1.95 3.1.96 3.1.97 3.1.98 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 trunk 1.0 1.5 2.0.8 2.9.10 2.9.11 2.9.12
mailin / wonderpush-php-lib / tests / Util / ArrayUtilTest.php
mailin / wonderpush-php-lib / tests / Util Last commit date
ArrayUtilTest.php 1 year ago StringUtilTest.php 1 year ago TimeUnitTest.php 1 year ago TimeUtilTest.php 1 year ago TimeValueTest.php 1 year ago UrlUtilTest.php 1 year ago
ArrayUtilTest.php
108 lines
1 <?php
2
3 namespace WonderPush\Util;
4
5 class ArrayUtilTest extends \WonderPush\TestCase {
6
7 public function testFlattenNonArrayValues() {
8 $nonArrayReturnValue = array();
9 $this->assertEquals($nonArrayReturnValue, ArrayUtil::flatten(null));
10 /** @noinspection PhpParamsInspection */
11 $this->assertEquals($nonArrayReturnValue, ArrayUtil::flatten(true));
12 /** @noinspection PhpParamsInspection */
13 $this->assertEquals($nonArrayReturnValue, ArrayUtil::flatten(false));
14 /** @noinspection PhpParamsInspection */
15 $this->assertEquals($nonArrayReturnValue, ArrayUtil::flatten(0));
16 /** @noinspection PhpParamsInspection */
17 $this->assertEquals($nonArrayReturnValue, ArrayUtil::flatten(3.14));
18 /** @noinspection PhpParamsInspection */
19 $this->assertEquals($nonArrayReturnValue, ArrayUtil::flatten(''));
20 /** @noinspection PhpParamsInspection */
21 $this->assertEquals($nonArrayReturnValue, ArrayUtil::flatten('foo'));
22 /** @noinspection PhpParamsInspection */
23 $this->assertEquals($nonArrayReturnValue, ArrayUtil::flatten(new \stdClass()));
24 }
25
26 public function testFlatten() {
27 $this->assertEquals(array( ), ArrayUtil::flatten(array( )));
28 $this->assertEquals(array(0 ), ArrayUtil::flatten(array(0 )));
29 $this->assertEquals(array(3, 2, 1), ArrayUtil::flatten(array(3, 2, 1)));
30
31 $this->assertEquals(array( ), ArrayUtil::flatten(array(array( ))));
32 $this->assertEquals(array(0 ), ArrayUtil::flatten(array(array(0 ))));
33 $this->assertEquals(array(3, 2, 1), ArrayUtil::flatten(array(array(3, 2, 1))));
34
35 $this->assertEquals(array( ), ArrayUtil::flatten(array(array(), array( ), array())));
36 $this->assertEquals(array(0 ), ArrayUtil::flatten(array(array(), array(0 ), array())));
37 $this->assertEquals(array(3, 2, 1), ArrayUtil::flatten(array(array(), array(3, 2, 1), array())));
38
39 // Test that flatten elements do not overwrite elements at occupied positions
40 $this->assertEquals(array('00', '01', '1'), ArrayUtil::flatten(array(array('00', '01'), '1')));
41 $this->assertEquals(array('0', '10', '11'), ArrayUtil::flatten(array('0', array('10', '11'))));
42 }
43
44 public function testFlattenAssoc() {
45 $this->assertEquals(array('FOO'), ArrayUtil::flatten(array('foo' => 'FOO')));
46 $this->assertEquals(array('FOO', 'BAR.FOO'), ArrayUtil::flatten(array('foo' => 'FOO', 'bar' => array('foo' => 'BAR.FOO'))));
47 }
48
49 public function testGetIfSetScalars() {
50 $def = new \stdClass();
51 foreach (array(null, 42, true) as $value) { // no string to avoid "String offset cast occurred"
52 foreach (array(null, 42, true, 'foo', array(1,2,3)) as $key) {
53 $this->assertNull(ArrayUtil::getIfSet($value, $key));
54 $this->assertSame($def, ArrayUtil::getIfSet($value, $key, $def));
55 }
56 }
57 }
58
59 public function testGetIfSetArrays() {
60 $def = new \stdClass();
61
62 // null is converted to ''
63 $this->assertSame($def, ArrayUtil::getIfSet(array(), null, $def));
64 $this->assertSame($def, ArrayUtil::getIfSet(array(0), null, $def));
65 $this->assertEquals('', ArrayUtil::getIfSet(array('' => ''), null, $def));
66 $this->assertEquals('', ArrayUtil::getIfSet(array('' => ''), '', $def));
67
68 $this->assertEquals('FOO', ArrayUtil::getIfSet(array('foo' => 'FOO'), 'foo', $def));
69 $this->assertSame($def, ArrayUtil::getIfSet(array('foo' => 'FOO'), 'bar', $def));
70
71 $this->assertSame($def, ArrayUtil::getIfSet(array('foo', 'bar'), -1, $def));
72 $this->assertEquals('foo', ArrayUtil::getIfSet(array('foo', 'bar'), 0, $def));
73 $this->assertEquals('bar', ArrayUtil::getIfSet(array('foo', 'bar'), 1, $def));
74 $this->assertSame($def, ArrayUtil::getIfSet(array('foo', 'bar'), 2, $def));
75 }
76
77 public function testGetIfSetWithNullValues() {
78 $def = new \stdClass();
79
80 $this->assertSame($def, ArrayUtil::getIfSet(array('foo', null, 'bar'), 1, $def));
81 $this->assertSame($def, ArrayUtil::getIfSet(array('foo' => 'FOO', 'null' => null, 'bar' => 'BAR'), 'null', $def));
82 }
83
84 public function testIsNotNull() {
85 $this->assertFalse(ArrayUtil::is_not_null(null));
86 $this->assertTrue(ArrayUtil::is_not_null('foo'));
87 $this->assertTrue(ArrayUtil::is_not_null(0));
88 $this->assertTrue(ArrayUtil::is_not_null(1));
89 $this->assertTrue(ArrayUtil::is_not_null(true));
90 $this->assertTrue(ArrayUtil::is_not_null(false));
91 $this->assertTrue(ArrayUtil::is_not_null(array()));
92 $this->assertTrue(ArrayUtil::is_not_null(new \stdClass()));
93 }
94
95 public function testFilterNulls() {
96 // It does not renumber non-associative arrays
97 $this->assertEquals(array(0 => false, 2 => 1), ArrayUtil::filterNulls(array(false, null, 1)));
98
99 $this->assertEquals(array('foo' => 'FOO', 0), ArrayUtil::filterNulls(array('foo' => 'FOO', 'bar' => null, 0, null)));
100
101 // It does not work recursively
102 $this->assertEquals(array('foo' => array(null)), ArrayUtil::filterNulls(array('foo' => array(null))));
103 $this->assertEquals(array('foo' => array(0, null, 2)), ArrayUtil::filterNulls(array('foo' => array(0, null, 2))));
104 $this->assertEquals(array('foo' => array('foo' => null)), ArrayUtil::filterNulls(array('foo' => array('foo' => null))));
105 }
106
107 }
108