/**
* $Id: EntityRedirectsManagerTest.java 105077 2012-02-24 22:54:29Z ottenhoff@longsight.com $
* $URL: https://source.sakaiproject.org/svn/entitybroker/trunk/rest/src/test/org/sakaiproject/entitybroker/rest/EntityRedirectsManagerTest.java $
* EntityRedirectsManagerTest.java - entity-broker - Jul 31, 2008 1:36:47 PM - azeckoski
**************************************************************************
* Copyright (c) 2008, 2009 The Sakai Foundation
*
* Licensed under the Educational Community License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.opensource.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.sakaiproject.entitybroker.rest;
import junit.framework.TestCase;
import org.sakaiproject.entitybroker.mocks.data.TestData;
import org.sakaiproject.entitybroker.rest.EntityRedirectsManager;
import org.sakaiproject.entitybroker.util.TemplateParseUtil;
/**
* Testing the redirects manager
*
* @author Aaron Zeckoski (azeckoski @ gmail.com)
*/
public class EntityRedirectsManagerTest extends TestCase {
protected EntityRedirectsManager entityRedirectsManager;
private TestData td;
@Override
protected void setUp() throws Exception {
super.setUp();
// setup things
td = new TestData();
entityRedirectsManager = new ServiceTestManager(td).entityRedirectsManager;
}
/**
* Test method for {@link org.sakaiproject.entitybroker.rest.EntityRedirectsManager#checkForTemplateMatch(org.sakaiproject.entitybroker.entityprovider.EntityProvider, java.lang.String, String)}.
*/
public void testCheckForTemplateMatch() {
String targetURL = null;
// test Redirectable matching
targetURL = entityRedirectsManager.checkForTemplateMatch(td.entityProviderU1, TestData.SPACEU1 + "/123/AZ/go", null);
assertNotNull(targetURL);
assertEquals("http://caret.cam.ac.uk/?prefix=" + TestData.PREFIXU1 + "&thing=AZ", targetURL);
targetURL = entityRedirectsManager.checkForTemplateMatch(td.entityProviderU1, TestData.SPACEU1 + "/xml/123", null);
assertNotNull(targetURL);
assertEquals(TemplateParseUtil.DIRECT_PREFIX+TestData.SPACEU1+"/123.xml", targetURL);
targetURL = entityRedirectsManager.checkForTemplateMatch(td.entityProviderU1, TestData.SPACEU1 + "/going/nowhere", null);
assertNotNull(targetURL);
assertEquals("", targetURL);
targetURL = entityRedirectsManager.checkForTemplateMatch(td.entityProviderU1, TestData.SPACEU1 + "/keep/moving", null);
assertNull(targetURL);
// test RedirectDefinable matching
targetURL = entityRedirectsManager.checkForTemplateMatch(td.entityProviderU2, TestData.SPACEU2 + "/site/s1/user/aaronz/junk", null);
assertNotNull(targetURL);
assertEquals(TemplateParseUtil.DIRECT_PREFIX+TestData.SPACEU2 + "?siteId=s1&userId=aaronz", targetURL);
targetURL = entityRedirectsManager.checkForTemplateMatch(td.entityProviderU2, TestData.SPACEU2 + "/123/AZ/go/junk", null);
assertNotNull(targetURL);
assertEquals(TemplateParseUtil.DIRECT_PREFIX+"/other/stuff?prefix="+TestData.PREFIXU2+"&id=123", targetURL);
targetURL = entityRedirectsManager.checkForTemplateMatch(td.entityProviderU2, TestData.SPACEU2 + "/xml/123/junk", null);
assertNotNull(targetURL);
assertEquals(TemplateParseUtil.DIRECT_PREFIX+TestData.SPACEU2+"/123.xml", targetURL);
targetURL = entityRedirectsManager.checkForTemplateMatch(td.entityProviderU2, TestData.SPACEU2 + "/keep/moving", null);
assertNull(targetURL);
// test RedirectControllable matching
targetURL = entityRedirectsManager.checkForTemplateMatch(td.entityProviderU3, TestData.SPACEU3 + "/site/s1/user/aaronz/junk", null);
assertNotNull(targetURL);
assertEquals(TemplateParseUtil.DIRECT_PREFIX+TestData.SPACEU3 + "/siteuser?site=s1&user=aaronz", targetURL);
targetURL = entityRedirectsManager.checkForTemplateMatch(td.entityProviderU3, TestData.SPACEU3 + "/123/AZ/go/junk", null);
assertNotNull(targetURL);
assertEquals("http://caret.cam.ac.uk/?prefix="+TestData.PREFIXU3+"&thing=AZ", targetURL);
targetURL = entityRedirectsManager.checkForTemplateMatch(td.entityProviderU3, TestData.SPACEU3 + "/xml/123/junk", null);
assertNotNull(targetURL);
assertEquals(TemplateParseUtil.DIRECT_PREFIX+TestData.SPACEU3+"/123.xml", targetURL);
// test non-matching
targetURL = entityRedirectsManager.checkForTemplateMatch(td.entityProvider4, TestData.SPACE4 + "/123", null);
assertNull(targetURL);
}
}