258 | | $this->object_list['foo'] = (object) array( 'name' => 'foo', 'field1' => true, 'field2' => true, 'field3' => true ); |
259 | | $this->object_list['bar'] = (object) array( 'name' => 'bar', 'field1' => true, 'field2' => true, 'field3' => false ); |
260 | | $this->object_list['baz'] = (object) array( 'name' => 'baz', 'field1' => true, 'field2' => false, 'field3' => false ); |
| 258 | $this->object_list['foo'] = (object) array( 'name' => 'foo', 'field1' => true, 'field2' => true, 'field3' => true, 'field4' => array( 'red' ) ); |
| 259 | $this->object_list['bar'] = (object) array( 'name' => 'bar', 'field1' => true, 'field2' => true, 'field3' => false, 'field4' => array( 'green' ) ); |
| 260 | $this->object_list['baz'] = (object) array( 'name' => 'baz', 'field1' => true, 'field2' => false, 'field3' => false, 'field4' => array( 'blue' ) ); |
| 301 | |
| 302 | function test_filter_object_list_nested_array_and() { |
| 303 | $list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'blue' ) ), 'AND' ); |
| 304 | $this->assertEquals( 1, count( $list ) ); |
| 305 | $this->assertArrayHasKey( 'baz', $list ); |
| 306 | } |
| 307 | |
| 308 | function test_filter_object_list_nested_array_not() { |
| 309 | $list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'red' ) ), 'NOT' ); |
| 310 | $this->assertEquals( 2, count( $list ) ); |
| 311 | $this->assertArrayHasKey( 'bar', $list ); |
| 312 | $this->assertArrayHasKey( 'baz', $list ); |
| 313 | } |
| 314 | |
| 315 | function test_filter_object_list_nested_array_or() { |
| 316 | $list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'blue' ) ), 'OR' ); |
| 317 | $this->assertEquals( 3, count( $list ) ); |
| 318 | $this->assertArrayHasKey( 'foo', $list ); |
| 319 | $this->assertArrayHasKey( 'bar', $list ); |
| 320 | $this->assertArrayHasKey( 'baz', $list ); |
| 321 | } |
| 322 | |
| 323 | function test_filter_object_list_nested_array_and_field() { |
| 324 | $list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'blue' ) ), 'AND', 'name' ); |
| 325 | $this->assertEquals( 1, count( $list ) ); |
| 326 | $this->assertEquals( array( 'baz' => 'baz' ) , $list ); |
| 327 | } |
| 328 | |
| 329 | function test_filter_object_list_nested_array_not_field() { |
| 330 | $list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'green' ) ), 'NOT', 'name' ); |
| 331 | $this->assertEquals( 2, count( $list ) ); |
| 332 | $this->assertEquals( array( 'foo' => 'foo', 'baz' => 'baz' ), $list ); |
| 333 | } |
| 334 | |
| 335 | function test_filter_object_list_nested_array_or_field() { |
| 336 | $list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'blue' ) ), 'OR', 'name' ); |
| 337 | $this->assertEquals( 3, count( $list ) ); |
| 338 | $this->assertEquals( array( 'foo' => 'foo', 'bar' => 'bar', 'baz' => 'baz' ), $list ); |
| 339 | } |