diff options
author | adamw <adam@warski.org> | 2017-11-14 11:11:30 +0100 |
---|---|---|
committer | adamw <adam@warski.org> | 2017-11-14 11:11:30 +0100 |
commit | 3e808474fa156760312228dff68fb05dccb48d7f (patch) | |
tree | 8b350bf4de2bdfbddc86c8608914e60030447fc7 /core | |
parent | ab753662bfd59be0266e121e091cef9d044ec847 (diff) | |
download | sttp-3e808474fa156760312228dff68fb05dccb48d7f.tar.gz sttp-3e808474fa156760312228dff68fb05dccb48d7f.tar.bz2 sttp-3e808474fa156760312228dff68fb05dccb48d7f.zip |
Add a test to convert a java URI to Uri & improve implementation
Diffstat (limited to 'core')
-rw-r--r-- | core/src/main/scala/com/softwaremill/sttp/Uri.scala | 10 | ||||
-rw-r--r-- | core/src/test/scala/com/softwaremill/sttp/UriTests.scala | 7 |
2 files changed, 8 insertions, 9 deletions
diff --git a/core/src/main/scala/com/softwaremill/sttp/Uri.scala b/core/src/main/scala/com/softwaremill/sttp/Uri.scala index e4d8a8e..932771b 100644 --- a/core/src/main/scala/com/softwaremill/sttp/Uri.scala +++ b/core/src/main/scala/com/softwaremill/sttp/Uri.scala @@ -28,7 +28,6 @@ case class Uri(scheme: String, queryFragments: Seq[QueryFragment], fragment: Option[String]) { - def scheme(s: String): Uri = this.copy(scheme = s) def userInfo(username: String): Uri = @@ -196,14 +195,7 @@ object Uri { Uri(scheme, None, host, Some(port), path, Vector.empty, None) def apply(scheme: String, host: String, path: Seq[String]): Uri = Uri(scheme, None, host, None, path, Vector.empty, None) - def apply(javaUri: URI): Uri = { - val scheme: String = javaUri.getScheme - val host: String = javaUri.getHost - val port: Option[Int] = Option(javaUri.getPort) - val path: Seq[String] = javaUri.getPath.split("/").toList.tail - val fragment: Option[String] = Option(javaUri.getFragment) - Uri(scheme, None, host, port, path, Vector.empty, fragment) - } + def apply(javaUri: URI): Uri = uri"${javaUri.toString}" sealed trait QueryFragment object QueryFragment { diff --git a/core/src/test/scala/com/softwaremill/sttp/UriTests.scala b/core/src/test/scala/com/softwaremill/sttp/UriTests.scala index 341533a..194ae20 100644 --- a/core/src/test/scala/com/softwaremill/sttp/UriTests.scala +++ b/core/src/test/scala/com/softwaremill/sttp/UriTests.scala @@ -1,5 +1,7 @@ package com.softwaremill.sttp +import java.net.URI + import com.softwaremill.sttp.Uri.{ QueryFragment, QueryFragmentEncoding, @@ -106,4 +108,9 @@ class UriTests extends FunSuite with Matchers { testUri.copy(queryFragments = fragments).toString should endWith(expected) } } + + test("should convert from java URI") { + val uriAsString = "https://sub.example.com:8080/a/b/xyz?p1=v1&p2=v2#f" + Uri(URI.create(uriAsString)).toString should be(uriAsString) + } } |