
tech.harmonysoft.oss.cucumber.glue.CommonStepDefinitions.kt Maven / Gradle / Ivy
package tech.harmonysoft.oss.cucumber.glue
import io.cucumber.java.After
import io.cucumber.java.Before
import io.cucumber.java.Scenario
import io.cucumber.java.en.Given
import io.cucumber.java.en.Then
import jakarta.inject.Inject
import java.util.Optional
import java.util.concurrent.TimeUnit
import tech.harmonysoft.oss.test.TestAware
import tech.harmonysoft.oss.test.manager.CommonTestManager
class CommonStepDefinitions {
@Inject private lateinit var manager: CommonTestManager
@Inject private lateinit var callbacks: Optional>
@Before
fun setUp(scenario: Scenario) {
manager.setUp(scenario.name)
callbacks.ifPresent {
for (callback in it) {
callback.onTestStart()
}
}
}
@After
fun tearDown() {
callbacks.ifPresent {
for (callback in it) {
callback.onTestEnd()
}
}
}
@Given("^current time zone is set as ([^\\s]+)$")
fun setTimeZone(zoneId: String) {
manager.setTimeZone(zoneId)
}
@Given("^current time is set as ([^\\s]+)$")
fun setTime(time: String) {
manager.setTime(time)
}
@Given("^current date is set as ([^\\s]+)$")
fun setDate(date: String) {
manager.setDate(date)
}
@Given("^current date/time is set as ([^\\s]+) ([^\\s]+) ([^\\s]+)$")
fun setDateTimeZone(date: String, time: String, zone: String) {
manager.setDate(date)
manager.setTime(time)
manager.setTimeZone(zone)
}
@Given("^current time is set as ([^\\s]+) on ([^\\s]+)$")
fun setTimeOnDayOfWeek(rawTime: String, rawDayOfWeek: String) {
manager.setTimeOnDayOfWeek(rawTime, rawDayOfWeek)
}
@Given("^the application sleeps (\\d+) seconds$")
fun sleep(timeToSleepInSeconds: Long) {
Thread.sleep(TimeUnit.SECONDS.toMillis(timeToSleepInSeconds))
}
@Given("^the following text content with name '([^']+)' is prepared:$")
fun configureTextContent(name: String, data: String) {
manager.configureTextContent(name, data)
}
@Given("^meta-value <([^>]+)> is excluded from auto expansion$")
fun excludeMetaValueFromExpansion(metaValue: String) {
manager.excludeMetaValueFromExpansion(metaValue)
}
@Given("^dynamic key ([^\\s]+) is bound to value '([^']+)'$")
fun bindDynamicValue(key: String, value: String) {
manager.bindDynamicValue(key, value)
}
@Given("^current time is saved in key '([^']+)'$")
fun saveCurrentTime(key: String) {
manager.saveCurrentTime(key)
}
@Then("^dynamic key '([^']+)' should have value '([^']+)'$")
fun verifyDynamicValue(key: String, expected: String) {
manager.verifyDynamicValue(key, expected)
}
@Then("^dynamic key '([^']+)' is not set'$")
fun verifyDynamicValueIsNotSet(key: String) {
manager.verifyDynamicValueIsNotSet(key)
}
@Then("^at least (\\d+) ms is elapsed since the time anchored by '([^']+)'$")
fun verifyElapsedTime(expectedDurationMs: Long, startTimeKey: String) {
manager.verifyElapsedTime(expectedDurationMs, startTimeKey)
}
@Given("next test verification is expected to fail")
fun expectVerificationFailure() {
manager.expectVerificationFailure()
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy