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
?