package cl.utfsm.acs.types;
import junit.framework.TestCase;
import cl.utfsm.acs.types.AcsComplexType;
import cl.utfsm.acs.types.AcsSimpleType;
import cl.utfsm.acs.types.AcsAttribute;
import java.util.ArrayList;
public class AcsComplexTypeTEST extends TestCase {
private AcsSimpleType sType1,sType2;
private AcsAttribute a1,a2,a3,a4;
protected void setUp() throws Exception {
sType1=new AcsSimpleType("namespace","name1","documentation","restriction");
sType2=new AcsSimpleType("namespace","name2","documentation","restriction");
a1=new AcsAttribute("attr1",sType1,"required");
a2=new AcsAttribute("attr2",sType1,"optional");
a3=new AcsAttribute("attr3",sType2,"required");
a4=new AcsAttribute("attr4",sType2,"optional");
}
public void testNames(){
AcsComplexType complex=new AcsComplexType("namespace","name","documentation");
complex.addAttr(a1);
complex.addAttr(a3);
complex.addAttr(a2);
complex.addAttr(a4);
ArrayList list=complex.getAttrNames();
assertEquals("Wrong Value",list.toString(),"[attr1, attr3, attr2, attr4]");
}
public void testEmpty(){
AcsComplexType complex=new AcsComplexType("namespace","name","documentation");
ArrayList list=complex.getAttrNames();
String st=complex.getAttrUse("attr1");
AcsSimpleType simple=complex.getAttrType("attr1");
assertEquals("Non Empty value, ",list.toString(),"[]");
assertNull(st);
assertNull(simple);
}
public void testUseAndType(){
AcsComplexType complex=new AcsComplexType("namespace","name","documentation");
complex.addAttr(a1);
complex.addAttr(a3);
complex.addAttr(a2);
complex.addAttr(a4);
String st=complex.getAttrUse("attr1");
AcsSimpleType simple=complex.getAttrType("attr2");
assertEquals("Wrong Value",st,"required");
assertEquals(sType1,simple);
st=complex.getAttrUse("wrong");
simple=complex.getAttrType("wrong");
assertNull(simple);
}
}