/* * Copyright 2005-2010 the original author or authors. * * Licensed under the Apache 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.apache.org/licenses/LICENSE-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.wamblee.ioc; import junit.framework.TestCase; /** * Tests the bean kernel. The lookup of the bean factory itself can be tested * only partially. Using a global property file for all test cases would tie all * test cases together therefore no global property file is used. * * @author Erik Brakkee */ public class BeanKernelTest extends TestCase { /** * Loads the bean factory based on a property file configuration. Verifies * the correct bean factory is loaded. * */ public void testLoadBeanFactoryFromProperties() { BeanFactory factory = BeanKernel .lookupBeanFactory("org/wamblee/general/beankernel.properties"); assertTrue(factory instanceof TestBeanFactory); } /** * Loads the bean factory based on a non-existing property file. Verifies * that BeanFactoryException is thrown. * */ public void testNonExistentPropertyFile() { try { BeanKernel .lookupBeanFactory("org/wamblee/general/beankernel-nonexistent.properties"); } catch (BeanFactoryException e) { return; // ok } fail(); } /** * Loads the bean factory based on a property file with a non-existing bean * factory defined in it. Verifies that BeanFactoryException is thrown. * */ public void testNonExistentBeanFactory() { try { BeanKernel .lookupBeanFactory("org/wamblee/general/beankernel-wrong.properties"); } catch (BeanFactoryException e) { return; // ok } fail(); } /** * Retrieves a bean factory throug the bean kernel. Verifies that beans can * be retrieved. * */ public void testRetrieveFactory() { BeanKernel.overrideBeanFactory(new TestBeanFactory()); // bypass // default // property // lookup BeanFactory factory = BeanKernel.getBeanFactory(); assertNotNull(factory); assertEquals("hello", factory.find(String.class)); } }