package solutions.bitbadger.documents import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.assertThrows import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertNull /** * Unit tests for the `Parameter` class */ @DisplayName("Kotlin | Parameter") class ParameterTest { @Test @DisplayName("Construction with colon-prefixed name") fun ctorWithColon() { val p = Parameter(":test", ParameterType.STRING, "ABC") assertEquals(":test", p.name, "Parameter name was incorrect") assertEquals(ParameterType.STRING, p.type, "Parameter type was incorrect") assertEquals("ABC", p.value, "Parameter value was incorrect") } @Test @DisplayName("Construction with at-sign-prefixed name") fun ctorWithAtSign() { val p = Parameter("@yo", ParameterType.NUMBER, null) assertEquals("@yo", p.name, "Parameter name was incorrect") assertEquals(ParameterType.NUMBER, p.type, "Parameter type was incorrect") assertNull(p.value, "Parameter value was incorrect") } @Test @DisplayName("Construction fails with incorrect prefix") fun ctorFailsForPrefix() { assertThrows { Parameter("it", ParameterType.JSON, "") } } }