/**
  * @param Slim $app
  * @param Resolver $resolver
  */
 public function register(Slim $app, Resolver $resolver)
 {
     $app->get('/', function () use($app) {
         $app->redirectTo('transfer_form');
     });
     $app->get('/transfer-form', $resolver->resolve($app, 'ewallet.transfer_form_controller:showForm', function () {
         return [Identifier::fromString('ABC')];
     }))->name('transfer_form');
     $app->post('/transfer-funds', $resolver->resolve($app, 'ewallet.transfer_funds_controller:transfer', function () use($app) {
         /** @var \EwalletModule\Bridges\Zf2\InputFilter\TransferFundsInputFilterRequest $request */
         $request = $app->container->get('ewallet.transfer_filter_request');
         $request->populate($app->request->post());
         return [$request];
     }))->name('transfer_funds');
 }
 /** @test */
 function it_should_call_a_controller_with_arguments_defined_by_a_converter()
 {
     $expectedArgument = 'leonard_nimoy';
     Environment::mock(['PATH_INFO' => "/test/{$expectedArgument}"]);
     $controller = $this->getMock(TestController::class);
     $controller->expects($this->once())->method('testWithArgument')->with($this->isInstanceOf(stdClass::class));
     $resolver = new Resolver();
     $app = new Slim();
     $app->container->singleton('controller', function () use($controller) {
         return $controller;
     });
     $app->get('/test/:name', $resolver->resolve($app, 'controller:testWithArgument', function (array $arguments) {
         return [new stdClass()];
         // It replaces default arguments
     }));
     $app->run();
 }