private RequestMatcher createSingleTextMatcher(String name, TextContainer container) {
    if (container.isRawText()) {
      return createSingleMatcher(name, container.getText());
    }

    if ("exist".equals(container.getOperation())) {
      return existMatcher(Extractors.extractor(name), container);
    }

    return createRequestMatcherWithResource(
        container.getOperation(), createResource(name, container.getText()));
  }
  private <T> RequestMatcher getRequestMatcher(
      RequestExtractor<T> extractor, TextContainer container) {
    if (container.isRawText()) {
      return eq(extractor, container.getText());
    }

    if ("exist".equals(container.getOperation())) {
      return existMatcher(extractor, container);
    }

    try {
      Method operationMethod =
          Moco.class.getMethod(container.getOperation(), RequestExtractor.class, String.class);
      Object result = operationMethod.invoke(null, extractor, container.getText());
      return RequestMatcher.class.cast(result);
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }
Esempio n. 3
0
  private Resource resourceFrom(String name, TextContainer container) {
    if (container.isRawText()) {
      return invokeTarget(name, container.getText(), Resource.class);
    }

    if (container.isForTemplate()) {
      if ("version".equalsIgnoreCase(name)) {
        return version(template(container.getText()));
      }

      if (container.hasProperties()) {
        return template(
            invokeTarget(name, container.getText(), ContentResource.class), container.getProps());
      }

      return template(invokeTarget(name, container.getText(), ContentResource.class));
    }

    throw new IllegalArgumentException(format("unknown operation [%s]", container.getOperation()));
  }