|  | @@ -0,0 +1,56 @@
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +package org.acegisecurity.config;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import java.lang.reflect.Field;
 | 
	
		
			
				|  |  | +import java.util.Map;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import junit.framework.TestCase;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import org.acegisecurity.AuthenticationManager;
 | 
	
		
			
				|  |  | +import org.acegisecurity.ui.rememberme.RememberMeProcessingFilter;
 | 
	
		
			
				|  |  | +import org.acegisecurity.ui.rememberme.RememberMeServices;
 | 
	
		
			
				|  |  | +import org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices;
 | 
	
		
			
				|  |  | +import org.acegisecurity.userdetails.UserDetailsService;
 | 
	
		
			
				|  |  | +import org.springframework.beans.PropertyValue;
 | 
	
		
			
				|  |  | +import org.springframework.beans.factory.config.BeanDefinition;
 | 
	
		
			
				|  |  | +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
 | 
	
		
			
				|  |  | +import org.springframework.beans.factory.support.RootBeanDefinition;
 | 
	
		
			
				|  |  | +import org.springframework.context.ApplicationContext;
 | 
	
		
			
				|  |  | +import org.springframework.context.support.ClassPathXmlApplicationContext;
 | 
	
		
			
				|  |  | +import org.springframework.util.ReflectionUtils;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * @author Vishal Puri
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +public class RememberMeServicesBeanDefinitionParserTests extends TestCase {
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	public void testFilterConfiguration() {
 | 
	
		
			
				|  |  | +		ApplicationContext context = new ClassPathXmlApplicationContext("org/acegisecurity/config/remember-me-defaults.xml");
 | 
	
		
			
				|  |  | +		ConfigurableListableBeanFactory bf = (ConfigurableListableBeanFactory)context.getAutowireCapableBeanFactory();
 | 
	
		
			
				|  |  | +		String[] names = bf.getBeanNamesForType(RememberMeProcessingFilter.class);
 | 
	
		
			
				|  |  | +		assertEquals(1, names.length);
 | 
	
		
			
				|  |  | +		RootBeanDefinition definition = (RootBeanDefinition)bf.getBeanDefinition(names[0]);
 | 
	
		
			
				|  |  | +		assertEquals(definition.getBeanClass(), RememberMeProcessingFilter.class);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	public void testRuntimeAutoDetectionOfDependencies() throws Exception {
 | 
	
		
			
				|  |  | +		ApplicationContext context = new ClassPathXmlApplicationContext("org/acegisecurity/config/remember-me-autodetect.xml");
 | 
	
		
			
				|  |  | +		ConfigurableListableBeanFactory factory = (ConfigurableListableBeanFactory) context.getAutowireCapableBeanFactory();
 | 
	
		
			
				|  |  | +		Map map = factory.getBeansOfType(RememberMeProcessingFilter.class);
 | 
	
		
			
				|  |  | +		RememberMeProcessingFilter filter = (RememberMeProcessingFilter)map.values().iterator().next();
 | 
	
		
			
				|  |  | +		RememberMeServices services = filter.getRememberMeServices();
 | 
	
		
			
				|  |  | +		assertNotNull(services);
 | 
	
		
			
				|  |  | +		TokenBasedRememberMeServices rememberMeServices = (TokenBasedRememberMeServices)services;
 | 
	
		
			
				|  |  | +		UserDetailsService ud = rememberMeServices.getUserDetailsService();
 | 
	
		
			
				|  |  | +		assertNotNull(ud);
 | 
	
		
			
				|  |  | +		Field field = filter.getClass().getDeclaredField("authenticationManager");
 | 
	
		
			
				|  |  | +		ReflectionUtils.makeAccessible(field);
 | 
	
		
			
				|  |  | +		Object obj = field.get(filter);
 | 
	
		
			
				|  |  | +		assertNotNull("authentication manager should not have been null", obj);
 | 
	
		
			
				|  |  | +		assertTrue(obj instanceof AuthenticationManager);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +}
 |