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])));
 }