41559703426b2d9db4daea19d3ea753696076f51
[idea/community.git] / java / java-tests / testSrc / com / intellij / codeInsight / daemon / lambda / MostSpecificResolutionTest.java
1 /*
2  * Copyright 2000-2014 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.intellij.codeInsight.daemon.lambda;
17
18 import com.intellij.codeInsight.daemon.LightDaemonAnalyzerTestCase;
19 import com.intellij.codeInspection.deadCode.UnusedDeclarationInspection;
20 import com.intellij.openapi.projectRoots.JavaSdkVersion;
21 import com.intellij.openapi.projectRoots.Sdk;
22 import com.intellij.testFramework.IdeaTestUtil;
23 import org.jetbrains.annotations.NonNls;
24
25 public class MostSpecificResolutionTest extends LightDaemonAnalyzerTestCase {
26   @NonNls static final String BASE_PATH = "/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific";
27
28   @Override
29   protected void setUp() throws Exception {
30     super.setUp();
31     enableInspectionTool(new UnusedDeclarationInspection());
32   }
33
34   public void testVoidConflict() throws Exception {
35     doTest();
36   }
37
38   public void testNestedLambdaSpecifics() throws Exception {
39     doTest();
40   }
41
42   public void testBothVarargs() throws Exception {
43     doTest();
44   }
45
46   public void testNestedVarargs() throws Exception {
47     doTest();
48   }
49
50   public void testMostSpecificForSameFunctionalTypes() throws Exception {
51     doTest();
52   }
53
54   public void testIDEA121884() throws Exception {
55     doTest();
56   }
57
58   public void testIDEA121999() throws Exception {
59     doTest();
60   }
61
62   public void testRelatedSAMErasures() throws Exception {
63     doTest();
64   }
65
66   public void testJDK8034223() throws Exception {
67     doTest();
68   }
69
70   public void testIDEA123352() throws Exception {
71     doTest();
72   }
73
74   public void testIncompleteMethodInInterface() throws Exception {
75     doTest(false);
76   }
77
78   public void testMostSpecificByReturnType() throws Exception {
79     doTest();
80   }
81
82   public void testDifferentParamsLength() throws Exception {
83     doTest(false);
84   }
85
86   public void testNoReturnTypeResolutionForThrownException() throws Exception {
87     doTest(false);
88   }
89
90   public void testBoxingAndOverloadResolution() throws Exception {
91     doTest();
92   }
93
94   public void testSuperMethodsInExactCheck() throws Exception {
95     doTest();
96   }
97
98   public void testTargetTypeParameter() throws Exception {
99     doTest(false);
100   }
101
102   public void testJDK8042508() throws Exception {
103     doTest(false);
104   }
105
106   public void testIDEA125855() throws Exception {
107     doTest();
108   }
109
110   public void testIDEA127584() throws Exception {
111     doTest();
112   }
113
114   public void testVarargsSpecificsDuringMethodReferenceResolve() throws Exception {
115     doTest();
116   }
117
118   private void doTest() {
119     doTest(true);
120   }
121
122   private void doTest(boolean warnings) {
123     IdeaTestUtil.setTestVersion(JavaSdkVersion.JDK_1_8, getModule(), getTestRootDisposable());
124     doTest(BASE_PATH + "/" + getTestName(false) + ".java", warnings, false);
125   }
126
127   @Override
128   protected Sdk getProjectJDK() {
129     return IdeaTestUtil.getMockJdk18();
130   }
131 }