0

I have this class that extends from RestTemplate

import org.springframework.http.client.ClientHttpRequestInterceptor;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.http.client.InterceptingClientHttpRequestFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

import java.util.Collections;
import java.util.List;
@Component
public class MyOwnRestTemplate extends RestTemplate {

    public MyOwnRestTemplate(String referenceService, int readTimeoutRestTemplate, int connectionTimeoutRestTemplate) {
        super();
        setErrorHandler(new SomeErrorHandler());
        HttpComponentsClientHttpRequestFactory httpComponentsClientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory();
        httpComponentsClientHttpRequestFactory.setReadTimeout(readTimeoutRestTemplate);
        httpComponentsClientHttpRequestFactory.setConnectTimeout(connectionTimeoutRestTemplate);
        List<SomeClassInterceptor> interceptors = Collections.singletonList(new SomeClassHttpRequestInterceptor(referenceService));

        setRequestFactory(new InterceptingClientHttpRequestFactory(httpComponentsClientHttpRequestFactory, interceptors));

    }
}

Now, I need to Mock with Spock based on this answer https://stackoverflow.com/a/47309415 something like this code:

RestTemplate restTemplate = Mock {
    postForEntity(_, _, SomeResponse.class) >> new ResponseEntity(new SomeResponse(), HttpStatus.OK)
}

Now my code:

private MyOwnRestTemplate myOwnRestTemplate

void setup() {
    myOwnRestTemplate = Mock {
        //Here I don't know using parent's methods!!
    }

How to get access to methods of parent as getForEntity, getForObject, postForLocation?

joseluisbz
  • 1,491
  • 1
  • 36
  • 58

0 Answers0