Skip to content

Commit fb61cc4

Browse files
authored
Merge pull request #64 from cucumber/add-tests-for-parameter-types
Add more tests to parameter types
2 parents 9ec2f94 + ed93525 commit fb61cc4

File tree

2 files changed

+38
-2
lines changed

2 files changed

+38
-2
lines changed

scala/sources/src/test/resources/tests/parametertypes/ParameterTypes.feature

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,26 @@
11
Feature: As Cucumber Scala, I want to handle ParameterType definitions
22

33
Scenario: define parameter type with single argument
4-
Given string builder parameter, defined by lambda
4+
Given "string builder" parameter, defined by lambda
55

66
Scenario: define parameter type with two arguments
77
Given balloon coordinates 123,456, defined by lambda
88

99
Scenario: define parameter type with three arguments
1010
Given kebab made from mushroom, meat and veg, defined by lambda
1111

12+
Scenario: define parameter type with parameterized type, string undefined
13+
Given an optional string parameter value "" undefined
14+
15+
Scenario: define parameter type with parameterized type, string defined
16+
Given an optional string parameter value "toto" defined
17+
18+
Scenario: define parameter type with parameterized type, int undefined
19+
Given an optional int parameter value undefined
20+
21+
Scenario: define parameter type with parameterized type, int defined
22+
Given an optional int parameter value 5 defined
23+
1224
Scenario: define default parameter transformer
1325
Given kebab made from anonymous meat, defined by lambda
1426

scala/sources/src/test/scala/tests/parametertypes/ParameterTypesSteps.scala

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ case class Point(x: Int, y: Int)
1111

1212
class ParameterTypesSteps extends ScalaDsl with EN {
1313

14-
ParameterType("string-builder", ".*") { str =>
14+
ParameterType("string-builder", "\"(.*)\"") { str =>
1515
new StringBuilder(str)
1616
}
1717

@@ -23,6 +23,14 @@ class ParameterTypesSteps extends ScalaDsl with EN {
2323
s"-$x-$y-$z-"
2424
}
2525

26+
ParameterType("optionalint", """\s?(\d*)\s?""") { str =>
27+
Option(str).filter(_.nonEmpty).map(_.toInt)
28+
}
29+
30+
ParameterType("optionalstring", "(.*)") { str =>
31+
Option(str).filter(_.nonEmpty)
32+
}
33+
2634
DefaultParameterTransformer { (fromValue, toValueType) =>
2735
new StringBuilder().append(fromValue).append('-').append(toValueType)
2836
}
@@ -75,4 +83,20 @@ class ParameterTypesSteps extends ScalaDsl with EN {
7583
assert(table(1).toString() == "Map(dinner -> )-class scala.collection.mutable.StringBuilder")
7684
}
7785

86+
Given("""an optional string parameter value "{optionalstring}" undefined""") { value: Option[String] =>
87+
assert(value.isEmpty)
88+
}
89+
90+
Given("""an optional string parameter value "{optionalstring}" defined""") { value: Option[String] =>
91+
assert(value.contains("toto"))
92+
}
93+
94+
Given("""an optional int parameter value{optionalint}undefined""") { value: Option[Int] =>
95+
assert(value.isEmpty)
96+
}
97+
98+
Given("""an optional int parameter value{optionalint}defined""") { value: Option[Int] =>
99+
assert(value.contains(5))
100+
}
101+
78102
}

0 commit comments

Comments
 (0)