/*
* Copyright 2004-2015 the Seasar Foundation and the Others.
*
* 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.seasar.framework.container.impl;
import junit.framework.TestCase;
import org.seasar.framework.beans.PropertyNotFoundRuntimeException;
import org.seasar.framework.container.MetaDef;
import org.seasar.framework.container.assembler.AutoBindingDefFactory;
import org.seasar.framework.container.deployer.InstanceDefFactory;
import org.seasar.framework.container.ognl.OgnlExpression;
/**
* @author koichik
*/
public class SimpleComponentDefTest extends TestCase {
/**
*
*/
public void testBasics() {
SimpleComponentDef cd = new SimpleComponentDef("Hoge", "hoge");
assertEquals("Hoge", cd.getComponent());
assertEquals("hoge", cd.getComponentName());
assertEquals(String.class, cd.getComponentClass());
assertEquals(String.class, cd.getConcreteClass());
assertEquals(InstanceDefFactory.SINGLETON, cd.getInstanceDef());
try {
cd.setInstanceDef(InstanceDefFactory.OUTER);
fail();
} catch (UnsupportedOperationException expected) {
}
assertEquals(AutoBindingDefFactory.NONE, cd.getAutoBindingDef());
try {
cd.setAutoBindingDef(AutoBindingDefFactory.AUTO);
fail();
} catch (UnsupportedOperationException expected) {
}
assertFalse(cd.isExternalBinding());
try {
cd.setExternalBinding(true);
fail();
} catch (UnsupportedOperationException expected) {
}
assertNull(cd.getExpression());
try {
cd.setExpression(new OgnlExpression("true"));
fail();
} catch (UnsupportedOperationException expected) {
}
cd.init();
cd.destroy();
}
/**
*
*/
public void testArgDef() {
SimpleComponentDef cd = new SimpleComponentDef("Hoge", "hoge");
assertEquals(0, cd.getArgDefSize());
try {
cd.addArgDef(new ArgDefImpl());
fail();
} catch (UnsupportedOperationException expected) {
}
try {
cd.getArgDef(0);
fail();
} catch (ArrayIndexOutOfBoundsException expected) {
}
}
/**
*
*/
public void testPropertyDef() {
SimpleComponentDef cd = new SimpleComponentDef("Hoge", "hoge");
assertEquals(0, cd.getPropertyDefSize());
try {
cd.addPropertyDef(new PropertyDefImpl("hoge"));
fail();
} catch (UnsupportedOperationException expected) {
}
try {
cd.getPropertyDef(0);
fail();
} catch (ArrayIndexOutOfBoundsException expected) {
}
assertFalse(cd.hasPropertyDef("hoge"));
try {
cd.getPropertyDef("hoge");
fail();
} catch (PropertyNotFoundRuntimeException expected) {
}
}
/**
*
*/
public void testInitMethodDef() {
SimpleComponentDef cd = new SimpleComponentDef("Hoge", "hoge");
assertEquals(0, cd.getInitMethodDefSize());
try {
cd.addInitMethodDef(new InitMethodDefImpl());
fail();
} catch (UnsupportedOperationException expected) {
}
try {
cd.getInitMethodDef(0);
fail();
} catch (ArrayIndexOutOfBoundsException expected) {
}
}
/**
*
*/
public void testDestroyMethodDef() {
SimpleComponentDef cd = new SimpleComponentDef("Hoge", "hoge");
assertEquals(0, cd.getDestroyMethodDefSize());
try {
cd.addDestroyMethodDef(new DestroyMethodDefImpl());
fail();
} catch (UnsupportedOperationException expected) {
}
try {
cd.getDestroyMethodDef(0);
fail();
} catch (ArrayIndexOutOfBoundsException expected) {
}
}
/**
*
*/
public void testAspectDef() {
SimpleComponentDef cd = new SimpleComponentDef("Hoge", "hoge");
assertEquals(0, cd.getAspectDefSize());
try {
cd.addAspectDef(new AspectDefImpl());
fail();
} catch (UnsupportedOperationException expected) {
}
try {
cd.getAspectDef(0);
fail();
} catch (ArrayIndexOutOfBoundsException expected) {
}
}
/**
*
*/
public void testInterTypeDef() {
SimpleComponentDef cd = new SimpleComponentDef("Hoge", "hoge");
assertEquals(0, cd.getInterTypeDefSize());
try {
cd.addInterTypeDef(new InterTypeDefImpl());
fail();
} catch (UnsupportedOperationException expected) {
}
try {
cd.getInterTypeDef(0);
fail();
} catch (ArrayIndexOutOfBoundsException expected) {
}
}
/**
*
*/
public void testMetaDef() {
SimpleComponentDef cd = new SimpleComponentDef("Hoge", "hoge");
assertEquals(0, cd.getMetaDefSize());
try {
cd.addMetaDef(new MetaDefImpl());
fail();
} catch (UnsupportedOperationException expected) {
}
try {
cd.getMetaDef(0);
fail();
} catch (ArrayIndexOutOfBoundsException expected) {
}
assertNull(cd.getMetaDef("hoge"));
MetaDef[] metaDefs = cd.getMetaDefs("hoge");
assertNotNull(metaDefs);
assertEquals(0, metaDefs.length);
}
}