/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.servicemanager;
import static org.junit.Assert.*;
import java.net.URL;
import java.net.URLClassLoader;
import org.dspace.kernel.DSpaceKernel;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* Test the kernel can fire up correctly
*
* @author Aaron Zeckoski (azeckoski @ gmail.com)
*/
public class DSpaceKernelImplTest {
DSpaceKernelImpl kernelImpl;
@Before
public void init() {
kernelImpl = DSpaceKernelInit.getKernel(null); // checks for the existing kernel but does not init
}
@After
public void destroy() {
if (kernelImpl != null) {
kernelImpl.destroy();
}
kernelImpl = null;
}
/**
* Test method for {@link org.dspace.servicemanager.DSpaceKernelImpl#start()}.
*/
@Test
public void testKernel() {
kernelImpl.start();
assertNotNull(kernelImpl);
DSpaceKernel kernel = kernelImpl.getManagedBean();
assertNotNull(kernel);
assertNotNull(kernelImpl.getConfigurationService());
assertNotNull(kernelImpl.getServiceManager());
assertNotNull(kernel.getConfigurationService());
assertNotNull(kernel.getServiceManager());
assertEquals(kernel.getConfigurationService(), kernelImpl.getConfigurationService());
assertEquals(kernel.getServiceManager(), kernelImpl.getServiceManager());
kernelImpl.stop();
kernel = null;
}
@Test
public void testMultipleKernels() {
assertNotNull(kernelImpl);
kernelImpl.start();
DSpaceKernel kernel = kernelImpl.getManagedBean();
assertNotNull(kernel);
assertNotNull(kernelImpl.getConfigurationService());
assertNotNull(kernelImpl.getServiceManager());
assertNotNull(kernel.getConfigurationService());
assertNotNull(kernel.getServiceManager());
assertEquals(kernel.getConfigurationService(), kernelImpl.getConfigurationService());
assertEquals(kernel.getServiceManager(), kernelImpl.getServiceManager());
DSpaceKernelImpl kernelImpl2 = DSpaceKernelInit.getKernel("AZ-kernel"); // checks for the existing kernel but does not init
kernelImpl2.start();
DSpaceKernel kernel2 = kernelImpl2.getManagedBean();
assertNotNull(kernel2);
assertNotNull(kernelImpl2.getConfigurationService());
assertNotNull(kernelImpl2.getServiceManager());
assertNotNull(kernel2.getConfigurationService());
assertNotNull(kernel2.getServiceManager());
assertEquals(kernel2.getConfigurationService(), kernelImpl2.getConfigurationService());
assertEquals(kernel2.getServiceManager(), kernelImpl2.getServiceManager());
assertNotSame(kernel, kernel2);
assertNotSame(kernel.getConfigurationService(), kernel2.getConfigurationService());
assertNotSame(kernel.getServiceManager(), kernel2.getServiceManager());
kernelImpl2.stop();
kernelImpl2.destroy();
kernelImpl2 = null;
kernel = kernel2 = null;
kernelImpl.stop();
}
@Test
public void testClassLoaders() {
ClassLoader current = Thread.currentThread().getContextClassLoader();
ClassLoader cl1 = new URLClassLoader(new URL[0], current);
cl1.getParent();
// TODO
cl1 = null;
current = null;
}
}