kotlin-css/src/commonTest/kotlin/kotlinx/css/CssBuilderEquality.kt (50 lines of code) (raw):

package kotlinx.css import kotlin.test.Test import kotlin.test.assertEquals class CssBuilderEquality { private fun CssBuilder.addDeclarations() { position = Position.relative display = Display.inlineBlock width = 16.px height = 16.px } @Test fun testBuildersEquality() { val first = CssBuilder().apply { addDeclarations() } val second = CssBuilder().apply { addDeclarations() } assertEquals(first, second) } @Test fun testBuildNotChangeEquality() { val first = CssBuilder().apply { specific { addDeclarations() } color = Color.blue specific { color = Color.red } } val second = CssBuilder().apply { specific { addDeclarations() } color = Color.blue specific { color = Color.red } } first.toString() assertEquals(first, second) } @Test fun testDeepBuildersEquality() { val first = CssBuilder().apply { addDeclarations() specific { addDeclarations() ancestorHover { addDeclarations() } } } val second = CssBuilder().apply { addDeclarations() specific { addDeclarations() ancestorHover { addDeclarations() } } } assertEquals(first, second) } }