public void testConstructNameNull() { try { new ClassDescriptor("", null, false, noAttrs, noRefs, noColls); fail("Expected: IllegalArgumentException"); } catch (IllegalArgumentException e) { } }
public void testSetModel() throws Exception { ClassDescriptor cld = makeClass("package.name.Class1"); try { new Model("model1", "package.name", Collections.singleton(cld)); } catch (IllegalStateException e) { fail("Model should have been set correctly"); } try { new Model("model2", "package.name", Collections.singleton(cld)); fail("Model already set, expected IllegalStateException"); } catch (IllegalStateException e) { } }
public void testSuperClassNotExists() throws MetaDataException { ClassDescriptor superCld = makeClass("package.name.superCld"); ClassDescriptor cld = makeClass("package.name.cld", "package.name.anotherCld"); try { new Model("test", "package.name", Arrays.asList(cld, superCld)); fail("Expected MetaDataException"); } catch (MetaDataException e) { } }
public void testSuperClassWrongType() throws Exception { // test where superclass is not an interface, subclass is ClassDescriptor superCld = makeClass("package.name.superCld"); ClassDescriptor interface1 = makeInterface("package.name.interface1", "package.name.superCld"); try { new Model("test", "package.name", Arrays.asList(interface1, superCld)); fail("Expected MetaDataException"); } catch (MetaDataException e) { } }
public void testMultipleSuperClass() throws Exception { ClassDescriptor superCld1 = makeClass("package.name.superCld1"); ClassDescriptor superCld2 = makeClass("package.name.superCld2"); ClassDescriptor cld = makeClass("package.name.cld", "package.name.superCld1 package.name.superCld2"); try { new Model("test", "package.name", Arrays.asList(cld, superCld1, superCld2)); fail("Expected: MetaDataException"); } catch (MetaDataException e) { } }
public void testMultiInheritanceIllegalAttCol() throws Exception { CollectionDescriptor coll = new CollectionDescriptor("collision", "package.name.Class2", null); AttributeDescriptor attr = new AttributeDescriptor("collision", "float"); Set<CollectionDescriptor> colls = Collections.singleton(coll); Set<AttributeDescriptor> attrs = Collections.singleton(attr); ClassDescriptor cld1 = new ClassDescriptor("package.name.Class1", null, true, noAttrs, noRefs, colls); ClassDescriptor cld2 = new ClassDescriptor("package.name.Class2", null, true, attrs, noRefs, noColls); ClassDescriptor cld3 = makeClass("package.name.Class3", "package.name.Class1 package.name.Class2"); try { new Model("model", "package.name", Arrays.asList(cld1, cld2, cld3)); fail("Expected: MetaDataException"); } catch (MetaDataException e) { } }
public void testMultiInheritanceIllegalAttRef() throws Exception { AttributeDescriptor attr = new AttributeDescriptor("collision", "float"); ReferenceDescriptor ref = new ReferenceDescriptor("collision", "package.name.Class2", null); Set<AttributeDescriptor> attrs = Collections.singleton(attr); Set<ReferenceDescriptor> refs = Collections.singleton(ref); ClassDescriptor cld1 = new ClassDescriptor("package.name.Class1", null, true, noAttrs, refs, noColls); ClassDescriptor cld2 = new ClassDescriptor("package.name.Class2", null, true, attrs, noRefs, noColls); ClassDescriptor cld3 = makeClass("package.name.Class3", "package.name.Class1 package.name.Class2"); try { new Model("model", "package.name", Arrays.asList(cld1, cld2, cld3)); fail("Expected: MetaDataException"); } catch (MetaDataException e) { } }
public void testMultiInheritanceIllegalDueToAttributeTypeMismatch() throws Exception { AttributeDescriptor atd1 = new AttributeDescriptor("collision", "int"); AttributeDescriptor atd2 = new AttributeDescriptor("collision", "float"); Set<AttributeDescriptor> atds1 = Collections.singleton(atd1); Set<AttributeDescriptor> atds2 = Collections.singleton(atd2); ClassDescriptor cld1 = new ClassDescriptor("package.name.Class1", null, true, atds1, noRefs, noColls); ClassDescriptor cld2 = new ClassDescriptor("package.name.Class2", null, true, atds2, noRefs, noColls); ClassDescriptor cld3 = makeClass("package.name.Class3", "package.name.Class1 package.name.Class2"); try { new Model("model", "package.name", Arrays.asList(cld1, cld2, cld3)); fail("Expected: MetaDataException"); } catch (MetaDataException e) { } }
public void testImplementsNotExists() throws MetaDataException { // construct class implementing Interface3 which does not exist ClassDescriptor int1 = makeInterface("package.name.Interface1"); ClassDescriptor int2 = makeInterface("package.name.Interface2"); ClassDescriptor cld = makeClassDescriptor( "package.name.Class1", "package.name.Interface1 package.name.Interface2 package.name.Interface3", false); try { new Model("test", "package.name", Arrays.asList(int1, int2, cld)); fail("Expected MetaDataException"); } catch (MetaDataException e) { } }
public void testMultiInheritanceIllegalRefCol() throws Exception { CollectionDescriptor coll = new CollectionDescriptor("atd1", "package.name.Class2", null); ReferenceDescriptor ref = new ReferenceDescriptor("atd1", "package.name.Class2", null); Set<CollectionDescriptor> colls = Collections.singleton(coll); Set<ReferenceDescriptor> refs = Collections.singleton(ref); ClassDescriptor cld1 = new ClassDescriptor("package.name.Class1", null, true, noAttrs, noRefs, colls); ClassDescriptor cld2 = new ClassDescriptor("package.name.Class2", null, true, noAttrs, refs, noColls); ClassDescriptor cld3 = makeClass("package.name.Class3", "package.name.Class1 package.name.Class2"); try { new Model("model", "package.name", Arrays.asList(cld1, cld2, cld3)); fail("Expected: MetaDataException"); } catch (MetaDataException e) { } }