Skip to content

Commit

Permalink
ignore the test and move the report of problems into INRIA#1691
Browse files Browse the repository at this point in the history
  • Loading branch information
pvojtechovsky authored and monperrus committed Nov 9, 2017
1 parent 3b80250 commit e0ed04a
Showing 1 changed file with 32 additions and 91 deletions.
123 changes: 32 additions & 91 deletions src/test/java/spoon/test/reflect/meta/MetaModelTest.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package spoon.test.reflect.meta;

import org.junit.Ignore;
import org.junit.Test;

import spoon.Launcher;
Expand Down Expand Up @@ -28,101 +29,41 @@

public class MetaModelTest {

/*
* this test reports all spoon model elements which are not yet handled by meta model
* actually this is the result
*/
//enable this test after everything is covered.
@Test
@Ignore
public void spoonMetaModelTest() {
/*
* this test reports all spoon model elements which are not yet handled by meta model
* actually this is the result
Unhandled method signature: CtParameter#setVisibility(spoon.reflect.declaration.ModifierKind)
Unhandled method signature: CtElement#getAnnotation(java.lang.Class)
Unhandled method signature: CtElement#getAnnotation(java.lang.Class)
Unhandled method signature: CtElement#getAnnotation(spoon.reflect.reference.CtTypeReference)
Unhandled method signature: CtElement#getAnnotation(spoon.reflect.reference.CtTypeReference)
Unhandled method signature: CtConstructor#setVisibility(spoon.reflect.declaration.ModifierKind)
Unhandled method signature: CtModifiable#setVisibility(spoon.reflect.declaration.ModifierKind)
Unhandled method signature: CtAnonymousExecutable#setVisibility(spoon.reflect.declaration.ModifierKind)
Unhandled method signature: CtJavaDoc#removeTag(int)
Unhandled method signature: CtJavaDoc#removeTag(int)
Unhandled method signature: CtStatementList#insertEnd(spoon.reflect.code.CtStatement)
Unhandled method signature: CtStatementList#insertEnd(spoon.reflect.code.CtStatement)
Unhandled method signature: CtStatementList#insertEnd(spoon.reflect.code.CtStatementList)
Unhandled method signature: CtStatementList#insertEnd(spoon.reflect.code.CtStatementList)
Unhandled method signature: CtStatementList#insertBegin(spoon.reflect.code.CtStatementList)
Unhandled method signature: CtStatementList#insertBegin(spoon.reflect.code.CtStatementList)
Unhandled method signature: CtClass#getConstructor(spoon.reflect.reference.CtTypeReference[])
Unhandled method signature: CtClass#getConstructor(spoon.reflect.reference.CtTypeReference[])
Unhandled method signature: CtBlock#insertEnd(spoon.reflect.code.CtStatementList)
Unhandled method signature: CtBlock#addStatement(spoon.reflect.code.CtStatement)
Unhandled method signature: CtBlock#insertBegin(spoon.reflect.code.CtStatementList)
Unhandled method signature: CtTypeParameterReference#setBounds(java.util.List)
Unhandled method signature: CtTypeParameterReference#setBounds(java.util.List)
Unhandled method signature: CtTypeParameter#setVisibility(spoon.reflect.declaration.ModifierKind)
Unhandled method signature: CtTypeParameter#getMethod(spoon.reflect.reference.CtTypeReference,java.lang.String,spoon.reflect.reference.CtTypeReference[])
Unhandled method signature: CtTypeParameter#getMethod(java.lang.String,spoon.reflect.reference.CtTypeReference[])
Unhandled method signature: CtTypeParameter#getMethodsAnnotatedWith(spoon.reflect.reference.CtTypeReference[])
Unhandled method signature: CtLocalVariable#setVisibility(spoon.reflect.declaration.ModifierKind)
Unhandled method signature: CtType#setVisibility(spoon.reflect.declaration.ModifierKind)
Unhandled method signature: CtType#getMethod(spoon.reflect.reference.CtTypeReference,java.lang.String,spoon.reflect.reference.CtTypeReference[])
Unhandled method signature: CtType#getMethod(spoon.reflect.reference.CtTypeReference,java.lang.String,spoon.reflect.reference.CtTypeReference[])
Unhandled method signature: CtType#getMethod(java.lang.String,spoon.reflect.reference.CtTypeReference[])
Unhandled method signature: CtType#getMethod(java.lang.String,spoon.reflect.reference.CtTypeReference[])
Unhandled method signature: CtType#getMethodsAnnotatedWith(spoon.reflect.reference.CtTypeReference[])
Unhandled method signature: CtType#getMethodsAnnotatedWith(spoon.reflect.reference.CtTypeReference[])
Unhandled method signature: CtCase#insertEnd(spoon.reflect.code.CtStatement)
Unhandled method signature: CtCase#insertEnd(spoon.reflect.code.CtStatementList)
Unhandled method signature: CtCase#insertBegin(spoon.reflect.code.CtStatementList)
Unhandled method signature: CtMethod#setVisibility(spoon.reflect.declaration.ModifierKind)
Unhandled method signature: CtJavaDocTag#setType(java.lang.String)
Unhandled method signature: CtJavaDocTag#setType(java.lang.String)
Unhandled method signature: CtField#setVisibility(spoon.reflect.declaration.ModifierKind)
Unhandled method signature: CtAnnotation#setElementValues(java.util.Map)
Unhandled method signature: CtAnnotation#setElementValues(java.util.Map)
Unhandled method signature: CtAnnotation#addValue(java.lang.String,java.lang.Object)
Unhandled method signature: CtAnnotation#addValue(java.lang.String,java.lang.Object)
Unhandled method signature: CtAnnotation#addValue(java.lang.String,spoon.reflect.code.CtLiteral)
Unhandled method signature: CtAnnotation#addValue(java.lang.String,spoon.reflect.code.CtLiteral)
Unhandled method signature: CtAnnotation#addValue(java.lang.String,spoon.reflect.code.CtNewArray)
Unhandled method signature: CtAnnotation#addValue(java.lang.String,spoon.reflect.code.CtNewArray)
Unhandled method signature: CtAnnotation#addValue(java.lang.String,spoon.reflect.code.CtFieldAccess)
Unhandled method signature: CtAnnotation#addValue(java.lang.String,spoon.reflect.code.CtFieldAccess)
Unhandled method signature: CtAnnotation#addValue(java.lang.String,spoon.reflect.declaration.CtAnnotation)
Unhandled method signature: CtAnnotation#addValue(java.lang.String,spoon.reflect.declaration.CtAnnotation)
Unhandled method signature: CtEnum#getMethod(java.lang.String,spoon.reflect.reference.CtTypeReference[])
Unhandled method signature: CtEnum#getMethod(spoon.reflect.reference.CtTypeReference,java.lang.String,spoon.reflect.reference.CtTypeReference[])
Unhandled method signature: CtCatchVariable#setType(spoon.reflect.reference.CtTypeReference)
Unhandled method signature: CtCatchVariable#getType()
Unhandled method signature: CtCatchVariable#setVisibility(spoon.reflect.declaration.ModifierKind)
*/
if(false) {
//enable this test after everything is covered.
SpoonMetaModel mm = new SpoonMetaModel(new File("./src/main/java"));
List<String> problems = new ArrayList<>();

//detect unused CtRoles
Set<CtRole> unhandledRoles = new HashSet<>(Arrays.asList(CtRole.values()));
SpoonMetaModel mm = new SpoonMetaModel(new File("./src/main/java"));
List<String> problems = new ArrayList<>();

//detect unused CtRoles
Set<CtRole> unhandledRoles = new HashSet<>(Arrays.asList(CtRole.values()));

mm.getMMTypes().forEach(mmType -> {
mmType.getRole2field().forEach((role, mmField) -> {
unhandledRoles.remove(role);
if (mmField.getMethod(MMMethodKind.GET) == null) {
problems.add("Missing getter for " + mmField.getOwnerType().getName() + " and CtRole." + mmField.getRole());
}
if (mmField.getMethod(MMMethodKind.SET) == null) {
if (mmType.getTypeContext().isSubtypeOf(mm.getFactory().Type().createReference(CtReference.class)) == false
&& mmType.getName().equals("CtTypeInformation") == false) {
//only NON references needs a setter
problems.add("Missing setter for " + mmField.getOwnerType().getName() + " and CtRole." + mmField.getRole());
}
}

mmField.forEachUnhandledMethod(ctMethod -> problems.add("Unhandled method signature: " + mmType.getName() + "#" + ctMethod.getSignature()));
});
mm.getMMTypes().forEach(mmType -> {
mmType.getRole2field().forEach((role, mmField) -> {
unhandledRoles.remove(role);
if (mmField.getMethod(MMMethodKind.GET) == null) {
problems.add("Missing getter for " + mmField.getOwnerType().getName() + " and CtRole." + mmField.getRole());
}
if (mmField.getMethod(MMMethodKind.SET) == null) {
if (mmType.getTypeContext().isSubtypeOf(mm.getFactory().Type().createReference(CtReference.class)) == false
&& mmType.getName().equals("CtTypeInformation") == false) {
//only NON references needs a setter
problems.add("Missing setter for " + mmField.getOwnerType().getName() + " and CtRole." + mmField.getRole());
}
}

mmField.forEachUnhandledMethod(ctMethod -> problems.add("Unhandled method signature: " + ctMethod.getDeclaringType().getSimpleName() + "#" + ctMethod.getSignature()));
});
unhandledRoles.forEach(it -> problems.add("Unused CtRole." + it.name()));
assertTrue(String.join("\n", problems), problems.isEmpty());
}
});

unhandledRoles.forEach(it -> problems.add("Unused CtRole." + it.name()));

assertTrue(String.join("\n", problems), problems.isEmpty());
}
@Test
public void elementAnnotationRoleHandlerTest() {
Expand Down

0 comments on commit e0ed04a

Please sign in to comment.