mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-17 07:20:53 +07:00
54 lines
2.0 KiB
Kotlin
54 lines
2.0 KiB
Kotlin
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
|
package com.intellij.configurationStore
|
|
|
|
import com.intellij.openapi.components.RoamingType
|
|
import com.intellij.openapi.util.io.FileUtil
|
|
import com.intellij.testFramework.ProjectRule
|
|
import org.assertj.core.api.Assertions.assertThat
|
|
import org.assertj.core.api.Assertions.assertThatThrownBy
|
|
import org.junit.Before
|
|
import org.junit.ClassRule
|
|
import org.junit.Test
|
|
import java.nio.file.Path
|
|
import kotlin.properties.Delegates
|
|
|
|
class StorageManagerTest {
|
|
companion object {
|
|
private const val MACRO = "\$MACRO1$"
|
|
|
|
@JvmField @ClassRule val projectRule = ProjectRule()
|
|
}
|
|
|
|
private var storageManager: StateStorageManagerImpl by Delegates.notNull()
|
|
|
|
@Before
|
|
fun setUp() {
|
|
storageManager = StateStorageManagerImpl("foo", componentManager = null, controller = null)
|
|
storageManager.setMacros(listOf(Macro(MACRO, Path.of("/temp/m1"))))
|
|
}
|
|
|
|
@Test
|
|
fun createFileStateStorageMacroSubstituted() {
|
|
assertThat(storageManager.getOrCreateStorage("$MACRO/test.xml", RoamingType.DEFAULT)).isNotNull()
|
|
}
|
|
|
|
@Test
|
|
fun `collapse macro`() {
|
|
assertThat(storageManager.collapseMacro("/temp/m1/foo")).isEqualTo("$MACRO/foo")
|
|
assertThat(storageManager.collapseMacro("\\temp\\m1\\foo")).isEqualTo("/temp/m1/foo")
|
|
}
|
|
|
|
@Test
|
|
fun `create storage assertion thrown when unknown macro`() {
|
|
assertThatThrownBy { storageManager.getOrCreateStorage("\$UNKNOWN_MACRO$/test.xml", RoamingType.DEFAULT) }
|
|
.isInstanceOf(IllegalStateException::class.java)
|
|
.hasMessage("Cannot resolve \$UNKNOWN_MACRO\$/test.xml in [Macro(key=\$MACRO1\$, value=${FileUtil.toSystemDependentName("/temp/m1")})]")
|
|
}
|
|
|
|
@Test
|
|
fun `create file storage macro substituted when expansion has$`() {
|
|
storageManager.setMacros(listOf(Macro("\$DOLLAR_MACRO$", Path.of("/temp/d$"))))
|
|
assertThat(storageManager.getOrCreateStorage("\$DOLLAR_MACRO$/test.xml", RoamingType.DEFAULT)).isNotNull()
|
|
}
|
|
}
|