All Downloads are FREE. Search and download functionalities are using the official Maven repository.

in.specmatic.core.pattern.Examples.kt Maven / Gradle / Ivy

Go to download

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 })

    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy