aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authoradamw <adam@warski.org>2017-11-14 11:11:30 +0100
committeradamw <adam@warski.org>2017-11-14 11:11:30 +0100
commit3e808474fa156760312228dff68fb05dccb48d7f (patch)
tree8b350bf4de2bdfbddc86c8608914e60030447fc7 /core
parentab753662bfd59be0266e121e091cef9d044ec847 (diff)
downloadsttp-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.scala10
-rw-r--r--core/src/test/scala/com/softwaremill/sttp/UriTests.scala7
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)
+ }
}