feat: PatchOptions#nullify to nullify an option

This commit is contained in:
Sculas 2022-08-02 22:32:55 +02:00
parent 1b42f65d95
commit 371f0c4d0b
No known key found for this signature in database
GPG key ID: 1530BFF96D1EEB89
2 changed files with 17 additions and 0 deletions

View file

@ -42,6 +42,14 @@ class PatchOptions(vararg val options: PatchOption<*>) : Iterable<PatchOption<*>
opt.value = value
}
/**
* Sets the value of a [PatchOption] to `null`.
* @param key The key of the [PatchOption].
*/
fun nullify(key: String) {
get(key).value = null
}
override fun iterator() = options.iterator()
}

View file

@ -36,6 +36,15 @@ internal class PatchOptionsTest {
println(options["key1"].value)
}
@Test
fun `should be able to set value to null`() {
// Sadly, doing:
// > options["key1"] = null
// is not possible because Kotlin
// cannot reify the type "Nothing?".
options.nullify("key1")
}
@Test
fun `should fail because the option does not exist`() {
assertThrows<NoSuchOptionException> {