001package org.hl7.fhir.utilities.tests;
002
003import lombok.Getter;
004import org.hl7.fhir.utilities.ToolingClientLogger;
005
006import java.nio.charset.StandardCharsets;
007import java.util.List;
008
009public class CacheVerificationLogger implements ToolingClientLogger {
010
011  @Getter
012  int requests = 0;
013
014  @Override
015  public void logRequest(String method, String url, List<String> headers, byte[] body) {
016    if (!TestConfig.getInstance().isRebuildCache()) {
017      System.err.println("Unexpected request to server");
018      System.err.println(method);
019      System.err.println(url);
020      if (headers != null) {
021        for (String header : headers) {
022          System.err.println("Header: " + header);
023        }
024      }
025      System.err.println("Body");
026      System.err.println("----");
027      System.err.println(new String(body, StandardCharsets.UTF_8));
028    }
029    requests++;
030  }
031
032  @Override
033  public void logResponse(String outcome, List<String> headers, byte[] body) {
034
035  }
036
037  @Override
038  public String getLastId() {
039    return null;
040  }
041
042  @Override
043  public void clearLastId() {
044
045  }
046
047
048
049  public boolean verifyHasNoRequests() {
050    if (TestConfig.getInstance().isRebuildCache()) {
051      return true;
052    } else {
053      if (requests != 0) {
054        System.err.println(requests + " unexpected TX server requests logged. If a new test has been added, you may need to " +
055          "rebuild the TX Cache for the test using the 'mvn test -D" + TestConfig.FHIR_TXCACHE_REBUILD + "=true' option");
056        return false;
057      } else {
058        return true;
059      }
060    }
061  }
062}