I am trying to use a Micronaut controller with pagination. Micronaut-Data has [this Spring inspired way](https://micronaut-projects.github.io/micronaut-data/latest/guide/index.html#pagination) to access the repositories using the [Pageable](https://micronaut-projects.github.io/micronaut-data/latest/api/io/micronaut/data/model/Pageable.html) class and returning a [Page](https://micronaut-projects.github.io/micronaut-data/latest/api/io/micronaut/data/model/Page.html)

The problem comes when you want to show this paginated data. I have not been able create a call the controller with pagination. Here I have a simple controller: 

```java
    @Controller
    public class PageableController {

        private static final Logger LOGGER = LoggerFactory.getLogger(PageableController.class);

        @Get(produces = APPLICATION_JSON, value = "/test{?pageable}")
        public Page<String> getNames(@Nullable Pageable pageable) {

            LOGGER.info("pageable {}", pageable);
            if( pageable == null){
                return Page.of(Arrays.asList("foo", "bar"), Pageable.UNPAGED, 2);
            }else{
                return Page.of(Arrays.asList("foo", "bar"), pageable, 2);
            }
        }
    }

```

I would expect to be able to call it with something like this. But currently the logger shows that pageable is always null: 

```java
    @MicronautTest
    class PageableControllerTest {

        @Inject
        @Client("/")
        private RxHttpClient client;

        @Test
        void callsWithPageable() {
            String uri = "/test?size=20&number=2";
            String orders = client.toBlocking().retrieve(HttpRequest.GET(uri));

            //TODO, assert orders and pagination
        }

```

It would be even better if we could test it with something like:

```java
    @Test
    void callsWithPageableParsingJson() {
        String uri = "/test?size=20&number=2";

        //This fails to parse as it can't build pages.
        Page<String> pages = client.toBlocking().retrieve(HttpRequest.GET(uri), pageOf(String.class));

        assertThat(pages.getSize(),   is(2));
        assertThat(pages.getContent(), contains("foo", "bar"));
    }

    // Inspired by Argument.listOf
    private static <T> Argument<Page<T>> pageOf(Class<T> type) {
        return Argument.of((Class<Page<T>>) ((Class) Page.class), type);
    }

```

And this [Micronaut bug](https://github.com/micronaut-projects/micronaut-core/issues/981) shows that the right way to paginate is with Micronaut Data