[Workspace Model] [IJPL-583] Cleanup details before merge

GitOrigin-RevId: 314fb97916ee920e62176067d78aec3ae861a0b5
This commit is contained in:
Alex Plate
2024-03-25 13:27:42 +00:00
committed by intellij-monorepo-bot
parent ca8622cf86
commit 67ca6c0737
5 changed files with 7 additions and 56 deletions
@@ -231,7 +231,6 @@ internal class MutableEntityStorageImpl(
entityToAdd.applyToBuilder(this)
entityToAdd.changedProperty.clear()
// TODO Do not re-request entities
return@addMeasuredTime this.entityDataByIdOrDie(entityToAdd.id).createEntity(this) as T
}
finally {
@@ -2,12 +2,9 @@
package com.intellij.platform.workspace.storage.tests
import com.intellij.platform.workspace.storage.MutableEntityStorage
import com.intellij.platform.workspace.storage.impl.ModifiableWorkspaceEntityBase
import com.intellij.platform.workspace.storage.impl.asBase
import com.intellij.platform.workspace.storage.impl.assertConsistency
import com.intellij.platform.workspace.storage.testEntities.entities.*
import com.intellij.testFramework.UsefulTestCase.assertOneElement
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Test
import kotlin.test.*
@@ -216,42 +213,6 @@ class AbstractEntitiesTest {
assertNotNull(builder.entities(HeadAbstractionEntity::class.java).single { it.data == "Info2" }.child)
}
@Test
@Disabled("Change of behaviour after IJPL-583")
// Deprecation note: Now builder.entities returns entitiesImpls instead of builders that are modified
fun `entity changes visible in mutable storage`() {
var builder = MutableEntityStorage.create()
val entity = ParentEntity("ParentData", MySource)
builder.addEntity(entity)
builder = MutableEntityStorage.from(builder.toSnapshot())
val resultEntity = builder.entities(ParentEntity::class.java).single()
resultEntity.parentData
var firstEntityData = (entity as ModifiableWorkspaceEntityBase<*, *>).getEntityData()
var secondEntityData = resultEntity.asBase().getData()
assertSame(firstEntityData, secondEntityData)
val originalEntityData = firstEntityData
builder.modifyEntity(resultEntity) {
this.parentData = "NewParentData"
}
val anotherResult = builder.entities(ParentEntity::class.java).single()
assertEquals(resultEntity.parentData, anotherResult.parentData)
firstEntityData = (resultEntity as ModifiableWorkspaceEntityBase<*, *>).getEntityData()
secondEntityData = (anotherResult as ModifiableWorkspaceEntityBase<*, *>).getEntityData()
assertSame(firstEntityData, secondEntityData)
assertNotSame(firstEntityData, originalEntityData)
builder.modifyEntity(anotherResult) {
this.parentData = "AnotherParentData"
}
val oneMoreResult = builder.entities(ParentEntity::class.java).single()
assertEquals(resultEntity.parentData, anotherResult.parentData)
assertEquals(oneMoreResult.parentData, anotherResult.parentData)
assertEquals(oneMoreResult.parentData, resultEntity.parentData)
}
@Test
fun `add entity with child then steal this child with different entity`() {
val builder = MutableEntityStorage.create()
@@ -4,7 +4,6 @@ package com.intellij.platform.workspace.storage.tests
import com.intellij.platform.workspace.storage.MutableEntityStorage
import com.intellij.platform.workspace.storage.testEntities.entities.*
import com.intellij.platform.workspace.storage.toBuilder
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
import kotlin.test.assertEquals
@@ -47,20 +46,6 @@ class MutableStorageTest {
assertEquals("ParentData", entityTwoBuilder.data)
}
@Test
@Disabled("Change of behaviour after IJPL-583")
fun `check exception if request data from entity which was removed`() {
val builder = MutableEntityStorage.create()
val sampleEntity = SampleEntity2("ParentData", false, MySource)
builder.addEntity(sampleEntity)
val newBuilder = MutableEntityStorage.from(builder.toSnapshot())
val entityFromStore = newBuilder.entities(SampleEntity2::class.java).single()
newBuilder.removeEntity(entityFromStore)
assertThrows<IllegalStateException> { entityFromStore.data }
assertEquals("ParentData", sampleEntity.data)
}
@Test
fun `check parent updates`() {
val builder = MutableEntityStorage.create()
@@ -37,11 +37,12 @@ class SampleTest {
val entity = builder addEntity SampleEntity2("data", true, MySource)
builder.toSnapshot()
builder.modifyEntity(entity) {
val updatedEntity = builder.modifyEntity(entity) {
this.data = "data2"
}
assertEquals("data", entity.data)
assertEquals("data2", updatedEntity.data)
assertEquals("data2", builder.entities(SampleEntity2::class.java).single().data)
}
@@ -12,6 +12,7 @@ import com.intellij.platform.workspace.storage.impl.serialization.EntityStorageS
import com.intellij.platform.workspace.storage.url.VirtualFileUrlManager
import com.intellij.workspaceModel.ide.impl.WorkspaceModelCacheSerializer.PluginAwareEntityTypesResolver
import junit.framework.TestCase.*
import org.jetbrains.annotations.ApiStatus
import org.junit.Assert
import java.nio.file.Files
import java.util.function.BiPredicate
@@ -174,6 +175,10 @@ internal fun <T : WorkspaceEntity> T.from(storage: EntityStorage): T {
return this.createPointer<T>().resolve(storage)!!
}
@ApiStatus.Obsolete
/**
* This function was created to simplify IJPL-583 refactoring. It should not be used in code anymore
*/
internal fun <T: WorkspaceEntity.Builder<M>, M: WorkspaceEntity> M.builderFrom(from: MutableEntityStorage): T {
val pointer = this.createPointer<M>()
val entityFromBuilder = pointer.resolve(from)!!