|
@@ -8,6 +8,7 @@ package net.ranides.assira.io.uri;
|
|
|
|
|
|
|
|
import java.net.URI;
|
|
import java.net.URI;
|
|
|
import java.util.Arrays;
|
|
import java.util.Arrays;
|
|
|
|
|
+import java.util.List;
|
|
|
import java.util.TreeMap;
|
|
import java.util.TreeMap;
|
|
|
import org.junit.Test;
|
|
import org.junit.Test;
|
|
|
import static net.ranides.assira.junit.NewAssert.*;
|
|
import static net.ranides.assira.junit.NewAssert.*;
|
|
@@ -24,9 +25,17 @@ public class URIBuilderTest {
|
|
|
|
|
|
|
|
URIBuilder u2 = new URIBuilder("file:///home/ranides/.git");
|
|
URIBuilder u2 = new URIBuilder("file:///home/ranides/.git");
|
|
|
assertEquals("file", u2.scheme());
|
|
assertEquals("file", u2.scheme());
|
|
|
-
|
|
|
|
|
- URIBuilder u3 = new URIBuilder("code://path");
|
|
|
|
|
|
|
+ assertEquals("/home/ranides/.git", u2.path().get());
|
|
|
|
|
+
|
|
|
|
|
+ URIBuilder u3 = new URIBuilder("code://host");
|
|
|
assertEquals("code", u3.scheme());
|
|
assertEquals("code", u3.scheme());
|
|
|
|
|
+ assertEquals("host", u3.host().get());
|
|
|
|
|
+ assertFalse(u3.path().isPresent());
|
|
|
|
|
+
|
|
|
|
|
+ URIBuilder u4 = new URIBuilder("code:///path");
|
|
|
|
|
+ assertEquals("code", u4.scheme());
|
|
|
|
|
+ assertFalse(u4.host().isPresent());
|
|
|
|
|
+ assertEquals("/path", u4.path().get());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
@Test
|
|
@@ -34,7 +43,7 @@ public class URIBuilderTest {
|
|
|
URIBuilder u1 = new URIBuilder("http://ranides.net/dir/main.html?action=open&art=55&now");
|
|
URIBuilder u1 = new URIBuilder("http://ranides.net/dir/main.html?action=open&art=55&now");
|
|
|
assertEmpty(u1.login());
|
|
assertEmpty(u1.login());
|
|
|
assertEmpty(u1.password());
|
|
assertEmpty(u1.password());
|
|
|
- assertEquals("ranides.net", u1.host());
|
|
|
|
|
|
|
+ assertEquals("ranides.net", u1.host().get());
|
|
|
assertEmpty(u1.port());
|
|
assertEmpty(u1.port());
|
|
|
assertEquals("/dir/main.html", u1.path().get());
|
|
assertEquals("/dir/main.html", u1.path().get());
|
|
|
assertEmpty(u1.fragment());
|
|
assertEmpty(u1.fragment());
|
|
@@ -44,7 +53,7 @@ public class URIBuilderTest {
|
|
|
assertEquals("http://ranides.net/dir/main.html?action=open&art=55&now", u1.build().toString());
|
|
assertEquals("http://ranides.net/dir/main.html?action=open&art=55&now", u1.build().toString());
|
|
|
|
|
|
|
|
URIBuilder u2 = new URIBuilder("http://www.ranides.net/dir/page.html?");
|
|
URIBuilder u2 = new URIBuilder("http://www.ranides.net/dir/page.html?");
|
|
|
- assertEquals("www.ranides.net", u2.host());
|
|
|
|
|
|
|
+ assertEquals("www.ranides.net", u2.host().get());
|
|
|
assertEquals("/dir/page.html", u2.path().get());
|
|
assertEquals("/dir/page.html", u2.path().get());
|
|
|
assertEmpty(u2.params().map());
|
|
assertEmpty(u2.params().map());
|
|
|
assertEquals("http://www.ranides.net/dir/page.html", u2.build().toString());
|
|
assertEquals("http://www.ranides.net/dir/page.html", u2.build().toString());
|
|
@@ -52,7 +61,7 @@ public class URIBuilderTest {
|
|
|
URIBuilder u3 = new URIBuilder("http://login:pass@ranides.net:33/rest?action=open&action=write&action=save#top");
|
|
URIBuilder u3 = new URIBuilder("http://login:pass@ranides.net:33/rest?action=open&action=write&action=save#top");
|
|
|
assertEquals("login", u3.login().get());
|
|
assertEquals("login", u3.login().get());
|
|
|
assertEquals("pass",u3.password().get());
|
|
assertEquals("pass",u3.password().get());
|
|
|
- assertEquals("ranides.net", u3.host());
|
|
|
|
|
|
|
+ assertEquals("ranides.net", u3.host().get());
|
|
|
assertEquals("33", u3.port().get());
|
|
assertEquals("33", u3.port().get());
|
|
|
assertEquals("/rest", u3.path().get());
|
|
assertEquals("/rest", u3.path().get());
|
|
|
assertEquals("top", u3.fragment().get());
|
|
assertEquals("top", u3.fragment().get());
|
|
@@ -64,12 +73,22 @@ public class URIBuilderTest {
|
|
|
URIBuilder u4 = new URIBuilder("http://login:pass@ranides.net:33");
|
|
URIBuilder u4 = new URIBuilder("http://login:pass@ranides.net:33");
|
|
|
assertEquals("login", u4.login().get());
|
|
assertEquals("login", u4.login().get());
|
|
|
assertEquals("pass",u4.password().get());
|
|
assertEquals("pass",u4.password().get());
|
|
|
- assertEquals("ranides.net", u4.host());
|
|
|
|
|
|
|
+ assertEquals("ranides.net", u4.host().get());
|
|
|
assertEquals("33", u4.port().get());
|
|
assertEquals("33", u4.port().get());
|
|
|
assertEmpty(u4.path());
|
|
assertEmpty(u4.path());
|
|
|
assertEmpty(u4.fragment());
|
|
assertEmpty(u4.fragment());
|
|
|
assertEmpty(u4.params().map());
|
|
assertEmpty(u4.params().map());
|
|
|
assertEquals("http://login:pass@ranides.net:33", u4.build().toString());
|
|
assertEquals("http://login:pass@ranides.net:33", u4.build().toString());
|
|
|
|
|
+
|
|
|
|
|
+ URIBuilder u5 = new URIBuilder("http://login@ranides.net:33");
|
|
|
|
|
+ assertEquals("login", u5.login().get());
|
|
|
|
|
+ assertEmpty(u5.password());
|
|
|
|
|
+ assertEquals("ranides.net", u5.host().get());
|
|
|
|
|
+ assertEquals("33", u5.port().get());
|
|
|
|
|
+ assertEmpty(u5.path());
|
|
|
|
|
+ assertEmpty(u5.fragment());
|
|
|
|
|
+ assertEmpty(u5.params().map());
|
|
|
|
|
+ assertEquals("http://login@ranides.net:33", u5.build().toString());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
@Test
|
|
@@ -137,7 +156,7 @@ public class URIBuilderTest {
|
|
|
@Test
|
|
@Test
|
|
|
public void testParseError() {
|
|
public void testParseError() {
|
|
|
assertThrows(IllegalArgumentException.class, ()->{
|
|
assertThrows(IllegalArgumentException.class, ()->{
|
|
|
- new URIBuilder("http://{host}.net");
|
|
|
|
|
|
|
+ new URIBuilder("http://{host}.net").build();
|
|
|
});
|
|
});
|
|
|
assertThrows(IllegalArgumentException.class, ()->{
|
|
assertThrows(IllegalArgumentException.class, ()->{
|
|
|
new URIBuilder().scheme("http").host("{host}.net").build();
|
|
new URIBuilder().scheme("http").host("{host}.net").build();
|
|
@@ -173,7 +192,19 @@ public class URIBuilderTest {
|
|
|
|
|
|
|
|
u1.params().removeAll("c");
|
|
u1.params().removeAll("c");
|
|
|
assertEquals("http://host?a=1&a&b=4&d=7&e", u1.build().toString());
|
|
assertEquals("http://host?a=1&a&b=4&d=7&e", u1.build().toString());
|
|
|
-
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Test
|
|
|
|
|
+ public void testParamsReconstruct() {
|
|
|
|
|
+
|
|
|
|
|
+ URIBuilder u1 = new URIBuilder("http://host?a={{x}}&b=login&c={{y}}&d=terminate");
|
|
|
|
|
+
|
|
|
|
|
+ URIBuilder u2 = u1.resolve(new Object(){
|
|
|
|
|
+ String x = "EN";
|
|
|
|
|
+ List<Object> y = Arrays.asList(1,2,3);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ assertEquals("http://host?a=EN&b=login&c=1&c=2&c=3&d=terminate", u2.build().toString());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|