Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVikas Chandra2014-05-13 18:59:29 +0000
committerCurtis Windatt2014-05-13 18:59:29 +0000
commit9944c7397a08bd865c48dc16621dadabc06f3c28 (patch)
treef33c1b763d41ae5a068de2d9a09fc503d4c013e2 /apitools
parente70006a1f7c6a68aa6b0fc96c9b8a973f970b83f (diff)
downloadeclipse.pde.ui-9944c7397a08bd865c48dc16621dadabc06f3c28.tar.gz
eclipse.pde.ui-9944c7397a08bd865c48dc16621dadabc06f3c28.tar.xz
eclipse.pde.ui-9944c7397a08bd865c48dc16621dadabc06f3c28.zip
Bug 427495 - [1.8] Support default methods
Add usage tests Change-Id: I3c0787b1696e16c83d44ff3d6a31ab899fd44aac Signed-off-by: Vikas Chandra <Vikas.Chandra@in.ibm.com>
Diffstat (limited to 'apitools')
-rw-r--r--apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8DefaultMethodUsageTests.java212
-rw-r--r--apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8UsageTest.java2
2 files changed, 214 insertions, 0 deletions
diff --git a/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8DefaultMethodUsageTests.java b/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8DefaultMethodUsageTests.java
new file mode 100644
index 0000000000..753b0b811a
--- /dev/null
+++ b/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8DefaultMethodUsageTests.java
@@ -0,0 +1,212 @@
+package org.eclipse.pde.api.tools.builder.tests.usage;
+
+import junit.framework.Test;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.pde.api.tools.internal.problems.ApiProblemFactory;
+import org.eclipse.pde.api.tools.internal.provisional.descriptors.IElementDescriptor;
+import org.eclipse.pde.api.tools.internal.provisional.problems.IApiProblem;
+
+public class Java8DefaultMethodUsageTests extends Java8UsageTest {
+
+ /**
+ * Constructor
+ *
+ * @param name
+ */
+ public Java8DefaultMethodUsageTests(String name) {
+ super(name);
+ }
+
+ /**
+ * @return the test class for this suite
+ */
+ public static Test suite() {
+ return buildTestSuite(Java8DefaultMethodUsageTests.class);
+ }
+
+ @Override
+ protected IPath getTestSourcePath() {
+ return super.getTestSourcePath().append("interface"); //$NON-NLS-1$
+ }
+
+ // /**
+ /**
+ * Returns the problem id with the given kind
+ *
+ * @param kind
+ * @return the problem id
+ */
+ protected int getProblemId(int kind, int flags) {
+ return ApiProblemFactory.createProblemId(IApiProblem.CATEGORY_USAGE, IElementDescriptor.METHOD, kind, flags);
+ }
+
+
+ /**
+ * Tests implementing an interface with a default method and calling
+ * it(full)
+ */
+ public void testNoRefAnnotationOnInterfaceWithDefaultMethodF() {
+ x1(false);
+ }
+
+ /**
+ * Tests implementing an interface with a default method and calling
+ * it (incremental)
+ */
+ public void testNoRefAnnotationOnInterfaceWithDefaultMethodI() {
+ x1(true);
+ }
+
+ private void x1(boolean inc) {
+ int[] pids = new int[] {
+
+ getProblemId(IApiProblem.ILLEGAL_REFERENCE, IApiProblem.METHOD) };
+
+ setExpectedProblemIds(pids);
+ String typename = "test1"; //$NON-NLS-1$
+
+ String[][] args = new String[][] { {
+ "INoRefDefaultInterface", typename, "m1()" } //$NON-NLS-1$//$NON-NLS-2$
+
+ };
+ setExpectedMessageArgs(args);
+ setExpectedLineMappings(new LineMapping[] {
+ new LineMapping(20, pids[0], args[0])
+
+ });
+ deployUsageTest(typename, inc);
+ }
+
+ /**
+ * Tests an interface ref for a restricted default method (full)
+ */
+ public void testNoRefAnnotationOnInterfaceWithDefaultMethod2F() {
+ x2(false);
+ }
+
+ /**
+ * Tests an interface ref for a restricted default method (incremental)
+ */
+ public void testNoRefAnnotationOnInterfaceWithDefaultMethod2I() {
+ x2(true);
+ }
+
+ private void x2(boolean inc) {
+ int[] pids = new int[] {
+
+ getProblemId(IApiProblem.ILLEGAL_REFERENCE, IApiProblem.METHOD) };
+
+ setExpectedProblemIds(pids);
+ String typename = "test2"; //$NON-NLS-1$
+
+ String[][] args = new String[][] { {
+ "INoRefDefaultInterface", typename, "m1()" } //$NON-NLS-1$//$NON-NLS-2$
+
+ };
+ setExpectedMessageArgs(args);
+ setExpectedLineMappings(new LineMapping[] { new LineMapping(22, pids[0], args[0])
+
+ });
+ deployUsageTest(typename, inc);
+ }
+
+ /**
+ * Tests an impl and direct ref to a restricted default method (full)
+ */
+ public void testNoRefAnnotationDefaultMethodF() {
+ x3(false);
+ }
+
+ /**
+ * Tests an impl and direct ref to a restricted default method (incremental)
+ */
+ public void testNoRefAnnotationDefaultMethodI() {
+ x3(true);
+ }
+
+ private void x3(boolean inc) {
+ int[] pids = new int[] {
+
+ getProblemId(IApiProblem.ILLEGAL_REFERENCE, IApiProblem.METHOD) };
+
+ setExpectedProblemIds(pids);
+ String typename = "test3"; //$NON-NLS-1$
+
+ String[][] args = new String[][] { {
+ "INoRefDefaultInterface2", typename, "m1()" } //$NON-NLS-1$//$NON-NLS-2$
+
+ };
+ setExpectedMessageArgs(args);
+ setExpectedLineMappings(new LineMapping[] { new LineMapping(21, pids[0], args[0])
+
+ });
+ deployUsageTest(typename, inc);
+ }
+
+ /**
+ * Tests an impl and interface ref to a restricted default method (full)
+ */
+ public void testNoRefAnnotationDefaultMethod2F() {
+ x4(false);
+ }
+
+ /**
+ * Tests an impl and interface ref to a restricted default method
+ * (incremental)
+ */
+ public void testNoRefAnnotationDefaultMethod2I() {
+ x4(true);
+ }
+
+ private void x4(boolean inc) {
+ int[] pids = new int[] {
+
+ getProblemId(IApiProblem.ILLEGAL_REFERENCE, IApiProblem.METHOD) };
+
+ setExpectedProblemIds(pids);
+ String typename = "test4"; //$NON-NLS-1$
+
+ String[][] args = new String[][] { {
+ "INoRefDefaultInterface2", typename, "m1()" } //$NON-NLS-1$//$NON-NLS-2$
+
+ };
+ setExpectedMessageArgs(args);
+ setExpectedLineMappings(new LineMapping[] { new LineMapping(22, pids[0], args[0])
+
+ });
+ deployUsageTest(typename, inc);
+ }
+
+ // TODO uncomment this after fixing bug below.
+ // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=433528
+ // there should be 1 error
+ // /**
+ // * Tests no overriding restricted default methods (full)
+ // */
+ // public void testOverrideDefaultMethodF() {
+ // x5(false);
+ // }
+ //
+ // /**
+ // * Test no overriding restricted default methods (incremental)
+ // */
+ // public void testOverrideDefaultMethodI() {
+ // x5(true);
+ // }
+ //
+ // private void x5(boolean inc) {
+ // int[] pids = null;
+ //
+ // setExpectedProblemIds(pids);
+ // String typename = "test5"; //$NON-NLS-1$
+ //
+ // String[][] args = null;
+ // setExpectedMessageArgs(args);
+ // setExpectedLineMappings(null);
+ // deployUsageTest(typename, inc);
+ // }
+
+ // TODO to add javadoc tag test cases
+
+}
diff --git a/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8UsageTest.java b/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8UsageTest.java
index e5243b184f..0caeb9d227 100644
--- a/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8UsageTest.java
+++ b/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8UsageTest.java
@@ -169,6 +169,7 @@ public class Java8UsageTest extends ApiBuilderTest {
}
/**
+ *
* @return all of the child test classes of this class
*/
private static Class<?>[] getAllTestClasses() {
@@ -176,6 +177,7 @@ public class Java8UsageTest extends ApiBuilderTest {
classes.add(Java8LambdaUsageTests.class);
classes.add(Java8MethodConstRefUsageTests.class);
classes.add(Java8ConsRefInstantiateUsageTests.class);
+ classes.add(Java8DefaultMethodUsageTests.class);
return classes.toArray(new Class[classes.size()]);
}
}

Back to the top