public function dataProviderForChildrenAndFilterAndProperty()
{
$person1 = new \stdClass();
$person1->name = 'Kasper Skaarhoj';
$address1_1 = new \stdClass();
$address1_1->street = 'SomeCopenhagenStreet';
$address1_1->city = 'Kopenhagen';
$address1_1->country = 'Denmark';
$person1->address = $address1_1;
$person2 = new \stdClass();
$person2->name = 'Robert Lemke';
$address2_1 = new \stdClass();
$address2_1->street = 'SomeLübeckStreet';
$address2_1->city = 'Lübeck';
$address2_1->country = 'Germany';
$person2->address = $address2_1;
$person3 = new \stdClass();
$person3->name = 'Sebastian Kurfuerst';
$address3_1 = new \stdClass();
$address3_1->street = 'SomeDresdenStreet';
$address3_1->city = 'Dresden';
$address3_1->country = 'Germany';
$person3->address = $address3_1;
$person4 = new \stdClass();
$person4->name = 'Somebody without address';
return ['children() on empty array always returns empty flowquery object' => ['sourceObjects' => [], 'expressions' => ['$query->children("foo[bar]")', '$query->children("foo")', '$query->children("[instanceof Something]")', '$query->children()'], 'expectedResult' => []], 'children() with property name filter returns all corresponding child objects' => ['sourceObjects' => [$person1, $person2, $person3, $person4], 'expressions' => ['$query->children("address")', '$query->children()->filter("address")'], 'expectedResult' => [$address1_1, $address2_1, $address3_1]], 'children() with property name and attribute filter returns all corresponding child objects' => ['sourceObjects' => [$person1, $person2, $person3, $person4], 'expressions' => ['$query->children("address[country=Germany]")', '$query->children("address")->filter("[country=Germany]")', '$query->children()->filter("address[country=Germany]")'], 'expectedResult' => [$address2_1, $address3_1]], 'property() with property name returns object accessor on first object' => ['sourceObjects' => [$person1, $person2, $person3, $person4], 'expressions' => ['$query->property("address")'], 'expectedResult' => $address1_1, 'isFinal' => true], 'property() with property name works with property paths' => ['sourceObjects' => [$person1, $person2, $person3, $person4], 'expressions' => ['$query->property("address.street")'], 'expectedResult' => 'SomeCopenhagenStreet', 'isFinal' => true]];
}