in.specmatic.core.pattern.Examples.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of specmatic-core Show documentation
Show all versions of specmatic-core Show documentation
Turn your contracts into executable specifications. Contract Driven Development - Collaboratively Design & Independently Deploy MicroServices & MicroFrontends.
Deprecation Notice for group ID "in.specmatic"
******************************************************************************************************
Updates for "specmatic-core" will no longer be available under the deprecated group ID "in.specmatic".
Please update your dependencies to use the new group ID "io.specmatic".
******************************************************************************************************
The newest version!
package `in`.specmatic.core.pattern
import io.cucumber.messages.types.Examples
import io.cucumber.messages.types.TableRow
import java.util.*
data class Examples(val columnNames: List = emptyList(), val rows: List = listOf()) {
val isEmpty: Boolean
get() = rows.isEmpty()
companion object {
fun examplesFrom(examplesList: List): List<`in`.specmatic.core.pattern.Examples> = examplesList.map { examplesFrom(it) }
fun examplesFrom(examples: Examples): `in`.specmatic.core.pattern.Examples {
val columns = getColumnNames(examples)
val rows = examples.tableBody.map { Row(columns, getValues(it)) }
return Examples(columns, rows)
}
private fun getColumnNames(examples: Examples) = getValues(examples.tableHeader)
private fun getValues(row: TableRow): ArrayList = ArrayList(row.cells.map { it.value })
}
}