Added test which checks reading external annotations in old and new formats.

This commit is contained in:
Evgeny Gerashchenko
2012-08-03 18:05:16 +04:00
parent 8e212e2b53
commit a7090ac62d
3 changed files with 43 additions and 3 deletions
@@ -0,0 +1,14 @@
<root>
<item name='persistence.Test java.lang.String<T> getString(java.util.Map.Entry<T,T>) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='persistence.Test java.lang.String<T> getString(java.util.Map.Entry<T, T>) 0'>
<annotation name='org.jetbrains.annotations.NonNls'/>
</item>
<item name='persistence.Test java.lang.String&lt;T&gt; getString(java.util.Map.Entry&lt;T,T&gt;)'>
<annotation name='org.jetbrains.annotations.Nullable'/>
</item>
<item name='persistence.Test java.lang.String&lt;T&gt; getString(java.util.Map.Entry&lt;T, T&gt;)'>
<annotation name='org.jetbrains.annotations.Nls'/>
</item>
</root>
@@ -0,0 +1,9 @@
package persistence;
import java.util.*;
class Test {
String <T> getString(Map.Entry<T, T> entry) {
return null;
}
}
@@ -21,9 +21,7 @@ import com.intellij.openapi.roots.OrderRootType;
import com.intellij.openapi.roots.libraries.Library;
import com.intellij.openapi.roots.libraries.LibraryTable;
import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiModifierListOwner;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.testFramework.IdeaTestCase;
import com.intellij.testFramework.PsiTestUtil;
@@ -176,4 +174,23 @@ public class AddAnnotationFixTest extends UsefulTestCase {
assertFalse(deannotateFix.isAvailable(project, editor, file));
}
public void testReadingOldPersistenceFormat() throws Throwable {
addLibrary();
myFixture.configureByFiles("content/anno/persistence/annotations.xml");
myFixture.configureByFiles("lib/persistence/Test.java");
ExternalAnnotationsManager manager = ExternalAnnotationsManager.getInstance(myFixture.getProject());
PsiMethod method = ((PsiJavaFile)myFixture.getFile()).getClasses()[0].getMethods()[0];
PsiParameter parameter = method.getParameterList().getParameters()[0];
assertNotNull(manager.findExternalAnnotation(method, AnnotationUtil.NULLABLE));
assertNotNull(manager.findExternalAnnotation(method, AnnotationUtil.NLS));
assertEquals(2, manager.findExternalAnnotations(method).length);
assertNotNull(manager.findExternalAnnotation(parameter, AnnotationUtil.NOT_NULL));
assertNotNull(manager.findExternalAnnotation(parameter, AnnotationUtil.NON_NLS));
assertEquals(2, manager.findExternalAnnotations(parameter).length);
}
}