diff --git a/CHANGELOG.md b/CHANGELOG.md index 8bc120b..b1d9179 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ See also the [CHANGELOG](https://github.com/cucumber/cucumber-jvm/blob/master/CH ### Changed +- [Internal] Implement `HookDefinition.getHookType` and unimplement `Location.getLocation`. No impact expected for users. + ### Deprecated ### Removed diff --git a/cucumber-scala/src/main/scala/io/cucumber/scala/HookDsl.scala b/cucumber-scala/src/main/scala/io/cucumber/scala/HookDsl.scala index 722a4aa..332f428 100644 --- a/cucumber-scala/src/main/scala/io/cucumber/scala/HookDsl.scala +++ b/cucumber-scala/src/main/scala/io/cucumber/scala/HookDsl.scala @@ -184,7 +184,8 @@ private[scala] trait HookDsl extends BaseScalaDsl { } def apply(body: Scenario => Unit): Unit = { - val details = ScalaHookDetails(tagExpression, order, body, frame) + val details = + ScalaHookDetails(tagExpression, order, body, frame, hookType) registry.registerDynamicHook(hookType, details) } diff --git a/cucumber-scala/src/main/scala/io/cucumber/scala/ScalaHookDefinition.scala b/cucumber-scala/src/main/scala/io/cucumber/scala/ScalaHookDefinition.scala index f693f4d..4803483 100644 --- a/cucumber-scala/src/main/scala/io/cucumber/scala/ScalaHookDefinition.scala +++ b/cucumber-scala/src/main/scala/io/cucumber/scala/ScalaHookDefinition.scala @@ -1,7 +1,9 @@ package io.cucumber.scala import io.cucumber.core.backend.{HookDefinition, ScenarioScoped, TestCaseState} +import io.cucumber.scala.ScopedHookType.{AFTER, AFTER_STEP, BEFORE, BEFORE_STEP} +import java.util.Optional import scala.annotation.nowarn trait ScalaHookDefinition extends HookDefinition with AbstractGlueDefinition { @@ -18,6 +20,16 @@ trait ScalaHookDefinition extends HookDefinition with AbstractGlueDefinition { override def getOrder: Int = hookDetails.order + override def getHookType: Optional[HookDefinition.HookType] = { + val javaHookType = hookDetails.hookType match { + case BEFORE => HookDefinition.HookType.BEFORE + case AFTER => HookDefinition.HookType.AFTER + case BEFORE_STEP => HookDefinition.HookType.BEFORE_STEP + case AFTER_STEP => HookDefinition.HookType.AFTER_STEP + } + Optional.of(javaHookType) + } + } object ScalaHookDefinition { diff --git a/cucumber-scala/src/main/scala/io/cucumber/scala/ScalaHookDetails.scala b/cucumber-scala/src/main/scala/io/cucumber/scala/ScalaHookDetails.scala index de368de..6b84799 100644 --- a/cucumber-scala/src/main/scala/io/cucumber/scala/ScalaHookDetails.scala +++ b/cucumber-scala/src/main/scala/io/cucumber/scala/ScalaHookDetails.scala @@ -6,5 +6,6 @@ case class ScalaHookDetails( tagExpression: String, order: Int, body: HookDefinitionBody, - stackTraceElement: StackTraceElement + stackTraceElement: StackTraceElement, + hookType: ScopedHookType ) diff --git a/cucumber-scala/src/main/scala/io/cucumber/scala/ScalaStepDefinition.scala b/cucumber-scala/src/main/scala/io/cucumber/scala/ScalaStepDefinition.scala index 8225411..700d6af 100644 --- a/cucumber-scala/src/main/scala/io/cucumber/scala/ScalaStepDefinition.scala +++ b/cucumber-scala/src/main/scala/io/cucumber/scala/ScalaStepDefinition.scala @@ -35,10 +35,6 @@ trait ScalaStepDefinition extends StepDefinition with AbstractGlueDefinition { override def getPattern: String = stepDetails.pattern - // Easier to just print out fileName and lineNumber - override def getLocation(): String = - stepDetails.frame.getFileName + ":" + stepDetails.frame.getLineNumber - } object ScalaStepDefinition { diff --git a/cucumber-scala/src/test/scala-2/io/cucumber/scala/ScalaDslStepsTest.scala b/cucumber-scala/src/test/scala-2/io/cucumber/scala/ScalaDslStepsTest.scala index f28a304..a8698e0 100644 --- a/cucumber-scala/src/test/scala-2/io/cucumber/scala/ScalaDslStepsTest.scala +++ b/cucumber-scala/src/test/scala-2/io/cucumber/scala/ScalaDslStepsTest.scala @@ -271,7 +271,7 @@ class ScalaDslStepsTest { check: => Boolean ): Unit = { assertEquals(pattern, stepDefinition.getPattern) - assertEquals(location, stepDefinition.getLocation) + assertTrue(stepDefinition.getLocation.contains(location)) stepDefinition.execute(args) assertTrue(check) } diff --git a/cucumber-scala/src/test/scala-3/io/cucumber/scala/ScalaDslStepsTest.scala b/cucumber-scala/src/test/scala-3/io/cucumber/scala/ScalaDslStepsTest.scala index f6b5e07..14ac149 100644 --- a/cucumber-scala/src/test/scala-3/io/cucumber/scala/ScalaDslStepsTest.scala +++ b/cucumber-scala/src/test/scala-3/io/cucumber/scala/ScalaDslStepsTest.scala @@ -271,7 +271,7 @@ class ScalaDslStepsTest { check: => Boolean ): Unit = { assertEquals(pattern, stepDefinition.getPattern) - assertEquals(location, stepDefinition.getLocation) + assertTrue(stepDefinition.getLocation.contains(location)) stepDefinition.execute(args) assertTrue(check) }