Merge pull request #19187 from 2beaucoup/generic-csv-form-fields

!htp #19185 generic CSV form field unmarshallers
This commit is contained in:
Konrad Malawski 2015-12-16 16:08:40 +01:00
commit d7b45e0fc3
4 changed files with 45 additions and 123 deletions

View file

@ -192,13 +192,16 @@ class ParameterDirectivesExamplesSpec extends RoutingSpec with PredefinedFromStr
responseAs[String] shouldEqual "The parameters are x = '1', x = '2'"
}
}
"csv string sequence" in {
"csv" in {
val route =
parameter("names".as(CsvStringSeq)) { names =>
parameter("names".as(CsvSeq[String])) { names =>
complete(s"The parameters are ${names.mkString(", ")}")
}
// tests:
Get("/?names=") ~> route ~> check {
responseAs[String] shouldEqual "The parameters are "
}
Get("/?names=Caplin") ~> route ~> check {
responseAs[String] shouldEqual "The parameters are Caplin"
}
@ -206,48 +209,4 @@ 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}"
}
}
}

View file

@ -94,8 +94,8 @@ Repeated parameter
.. includecode2:: ../../../../code/docs/http/scaladsl/server/directives/ParameterDirectivesExamplesSpec.scala
:snippet: repeated
Csv valued parameter
^^^^^^^^^^^^^^^^^^^^
CSV parameter
^^^^^^^^^^^^^
.. includecode2:: ../../../../code/docs/http/scaladsl/server/directives/ParameterDirectivesExamplesSpec.scala
:snippet: csv