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

io.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.

There is a newer version: 2.0.37
Show newest version
package io.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 = examplesList.map { examplesFrom(it) }

        fun examplesFrom(examples: Examples): io.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