project configuration dsl: state reader

GitOrigin-RevId: d477fde05a6722e60c277ee53eced3cea6b41772
This commit is contained in:
Vladimir Krivosheev
2019-05-05 08:54:40 +02:00
committed by intellij-monorepo-bot
parent 3590278d34
commit bb260c8522
26 changed files with 300 additions and 126 deletions

View File

@@ -0,0 +1,40 @@
package com.intellij.configurationScript
import com.intellij.configurationScript.providers.readComponentConfiguration
import com.intellij.openapi.components.BaseState
import com.intellij.testFramework.ProjectRule
import com.intellij.testFramework.assertions.Assertions.assertThat
import org.intellij.lang.annotations.Language
import org.junit.ClassRule
import org.junit.Test
class ComponentStateTest {
companion object {
@JvmField
@ClassRule
val projectRule = ProjectRule()
}
@Test
fun read() {
val result = doReadComponentConfiguration("versionControl.git", """
versionControl:
git:
updateMethod: rebase
""")
assertThat(result!!.updateMethod).isEqualTo(UpdateMethod.REBASE)
}
}
@Suppress("SameParameterValue")
private fun doReadComponentConfiguration(namePath: String, @Language("YAML") data: String): TestState? {
return readComponentConfiguration(findValueNodeByPath(namePath, doRead(data.trimIndent().reader())!!)!!, TestState::class.java)
}
private class TestState : BaseState() {
var updateMethod by enum(UpdateMethod.BRANCH_DEFAULT)
}
private enum class UpdateMethod {
BRANCH_DEFAULT, MERGE, REBASE
}