Fix a bug where no tags would return an empty tag while searching

This commit is contained in:
Hubert Van De Walle 2020-08-21 20:38:59 +02:00
parent 381d935875
commit 2c967ebd8c
2 changed files with 27 additions and 1 deletions

View File

@ -22,5 +22,5 @@ internal object UuidFieldConverter : FieldConverter<UUID> {
internal object TagsFieldConverter : FieldConverter<List<String>> {
override fun toDoc(value: List<String>): String = value.joinToString(" ")
override fun fromDoc(value: String): List<String> = value.split(" ")
override fun fromDoc(value: String): List<String> = value.split(" ").filter(String::isNotEmpty)
}

View File

@ -0,0 +1,26 @@
package be.simplenotes.search
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.MethodSource
import java.util.stream.Stream
internal class TagsFieldConverterTest {
@Suppress("unused")
fun tags(): Stream<List<String>> = Stream.of(
listOf("example"),
listOf("example", "second"),
listOf(),
)
@ParameterizedTest
@MethodSource("tags")
fun `tags should stay the same`(input: List<String>) {
val doc = TagsFieldConverter.toDoc(input)
val out = TagsFieldConverter.fromDoc(doc)
assertThat(out)
.hasSameSizeAs(input)
.containsExactlyInAnyOrderElementsOf(input)
}
}