public function testFormatTraversableShouldApplyFilters() { $items = ['foo', 'bar', 'baz']; $formatter = new MockFormatter(); $formatter->addFilter(function (array $data) { return $data['count'] !== 2; }); $result = $formatter->formatTraversable(new ArrayIterator($items)); assertThat('The formatter should correctly apply the filter.', iterator_to_array($result), is(arrayContaining(['count' => 1], ['count' => 3]))); }
public function testFormatManyShouldApplySortersInOrder() { $items = ['foo', 'bar', 'baz']; $formatter = new MockFormatter(); $formatter->addSorter(function (array $data) { // Reverse the order of the input. return -$data['count']; }); $formatter->addSorter(function (array $data) { // Then reverse it back to the default. return $data['count']; }); $result = $formatter->formatMany($items); assertThat('The sorter should apply sorters in the order they were added.', $result, is(arrayContaining(['count' => 1], ['count' => 2], ['count' => 3]))); }