Merge pull request #19118 from Softwire/wip-18567-unmarshallers-for-csv-number-sequences

!htp #18567 Added unmarshallers for CSV integer sequences
This commit is contained in:
Roland Kuhn 2015-12-13 17:48:27 +01:00
commit 0f74a0e02b
3 changed files with 82 additions and 22 deletions

View file

@ -192,9 +192,9 @@ class ParameterDirectivesExamplesSpec extends RoutingSpec with PredefinedFromStr
responseAs[String] shouldEqual "The parameters are x = '1', x = '2'"
}
}
"csv" in {
"csv string sequence" in {
val route =
parameter("names".as(CsvString)) { names =>
parameter("names".as(CsvStringSeq)) { names =>
complete(s"The parameters are ${names.mkString(", ")}")
}
@ -206,4 +206,48 @@ class ParameterDirectivesExamplesSpec extends RoutingSpec with PredefinedFromStr
responseAs[String] shouldEqual "The parameters are Caplin, John"
}
}
"csv byte sequence" in {
val route =
parameter("numbers".as(CsvByteSeq)) { bytes =>
complete(s"The numbers are ${bytes.mkString(", ")}")
}
// tests:
Get(s"/?numbers=2,${Byte.MaxValue}") ~> route ~> check {
responseAs[String] shouldEqual s"The numbers are 2, ${Byte.MaxValue}"
}
}
"csv short sequence" in {
val route =
parameter("numbers".as(CsvShortSeq)) { shorts =>
complete(s"The numbers are ${shorts.mkString(", ")}")
}
// tests:
Get(s"/?numbers=2,${Short.MaxValue}") ~> route ~> check {
responseAs[String] shouldEqual s"The numbers are 2, ${Short.MaxValue}"
}
}
"csv int sequence" in {
val route =
parameter("numbers".as(CsvIntSeq)) { ints =>
complete(s"The numbers are ${ints.mkString(", ")}")
}
// tests:
Get(s"/?numbers=2,${Int.MaxValue}") ~> route ~> check {
responseAs[String] shouldEqual s"The numbers are 2, ${Int.MaxValue}"
}
}
"csv long sequence" in {
val route =
parameter("numbers".as(CsvLongSeq)) { longs =>
complete(s"The numbers are ${longs.mkString(", ")}")
}
// tests:
Get(s"/?numbers=2,${Long.MaxValue}") ~> route ~> check {
responseAs[String] shouldEqual s"The numbers are 2, ${Long.MaxValue}"
}
}
}