package com.github.dynamicextensionsalfresco.webscripts; import static org.junit.Assert.*; import javax.servlet.http.HttpServletResponse; import org.junit.Before; import org.junit.Test; import org.springframework.extensions.webscripts.JaxRSUriIndex; import org.springframework.extensions.webscripts.Match; import org.springframework.extensions.webscripts.WebScript; public class WebScriptUriRegistryTest { private WebScriptUriRegistry webScriptUriRegistry; private WebScript webScript; @Before public void setup() { webScriptUriRegistry = new WebScriptUriRegistry(); webScriptUriRegistry.setUriIndex(new JaxRSUriIndex()); webScript = new ExampleWebScript(HttpServletResponse.SC_OK, "/test"); webScriptUriRegistry.registerWebScript(webScript); } @Test public void testWebScriptRegistration() { final Match match = webScriptUriRegistry.findWebScript("GET", "/test"); assertNotNull(match); assertNotSame(webScript, match.getWebScript()); assertSame(webScript.getDescription(), match.getWebScript().getDescription()); assertSame(webScript, ((WebScriptProxy) match.getWebScript()).getWrappedWebScript()); } @Test public void testWebScriptRegistrationIsPersistentWhenCleared() { webScriptUriRegistry.clear(); final Match match = webScriptUriRegistry.findWebScript("GET", "/test"); assertNotNull(match); } @Test public void testWebScriptUnregistration() { webScriptUriRegistry.unregisterWebScript(webScript); final Match match = webScriptUriRegistry.findWebScript("GET", "/test"); assertNotNull(match); final WebScriptProxy webScriptProxy = (WebScriptProxy) match.getWebScript(); assertNotNull(webScriptProxy.getWrappedWebScript()); assertNotSame(webScript, webScriptProxy.getWrappedWebScript()); assertSame(webScript.getDescription(), webScriptProxy.getDescription()); } @Test public void testWebScriptReregistration() { webScriptUriRegistry.unregisterWebScript(webScript); webScriptUriRegistry.registerWebScript(webScript); testWebScriptRegistration(); } @Test public void testWebScriptUnregistrationIsPermanentWhenCleared() { webScriptUriRegistry.unregisterWebScript(webScript); webScriptUriRegistry.clear(); final Match match = webScriptUriRegistry.findWebScript("GET", "/test"); assertNull(match); } }