Pinq\Tests\Integration\Collection\MutableCollectionSemanticsTest::testThatApplyUpdatesScopedValuesWithScopeRefreshing PHP Method

testThatApplyUpdatesScopedValuesWithScopeRefreshing() public method

public testThatApplyUpdatesScopedValuesWithScopeRefreshing ( Pinq\ICollection $collection, array $data )
$collection Pinq\ICollection
$data array
    public function testThatApplyUpdatesScopedValuesWithScopeRefreshing(\Pinq\ICollection $collection, array $data)
    {
        $filteredScopeCollection = $collection->whereIn([1, 4, 7, 9, 10]);
        //1, 4, 7, 9, 10
        $moreFilteredScopeCollection = $filteredScopeCollection->difference([4, 9]);
        //1, 7, 10
        //After apply: 1 -> 10, 7 -> 70, 10 -> 100, only 10 is still in the current scope.
        $moreFilteredScopeCollection->apply(function (&$i) {
            $i *= 10;
        });
        $this->assertMatchesValues($moreFilteredScopeCollection, [10]);
        $this->assertMatchesValues($filteredScopeCollection, [10, 4, 9]);
        $this->assertMatchesValues($collection, [10, 2, 3, 4, 5, 6, 70, 8, 9, 100]);
    }