All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.skjolber.mockito.rest.spring.MockitoSpringConfiguration Maven / Gradle / Ivy

There is a newer version: 1.0.1
Show newest version
package com.github.skjolber.mockito.rest.spring;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.eclipse.jetty.webapp.AbstractConfiguration;
import org.eclipse.jetty.webapp.WebAppContext;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ApplicationContextEvent;
import org.springframework.context.event.ContextRefreshedEvent;

public class MockitoSpringConfiguration extends AbstractConfiguration implements ApplicationListener {

	private List> contextBeans;
	private List> mockTargetBeans;
	private Map, Object> map = new HashMap, Object>();

	public MockitoSpringConfiguration(List> mockTargetBeans, List> contextBeans) {
		this.mockTargetBeans = mockTargetBeans;
		this.contextBeans = contextBeans;
	}

	@Override
	public void configure(WebAppContext context) throws Exception {
		//add a bean to the context which will call the servletcontainerinitializers when appropriate
		MockitoSpringContainerStarter starter = new MockitoSpringContainerStarter(context, mockTargetBeans, contextBeans, this);
        context.addBean(starter, true);
	}
	
	public void onApplicationEvent(ApplicationContextEvent event) {
		if(event instanceof ContextRefreshedEvent) {
			// spring context has been started
			ApplicationContext applicationContext = event.getApplicationContext();
			for(Class bean : mockTargetBeans) {
				Object value = applicationContext.getBean(bean);
				
				map.put(bean, value);
			}
		}
	}

	public Object get(Class cls) {
		return map.get(cls);
	}

	public Map, Object> getAll() {
		return map;
	}
	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy