title: Reactive Spring does not support ServerHttpRequest as parameter in REST endpoint tests?
body: <p>The question is very similar to <a href="https://stackoverflow.com/questions/40361298/reactive-spring-does-not-support-httpservletrequest-as-parameter-in-rest-endpoin">this one</a>. Except the fact that I use:</p>
  
  <ol>
  <li><code>org.springframework.http.server.ServerHttpRequest</code> <strong>not</strong> HttpServletRequest.</li>
  <li>The exception is got in test code. Real calls works.</li>
  </ol>
  
  <p>Code:</p>
  
  <pre><code>@RunWith(SpringRunner.class)
  @SpringBootTest(classes = SecurityTests.SecurityTestsApplication.class)
  @TestPropertySource(properties = {""})
  @AutoConfigureWebTestClient
  public class SecurityTests {
          @Test 
          public void myTest() { 
              //send request to myUrl and got 500 
          }
  }
  
  @RestController
  @RequestMapping("/myPath")
  public class MyController {
      @PostMapping
      public Mono&lt;Void&gt; myMethod(ServerHttpRequest request) {
          return Mono.empty()
      }
  
  }
  </code></pre>
  
  <p>Exception is:</p>
  
  <pre><code>java.lang.IllegalStateException: Failed to resolve argument 1 of type 'org.springframework.http.server.ServerHttpRequest' on public reactor.core.publisher.Mono&lt;java.lang.Void&gt; MyController$MockitoMock$606550817.myMethod(org.springframework.http.server.ServerHttpRequest)
          at org.springframework.web.reactive.result.method.InvocableHandlerMethod.getArgumentError(InvocableHandlerMethod.java:228) ~[spring-webflux-5.0.7.RELEASE.jar:5.0.7.RELEASE]
          at org.springframework.web.reactive.result.method.InvocableHandlerMethod.resolveArg(InvocableHandlerMethod.java:223) ~[spring-webflux-5.0.7.RELEASE.jar:5.0.7.RELEASE]
          at org.springframework.web.reactive.result.method.InvocableHandlerMethod.lambda$null$1(InvocableHandlerMethod.java:179) ~[spring-webflux-5.0.7.RELEASE.jar:5.0.7.RELEASE]
          at java.util.Optional.orElseGet(Optional.java:267) ~[na:1.8.0_131]
          at org.springframework.web.reactive.result.method.InvocableHandlerMethod.lambda$resolveArguments$2(InvocableHandlerMethod.java:177) ~[spring-webflux-5.0.7.RELEASE.jar:5.0.7.RELEASE]
          at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[na:1.8.0_131]
          at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) ~[na:1.8.0_131]
          at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[na:1.8.0_131]
          at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_131]
          at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[na:1.8.0_131]
          at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_131]
          at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[na:1.8.0_131]
          at org.springframework.web.reactive.result.method.InvocableHandlerMethod.resolveArguments(InvocableHandlerMethod.java:183) ~[spring-webflux-5.0.7.RELEASE.jar:5.0.7.RELEASE]
          ...
  Caused by: java.lang.IllegalStateException: No primary or default constructor found for interface org.springframework.http.server.ServerHttpRequest
      at org.springframework.web.reactive.result.method.annotation.ModelAttributeMethodArgumentResolver.createAttribute(ModelAttributeMethodArgumentResolver.java:213) ~[spring-webflux-5.0.7.RELEASE.jar:5.0.7.RELEASE]
      at org.springframework.web.reactive.result.method.annotation.ModelAttributeMethodArgumentResolver.prepareAttributeMono(ModelAttributeMethodArgumentResolver.java:163) ~[spring-webflux-5.0.7.RELEASE.jar:5.0.7.RELEASE]
      at org.springframework.web.reactive.result.method.annotation.ModelAttributeMethodArgumentResolver.resolveArgument(ModelAttributeMethodArgumentResolver.java:117) ~[spring-webflux-5.0.7.RELEASE.jar:5.0.7.RELEASE]
      at org.springframework.web.reactive.result.method.InvocableHandlerMethod.resolveArg(InvocableHandlerMethod.java:214) ~[spring-webflux-5.0.7.RELEASE.jar:5.0.7.RELEASE]
      ... 227 common frames omitted
  Caused by: java.lang.NoSuchMethodException: org.springframework.http.server.ServerHttpRequest.&lt;init&gt;()
      at java.lang.Class.getConstructor0(Class.java:3082) ~[na:1.8.0_131]
      at java.lang.Class.getDeclaredConstructor(Class.java:2178) ~[na:1.8.0_131]
      at org.springframework.web.reactive.result.method.annotation.ModelAttributeMethodArgumentResolver.createAttribute(ModelAttributeMethodArgumentResolver.java:210) ~[spring-webflux-5.0.7.RELEASE.jar:5.0.7.RELEASE]
      ... 230 common frames omitted
  </code></pre>