Skip to content

Commit

Permalink
#7: Add more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
nilshartmann authored and gunnarmorling committed Jan 18, 2019
1 parent 112526d commit 445d449
Show file tree
Hide file tree
Showing 11 changed files with 160 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,72 @@ public void shouldDetectInvalidClassAssignment() {
packageFooMustNotAccess("org.moditect.deptective.plugintest.basic.barclass"));
}

@Test
public void shouldDetectInvalidQualifiedClassReference() {
Compilation compilation = compile();
assertThat(compilation).failed();

assertThat(compilation).hadErrorContaining(
packageFooMustNotAccess("org.moditect.deptective.plugintest.basic.barqualified"));
}

// @Test
// public void shouldDetectInvalidUnusedImport() {
// Compilation compilation = compile();
// assertThat(compilation).failed();
//
// assertThat(compilation).hadErrorContaining(
// packageFooMustNotAccess("org.moditect.deptective.plugintest.basic.barunused"));
// }

@Test
public void shouldDetectInvalidStarImport() {
Compilation compilation = compile();
assertThat(compilation).failed();

assertThat(compilation).hadErrorContaining(
packageFooMustNotAccess("org.moditect.deptective.plugintest.basic.bardemand"));
}

@Test
public void shouldDetectInvalidQualifiedReferenceToStaticMethod() {
Compilation compilation = compile();
assertThat(compilation).failed();

assertThat(compilation).hadErrorContaining(
packageFooMustNotAccess("org.moditect.deptective.plugintest.basic.barstatic"));
}

@Test
public void shouldDetectInvalidQualifiedReferenceToStaticField() {
Compilation compilation = compile();
assertThat(compilation).failed();

assertThat(compilation).hadErrorContaining(
packageFooMustNotAccess("org.moditect.deptective.plugintest.basic.barstaticfield"));
}


@Test
public void shouldDetectInvalidClassLiteralReference() {
Compilation compilation = compile();
assertThat(compilation).failed();

assertThat(compilation).hadErrorContaining(
packageFooMustNotAccess("org.moditect.deptective.plugintest.basic.barclsliteral"));
}

@Test
public void shouldDetectInvalidReferencesInGenericBounds() {
Compilation compilation = compile();
assertThat(compilation).failed();

assertThat(compilation).hadErrorContaining(
packageFooMustNotAccess("org.moditect.deptective.plugintest.basic.bargenericbound"));

}


@Test
public void shouldNotReportValidReferences() {
// in our Testclass all "wanted" illegal references point to "org.moditect.deptective.plugintest.basic.bar*"
Expand Down Expand Up @@ -186,6 +252,8 @@ public void shouldDetectInvalidAnnotationReferences() {
packageFooMustNotAccess("org.moditect.deptective.plugintest.basic.barclazzan"));
assertThat(compilation).hadErrorContaining(
packageFooMustNotAccess("org.moditect.deptective.plugintest.basic.barfieldan"));
assertThat(compilation).hadErrorContaining(
packageFooMustNotAccess("org.moditect.deptective.plugintest.basic.barvalueann"));
}

@Test
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package org.moditect.deptective.plugintest.basic.barclsliteral;

public class BarClassLiteral {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package org.moditect.deptective.plugintest.basic.bardemand;

public class BarDemand {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package org.moditect.deptective.plugintest.basic.bargenericbound;

public class BarGenericBound {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package org.moditect.deptective.plugintest.basic.barqualified;

public class BarQualified {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.moditect.deptective.plugintest.basic.barstatic;

public class BarStatic {

public static String staticBar() { return "hello"; }

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.moditect.deptective.plugintest.basic.barstaticfield;

public class BarStaticField {

public static String BAR_STATIC = "barStatic";

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package org.moditect.deptective.plugintest.basic.barunused;

public class BarUnused {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package org.moditect.deptective.plugintest.basic.barvalueann;

public class BarValue {

}
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,14 @@
import org.moditect.deptective.plugintest.basic.baranparam.BarAnnotationParameter;
import org.moditect.deptective.plugintest.basic.barclass.BarClass;
import org.moditect.deptective.plugintest.basic.barclazzan.BarClazzAnnotation;
import org.moditect.deptective.plugintest.basic.barclsliteral.BarClassLiteral;
import org.moditect.deptective.plugintest.basic.barctorcall.BarCtorCall;
import org.moditect.deptective.plugintest.basic.barctorparam.BarCtorParam;
import org.moditect.deptective.plugintest.basic.bardemand.BarDemand;
import org.moditect.deptective.plugintest.basic.barfield.BarField;
import org.moditect.deptective.plugintest.basic.barfieldan.BarFieldAnnotation;
import org.moditect.deptective.plugintest.basic.bargen.BarGeneric;
import org.moditect.deptective.plugintest.basic.bargenericbound.BarGenericBound;
import org.moditect.deptective.plugintest.basic.bargentype.BarGenType;
import org.moditect.deptective.plugintest.basic.barinnerinner.BarInnerInterface;
import org.moditect.deptective.plugintest.basic.barinnersuper.BarInnerSuperClass;
Expand All @@ -37,16 +40,29 @@
import org.moditect.deptective.plugintest.basic.barretvalgen.RetValGen;
import org.moditect.deptective.plugintest.basic.barsuper.BarSuper;
import org.moditect.deptective.plugintest.basic.bartypearg.BarTypeArg;
import org.moditect.deptective.plugintest.basic.barvalueann.BarValue;

@FooAnnotation(classParameter = BarAnnotationParameter.class)
@BarClazzAnnotation
@FooValueAnnotation(BarValue.class)
public class Foo extends BarSuper implements BarInterface, /* allowed: */ IFoo {

@BarFieldAnnotation
private String s;
private final BarField bar = new BarField();
private Class<?> clazz = BarClass.class;

private org.moditect.deptective.plugintest.basic.barqualified.BarQualified barQualified;

private String x = org.moditect.deptective.plugintest.basic.barstatic.BarStatic.staticBar();

private final String barbarbar = org.moditect.deptective.plugintest.basic.barstaticfield.BarStaticField.BAR_STATIC;

private BarDemand barDemand;

private Class<? extends BarGenericBound> genericBound;


public Foo(BarCtorParam bar) {
}

Expand All @@ -61,9 +77,15 @@ public BarRetVal doSomething(BarParameter bar) {

new BarCtorCall();

doIt(BarClassLiteral.class);

return null;
}

private void doIt(Class<?> clz) {

}

private boolean isAllowed() { return true; }
private void isAlsoAllowed() { }

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package org.moditect.deptective.plugintest.basic.foo;

import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import static java.lang.annotation.ElementType.CONSTRUCTOR;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.LOCAL_VARIABLE;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.MODULE;
import static java.lang.annotation.ElementType.PACKAGE;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.ElementType.TYPE_PARAMETER;
import static java.lang.annotation.ElementType.TYPE_USE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

@Retention(RUNTIME)
@Target({ TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE, ANNOTATION_TYPE, PACKAGE, TYPE_PARAMETER,
TYPE_USE, MODULE })
public @interface FooValueAnnotation {

Class<?> value();

}

0 comments on commit 445d449

Please sign in to comment.