Package com.github.dynamicextensionsalfresco.webscripts

Source Code of com.github.dynamicextensionsalfresco.webscripts.AbstractWebScriptAnnotationsTest

package com.github.dynamicextensionsalfresco.webscripts;

import static org.junit.Assert.*;

import java.io.IOException;

import com.github.dynamicextensionsalfresco.webscripts.annotations.HttpMethod;

import org.junit.Before;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.extensions.webscripts.Match;
import org.springframework.extensions.webscripts.UriIndex;
import org.springframework.extensions.webscripts.WebScript;
import org.springframework.extensions.webscripts.WebScriptResponse;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.util.ClassUtils;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "webscript-integration-test-context.xml")
public abstract class AbstractWebScriptAnnotationsTest {

  static String webScriptIdFor(final HttpMethod httpMethod, final Class<?> clazz, final String method) {
    return String.format("%s.%s.%s", ClassUtils.getQualifiedName(clazz), method, httpMethod.toString()
        .toLowerCase());
  }

  /* Dependencies */

  @Autowired
  private UriIndex uriIndex;

  @Before
  public void setup() {
    uriIndex.clear();
  }

  /* Utility operations */

  protected void handleRequest(final HttpMethod httpMethod, final String uri, final MockWebScriptRequest request,
      final WebScriptResponse response) {
    try {
      final Match match = uriIndex.findWebScript(httpMethod.name(), uri);
      assertNotNull(String.format("Could not find annotation-based WebScript for method '%s' and URI '%s'.",
          httpMethod, uri), match);
      final WebScript webScript = match.getWebScript();
      webScript.execute(request.setServiceMatch(match), response);
    } catch (final IOException e) {
      throw new RuntimeException(e);
    }
  }

  protected void handleGet(final String uri, final MockWebScriptRequest request, final WebScriptResponse response) {
    handleRequest(HttpMethod.GET, uri, request, response);
  }

  protected void handleGet(final String uri, final MockWebScriptRequest request) {
    handleRequest(HttpMethod.GET, uri, request, Mockito.mock(WebScriptResponse.class));
  }

  protected void handleGet(final String uri) {
    handleGet(uri, new MockWebScriptRequest());
  }

}
TOP

Related Classes of com.github.dynamicextensionsalfresco.webscripts.AbstractWebScriptAnnotationsTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.