revert "IDEA-CR-4309 add hamcrest 2.0.0 and use org.hamcrest.io.FileMatchers" in favour of AssertJ. AssertJ moved from DBE to community and updated to 2.1.0 (since we require JDK 8 in tests). Not to 3.0, because Kotlin is better and, so, no need to use JDK 8 features.

This commit is contained in:
Vladimir Krivosheev
2015-08-17 14:42:56 +02:00
parent decd8bd6d7
commit a1b4bfc0b9
22 changed files with 1092 additions and 1539 deletions
+16
View File
@@ -0,0 +1,16 @@
<component name="libraryTable">
<library name="assertJ">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/dev/assertj-core-2.1.0.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/dev/assertj-guava-2.0.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/dev/assertj-core-2.1.0-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/dev/assertj-guava-2.0.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/dev/assertj-core-2.1.0-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/dev/assertj-guava-2.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -13,7 +13,7 @@
<orderEntry type="module" module-name="core-api" />
<orderEntry type="module" module-name="platform-api" />
<orderEntry type="module" module-name="projectModel-impl" />
<orderEntry type="library" scope="TEST" name="junit-hamcrest" level="project" />
<orderEntry type="library" name="assertJ" level="project" />
<orderEntry type="module" module-name="testFramework" scope="TEST" />
<orderEntry type="module" module-name="platform-impl" />
<orderEntry type="module" module-name="eclipse" scope="TEST" />
@@ -21,11 +21,7 @@ import com.intellij.testFramework.fixtures.ModuleFixture
import com.intellij.testFramework.runInEdtAndWait
import com.intellij.util.Function
import com.intellij.util.SmartList
import org.hamcrest.CoreMatchers.equalTo
import org.hamcrest.CoreMatchers.not
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.collection.IsEmptyCollection.empty
import org.hamcrest.io.FileMatchers.anExistingFile
import org.assertj.core.api.Assertions.assertThat
import org.junit.Rule
import org.junit.Test
import org.junit.rules.ExternalResource
@@ -61,8 +57,7 @@ class ModuleStoreRenameTest {
override fun before() {
module.getMessageBus().connect().subscribe(ProjectTopics.MODULES, object : ModuleAdapter() {
override fun modulesRenamed(project: Project, modules: MutableList<Module>, oldNameProvider: Function<Module, String>) {
assertThat(modules.size(), equalTo(1))
assertThat(modules.get(0), equalTo(module))
assertThat(modules).containsOnly(module)
oldModuleNames.add(oldNameProvider.`fun`(module))
}
})
@@ -87,13 +82,13 @@ class ModuleStoreRenameTest {
runInEdtAndWait { module.saveStore() }
val storage = module.stateStore.getStateStorageManager().getStateStorage(StoragePathMacros.MODULE_FILE, RoamingType.PER_USER) as FileBasedStorage
val oldFile = storage.getFile()
assertThat(oldFile, anExistingFile())
assertThat(oldFile).isFile()
val oldName = module.getName()
val newName = "foo"
module.change { renameModule(module, newName) }
assertRename(newName, oldFile)
assertThat(oldModuleNames, equalTo(listOf(oldName)))
assertThat(oldModuleNames).containsOnly(oldName)
}
// project view
@@ -101,13 +96,13 @@ class ModuleStoreRenameTest {
runInEdtAndWait { module.saveStore() }
var storage = module.stateStore.getStateStorageManager().getStateStorage(StoragePathMacros.MODULE_FILE, RoamingType.PER_USER) as FileBasedStorage
val oldFile = storage.getFile()
assertThat(oldFile, anExistingFile())
assertThat(oldFile).isFile()
val oldName = module.getName()
val newName = "foo"
runInEdtAndWait { runWriteAction { LocalFileSystem.getInstance().refreshAndFindFileByIoFile(oldFile)!!.rename(null, "$newName${ModuleFileType.DOT_DEFAULT_EXTENSION}") } }
assertRename(newName, oldFile)
assertThat(oldModuleNames, equalTo(listOf(oldName)))
assertThat(oldModuleNames).containsOnly(oldName)
}
// we cannot test external rename yet, because it is not supported - ModuleImpl doesn't support delete and create events (in case of external change we don't get move event, but get "delete old" and "create new")
@@ -115,13 +110,14 @@ class ModuleStoreRenameTest {
private fun assertRename(newName: String, oldFile: File) {
val storageManager = moduleFixture.getModule().stateStore.getStateStorageManager()
val newFile = (storageManager.getStateStorage(StoragePathMacros.MODULE_FILE, RoamingType.PER_USER) as FileBasedStorage).getFile()
assertThat(newFile.getName(), equalTo("$newName${ModuleFileType.DOT_DEFAULT_EXTENSION}"))
assertThat(oldFile, not(anExistingFile()))
assertThat(oldFile, not(equalTo(newFile)))
assertThat(newFile, anExistingFile())
assertThat(newFile.getName()).isEqualTo("$newName${ModuleFileType.DOT_DEFAULT_EXTENSION}")
assertThat(oldFile)
.doesNotExist()
.isNotEqualTo(newFile)
assertThat(newFile).isFile()
// ensure that macro value updated
assertThat(storageManager.expandMacros(StoragePathMacros.MODULE_FILE), equalTo(newFile.systemIndependentPath))
assertThat(storageManager.expandMacros(StoragePathMacros.MODULE_FILE)).isEqualTo(newFile.systemIndependentPath)
}
public Test fun `rename module parent virtual dir`() {
@@ -135,9 +131,9 @@ class ModuleStoreRenameTest {
val newFile = File(parentVirtualDir.getPath(), module.getName() + ModuleFileType.DOT_DEFAULT_EXTENSION)
try {
assertThat(newFile, anExistingFile())
assertThat(newFile).isFile()
assertRename(module.getName(), oldFile)
assertThat(oldModuleNames, empty())
assertThat(oldModuleNames).isEmpty()
}
finally {
runInEdtAndWait { runWriteAction { parentVirtualDir.delete(this) } }
@@ -13,10 +13,7 @@ import com.intellij.openapi.util.io.parentSystemIndependentPath
import com.intellij.openapi.util.io.systemIndependentPath
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.testFramework.*
import org.hamcrest.CoreMatchers.equalTo
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.core.StringStartsWith.startsWith
import org.hamcrest.io.FileMatchers.anExistingFile
import org.assertj.core.api.Assertions.assertThat
import org.junit.ClassRule
import org.junit.Rule
import org.junit.Test
@@ -56,18 +53,17 @@ import java.io.File
projectRule.project.runInStoreLoadMode {
moduleFile.loadModule().useAndDispose {
assertThat(getOptionValue("foo"), equalTo("bar"))
assertThat(getOptionValue("foo")).isEqualTo("bar")
setOption("foo", "not bar")
saveStore()
}
moduleFile.loadModule().useAndDispose {
assertThat(getOptionValue("foo"), equalTo("not bar"))
assertThat(getOptionValue("foo")).isEqualTo("not bar")
setOption("foo", "not bar")
saveStore()
}
}
}
@@ -79,13 +75,13 @@ import java.io.File
moduleFile.createModule().useAndDispose {
ModuleRootModificationUtil.addContentRoot(this, moduleFile.parentSystemIndependentPath)
saveStore()
assertThat(moduleFile, anExistingFile())
assertThat(moduleFile.readText(), startsWith("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\">"))
assertThat(moduleFile).isFile()
assertThat(moduleFile.readText()).startsWith("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\">")
ClasspathStorage.setStorageType(ModuleRootManager.getInstance(this), "eclipse")
saveStore()
assertThat(moduleFile.readText(), equalTo("""<?xml version="1.0" encoding="UTF-8"?>
<module classpath="eclipse" classpath-dir="$MODULE_DIR" type="JAVA_MODULE" version="4" />"""))
assertThat(moduleFile).hasContent("""<?xml version="1.0" encoding="UTF-8"?>
<module classpath="eclipse" classpath-dir="$MODULE_DIR" type="JAVA_MODULE" version="4" />""")
}
}
}
@@ -28,10 +28,7 @@ import com.intellij.testFramework.ProjectRule
import com.intellij.testFramework.RuleChain
import com.intellij.testFramework.TemporaryDirectory
import com.intellij.testFramework.runInEdtAndWait
import org.hamcrest.CoreMatchers.equalTo
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.core.StringStartsWith.startsWith
import org.hamcrest.io.FileMatchers.anExistingFile
import org.assertj.core.api.Assertions.assertThat
import org.intellij.lang.annotations.Language
import org.junit.ClassRule
import org.junit.Rule
@@ -115,7 +112,7 @@ class ProjectStoreTest {
project.getBaseDir().refresh(false, true)
(ProjectManager.getInstance() as StoreAwareProjectManager).flushChangedAlarm()
assertThat(testComponent.getState(), equalTo(TestState("newValue")))
assertThat(testComponent.getState()).isEqualTo(TestState("newValue"))
}
}
@@ -128,16 +125,16 @@ class ProjectStoreTest {
private fun test(project: Project): TestComponent {
val testComponent = TestComponent()
project.stateStore.initComponent(testComponent, true)
assertThat(testComponent.getState(), equalTo(TestState("customValue")))
assertThat(testComponent.getState()).isEqualTo(TestState("customValue"))
testComponent.getState()!!.value = "foo"
project.saveStore()
val file = File(project.stateStore.getStateStorageManager().expandMacros(StoragePathMacros.PROJECT_FILE))
assertThat(file, anExistingFile())
assertThat(file).isFile()
// test exact string - xml prolog, line separators, indentation and so on must be exactly the same
// todo get rid of default component states here
assertThat(file.readText(), startsWith(iprFileContent.replace("customValue", "foo").replace("</project>", "")))
assertThat(file.readText()).startsWith(iprFileContent.replace("customValue", "foo").replace("</project>", ""))
return testComponent
}
@@ -34,14 +34,7 @@ import com.intellij.util.xmlb.annotations.Attribute
import com.intellij.util.xmlb.annotations.Tag
import com.intellij.util.xmlb.annotations.Transient
import gnu.trove.THashMap
import org.hamcrest.CoreMatchers.equalTo
import org.hamcrest.CoreMatchers.not
import org.hamcrest.CoreMatchers.notNullValue
import org.hamcrest.CoreMatchers.sameInstance
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.collection.IsMapContaining.hasKey
import org.hamcrest.io.FileMatchers.anExistingDirectory
import org.hamcrest.io.FileMatchers.anExistingFile
import org.assertj.core.api.Assertions.assertThat
import org.jdom.Element
import org.junit.ClassRule
import org.junit.Rule
@@ -90,8 +83,7 @@ class SchemeManagerTest {
val manager = createAndLoad("options1")
val scheme = manager.findSchemeByName("first")
assertThat(scheme, notNullValue())
assert(scheme != null)
assertThat(scheme).isNotNull()
scheme!!.setName("renamed")
manager.save()
@@ -102,11 +94,11 @@ class SchemeManagerTest {
val manager = createAndLoad("options1")
val first = manager.findSchemeByName("first")
assertThat(first, notNullValue())
assertThat(first).isNotNull()
assert(first != null)
first!!.setName("2")
val second = manager.findSchemeByName("second")
assertThat(second, notNullValue())
assertThat(second).isNotNull()
assert(second != null)
second!!.setName("1")
manager.save()
@@ -118,7 +110,7 @@ class SchemeManagerTest {
val manager = createAndLoad("options1")
val firstScheme = manager.findSchemeByName("first")
assertThat(firstScheme, notNullValue())
assertThat(firstScheme).isNotNull()
assert(firstScheme != null)
firstScheme!!.setName("first_renamed")
manager.save()
@@ -137,7 +129,7 @@ class SchemeManagerTest {
public Test fun testDeleteAndCreateSchemeWithTheSameName() {
val manager = createAndLoad("options1")
val firstScheme = manager.findSchemeByName("first")
assertThat(firstScheme, notNullValue())
assertThat(firstScheme).isNotNull()
manager.removeScheme(firstScheme!!)
manager.addScheme(TestScheme("first"))
@@ -150,7 +142,7 @@ class SchemeManagerTest {
val scheme = TestScheme("first")
manager.addNewScheme(scheme, false)
assertThat("first2", equalTo(scheme.getName()))
assertThat("first2").isEqualTo(scheme.getName())
}
fun TestScheme.save(file: File) {
@@ -170,43 +162,42 @@ class SchemeManagerTest {
override fun getSchemeExtension() = ".icls"
}, RoamingType.PER_USER, null, dir)
schemesManager.loadSchemes()
assertThat(schemesManager.getAllSchemes(), equalTo(listOf(scheme)))
assertThat(schemesManager.getAllSchemes()).containsOnly(scheme)
assertThat(File(dir, "1.icls"), anExistingFile())
assertThat(File(dir, "1.xml"), anExistingFile())
assertThat(File(dir, "1.icls")).isFile()
assertThat(File(dir, "1.xml")).isFile()
scheme.data = "newTrue"
schemesManager.save()
assertThat(File(dir, "1.icls"), anExistingFile())
assertThat(File(dir, "1.xml"), not(anExistingFile()))
assertThat(File(dir, "1.icls")).isFile()
assertThat(File(dir, "1.xml")).doesNotExist()
}
public Test fun setSchemes() {
val dir = tempDirManager.newDirectory()
val schemeManager = createSchemeManager(dir)
schemeManager.loadSchemes()
assertThat(schemeManager.getAllSchemes().isEmpty(), equalTo(true))
assertThat(schemeManager.getAllSchemes()).isEmpty()
val scheme = TestScheme("s1")
schemeManager.setSchemes(listOf(scheme))
val schemes = schemeManager.getAllSchemes()
assertThat(schemes.size(), equalTo(1))
assertThat(schemes.get(0), sameInstance(scheme))
assertThat(schemes).containsOnly(scheme)
assertThat(File(dir, "s1.xml"), not(anExistingFile()))
assertThat(File(dir, "s1.xml")).doesNotExist()
scheme.data = "newTrue"
schemeManager.save()
assertThat(File(dir, "s1.xml"), anExistingFile())
assertThat(File(dir, "s1.xml")).isFile()
schemeManager.setSchemes(emptyList())
schemeManager.save()
assertThat(dir, not(anExistingFile()))
assertThat(dir).doesNotExist()
}
public Test fun `save only if scheme differs from bundled`() {
@@ -216,35 +207,31 @@ class SchemeManagerTest {
val bundledPath = "/bundledSchemes/default"
schemeManager.loadBundledScheme(bundledPath, this, converter)
var schemes = schemeManager.getAllSchemes()
assertThat(schemes.size(), equalTo(1))
val customScheme = TestScheme("default")
assertThat(schemes.get(0), equalTo(customScheme))
assertThat(schemes).containsOnly(customScheme)
schemeManager.save()
assertThat(dir, not(anExistingFile()))
assertThat(dir).doesNotExist()
schemeManager.save()
schemeManager.setSchemes(listOf(customScheme))
assertThat(dir, not(anExistingFile()))
assertThat(dir).doesNotExist()
schemes = schemeManager.getAllSchemes()
assertThat(schemes.size(), equalTo(1))
assertThat(schemes.get(0), sameInstance(customScheme))
assertThat(schemes).containsOnly(customScheme)
customScheme.data = "foo"
schemeManager.save()
val schemeFile = File(dir, "default.xml")
assertThat(schemeFile, anExistingFile())
assertThat(File(dir, "default.xml")).isFile()
schemeManager = createSchemeManager(dir)
schemeManager.loadBundledScheme(bundledPath, this, converter)
schemeManager.loadSchemes()
schemes = schemeManager.getAllSchemes()
assertThat(schemes.get(0), equalTo(customScheme))
assertThat(schemes).containsOnly(customScheme)
}
public Test fun `don't remove dir if no schemes but at least one non-hidden file exists`() {
val dir = tempDirManager.newDirectory()
val schemeManager = createSchemeManager(dir)
@@ -255,7 +242,7 @@ class SchemeManagerTest {
schemeManager.save()
val schemeFile = File(dir, "s1.xml")
assertThat(schemeFile.exists(), equalTo(true))
assertThat(schemeFile).isFile()
schemeManager.setSchemes(emptyList())
@@ -263,8 +250,8 @@ class SchemeManagerTest {
schemeManager.save()
assertThat(schemeFile.exists(), equalTo(false))
assertThat(dir.exists(), equalTo(true))
assertThat(schemeFile).doesNotExist()
assertThat(dir).isDirectory()
}
public Test fun `remove empty directory only if some file was deleted`() {
@@ -272,45 +259,44 @@ class SchemeManagerTest {
val schemeManager = createSchemeManager(dir)
schemeManager.loadSchemes()
assertThat(dir.mkdirs(), equalTo(true))
assertThat(dir.mkdirs()).isTrue()
schemeManager.save()
assertThat(dir, anExistingDirectory())
assertThat(dir).isDirectory()
schemeManager.addScheme(TestScheme("test"))
schemeManager.save()
assertThat(dir, anExistingDirectory())
assertThat(dir).isDirectory()
schemeManager.setSchemes(emptyList())
schemeManager.save()
assertThat(dir, not(anExistingDirectory()))
assertThat(dir).doesNotExist()
}
public Test fun rename() {
val dir = tempDirManager.newDirectory()
val schemeManager = createSchemeManager(dir)
schemeManager.loadSchemes()
assertThat(schemeManager.getAllSchemes().isEmpty(), equalTo(true))
assertThat(schemeManager.getAllSchemes()).isEmpty()
val scheme = TestScheme("s1")
schemeManager.setSchemes(listOf(scheme))
val schemes = schemeManager.getAllSchemes()
assertThat(schemes.size(), equalTo(1))
assertThat(schemes.get(0), sameInstance(scheme))
assertThat(schemes).containsOnly(scheme)
assertThat(File(dir, "s1.xml").exists(), equalTo(false))
assertThat(File(dir, "s1.xml")).doesNotExist()
scheme.data = "newTrue"
schemeManager.save()
assertThat(File(dir, "s1.xml").exists(), equalTo(true))
assertThat(File(dir, "s1.xml")).isFile()
scheme.setName("s2")
schemeManager.save()
assertThat(File(dir, "s1.xml").exists(), equalTo(false))
assertThat(File(dir, "s2.xml").exists(), equalTo(true))
assertThat(File(dir, "s1.xml")).doesNotExist()
assertThat(File(dir, "s2.xml")).isFile()
}
public Test fun `path must not contains ROOT_CONFIG macro`() {
@@ -369,13 +355,13 @@ private fun checkSchemes(baseDir: File, expected: String, ignoreDeleted: Boolean
for (file in files) {
val fileName = FileUtil.getNameWithoutExtension(file)
if ("--deleted" == fileName && ignoreDeleted) {
assertThat<Map<String, String>>(fileToSchemeMap, hasKey(fileName))
assertThat(fileToSchemeMap).containsKey(fileName)
}
}
}
for (file in fileToSchemeMap.keySet()) {
assertThat(File(baseDir, "$file.xml").isFile(), equalTo(true))
assertThat(File(baseDir, "$file.xml")).isFile()
}
if (files != null) {
@@ -383,7 +369,7 @@ private fun checkSchemes(baseDir: File, expected: String, ignoreDeleted: Boolean
for (file in files) {
val fileName = FileUtil.getNameWithoutExtension(file)
val scheme = schemesProcessor.readScheme(JDOMUtil.load(file), true)
assertThat(fileToSchemeMap.get(fileName), equalTo(scheme!!.getName()))
assertThat(fileToSchemeMap.get(fileName)).isEqualTo(scheme!!.getName())
}
}
}
@@ -29,6 +29,7 @@ import java.lang.ref.SoftReference;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
import java.lang.reflect.WildcardType;
import java.util.Collection;
import java.util.Date;
import java.util.List;
@@ -88,6 +89,9 @@ class XmlSerializerImpl {
Type bound = ((TypeVariable)type).getBounds()[0];
return bound instanceof Class ? (Class)bound : (Class<?>)((ParameterizedType)bound).getRawType();
}
else if (type instanceof WildcardType) {
return (Class<?>)((WildcardType) type).getUpperBounds()[0];
}
else {
return (Class<?>)((ParameterizedType)type).getRawType();
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+2
View File
@@ -24,6 +24,8 @@
<orderEntry type="library" exported="" name="ForkJoin" level="project" />
<orderEntry type="library" exported="" name="Snappy-Java" level="project" />
<orderEntry type="library" name="imgscalr" level="project" />
<orderEntry type="library" scope="TEST" name="KotlinJavaRuntime" level="project" />
<orderEntry type="library" scope="TEST" name="assertJ" level="project" />
</component>
<component name="copyright">
<Base>