### Question:
Call implements ServiceCall, Step, Trackable, Retryable { @Override public void run() { logger.debug("Entering service Call.run()"); status = Status.IN_PROGRESS; client.build(request); while(status != Status.COMPLETE && retries < maxRetries+1){ try{ logger.debug("Initiating call()"); response = client.call(); validate(); status = Status.COMPLETE; result = Result.PASS; }catch(Exception e){ logger.error("Exception: [{}]", e.getMessage()); retries = retries + 1; if(retries >= maxRetries){ status = Status.COMPLETE; result = Result.FAIL; errorMessage = e.getMessage(); fail(e); } }finally{ markComplete(); } } } Call(HttpClient client, HttpRequest request, Integer maxRetries); @Override void run(); String getEndPoint(); void setEndPoint(String endPoint); @Override void validate(); @Override Result getResult(); @Override Status getStatus(); @Override void setResult(Result result); @Override void setStatus(Status status); @Override void setMaxRetries(Integer retries); @Override Integer getMaxRetries(); @Override Integer getRetries(); @Override HttpRequest getHttpRequest(); @Override void setHttpRequest(HttpRequest request); @Override HttpClient getHttpClient(); @Override void setHttpClient(HttpClient client); @Override Operation getOperation(); @Override void setOperation(Operation operation); @Override String getName(); @Override void setName(String name); @Override void fail(Throwable e); @Override Throwable getFailureCause(); @Override List<Assertion> getAssertions(); @Override void setAssertions(List<Assertion> assertions); @Override HttpResponse getHttpResponse(); @Override void setHttpResponse(HttpResponse response); @Override Test getTest(); @Override void setTest(Test test); @Override Future<Boolean> isComplete(); @Override void markComplete(); @Override Component getComponent(); @Override void setComponent(Component component); @Override String getDescription(); @Override void setDescription(String description); @Override Integer getOrder(); @Override void setOrder(Integer order); @Override Date getStartTime(); @Override void setStartTime(Date startTime); @Override Date getEndTime(); @Override void setEndTime(Date endTime); @Override String getErrorMessage(); @Override void setErrorMessage(String errorMessage); static final Logger logger; }### Answer:
@Test public void itShouldCall() { HttpRequest req = buildDefaultRequest(); req.setHttpMethod(HttpMethod.GET); Call call = new Call(new RestAssuredHttpClient(), req, 0); call.run(); }