| /******************************************************************************* |
| * Copyright (c) 2010 BSI Business Systems Integration AG. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * BSI Business Systems Integration AG - initial API and implementation |
| ******************************************************************************/ |
| package org.eclipse.scout.commons; |
| |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertNotNull; |
| import static org.junit.Assert.assertNull; |
| import static org.junit.Assert.assertSame; |
| import static org.junit.Assert.assertTrue; |
| |
| import java.net.URI; |
| |
| import org.junit.Test; |
| |
| /** |
| * JUnit test for {@link UriBuilder} |
| * |
| * @since 3.8.1 |
| */ |
| public class UriBuilderTest { |
| |
| static final String SCHEME = "scheme"; |
| static final String HOST = "host"; |
| static final String PATH_TO_SCHEME = "/path/to"; |
| static final String ANCHOR = "anchor"; |
| |
| @Test |
| public void testScheme() throws Exception { |
| UriBuilder builder = new UriBuilder(); |
| assertNull(builder.getScheme()); |
| // |
| assertSame(builder, builder.scheme(null)); |
| // |
| builder.scheme("ftp"); |
| assertEquals("ftp", builder.getScheme()); |
| // |
| builder = new UriBuilder("http://acme.com:1234/scout"); |
| assertEquals("http", builder.getScheme()); |
| } |
| |
| @Test |
| public void testHost() throws Exception { |
| UriBuilder builder = new UriBuilder(); |
| assertNull(builder.getHost()); |
| // |
| assertSame(builder, builder.host(null)); |
| // |
| String host = "www.eclipse.org"; |
| builder.host(host); |
| assertEquals(host, builder.getHost()); |
| // |
| builder = new UriBuilder("http://acme.com:1234/scout"); |
| assertEquals("acme.com", builder.getHost()); |
| } |
| |
| @Test |
| public void testPort() throws Exception { |
| UriBuilder builder = new UriBuilder(); |
| assertEquals(-1, builder.getPort()); |
| // |
| assertSame(builder, builder.port(-1)); |
| // |
| builder.port(433); |
| assertEquals(433, builder.getPort()); |
| // |
| builder.port(1); |
| assertEquals(1, builder.getPort()); |
| // |
| builder.port(0); |
| assertEquals(-1, builder.getPort()); |
| // |
| builder.port(-15); |
| assertEquals(-1, builder.getPort()); |
| // |
| builder = new UriBuilder("http://www.ecipse.org:1234/scout"); |
| assertEquals(1234, builder.getPort()); |
| // |
| builder.port(42); |
| assertEquals(42, builder.getPort()); |
| } |
| |
| @Test |
| public void testPath() throws Exception { |
| UriBuilder builder = new UriBuilder(); |
| assertNull(builder.getPath()); |
| // |
| assertSame(builder, builder.path(null)); |
| // |
| String path = "scout/foo"; |
| builder.path(path); |
| assertEquals(path, builder.getPath()); |
| // |
| builder = new UriBuilder("http://acme.com:1234/scout/test/3"); |
| assertEquals("/scout/test/3", builder.getPath()); |
| } |
| |
| @Test |
| public void testAddPath() throws Exception { |
| UriBuilder builder = new UriBuilder(); |
| assertNull(builder.getPath()); |
| // |
| builder.addPath(null); |
| assertNull(builder.getPath()); |
| // |
| assertSame(builder, builder.addPath(null)); |
| // |
| String path = "scout/foo"; |
| builder.addPath(path); |
| assertEquals(path, builder.getPath()); |
| // |
| builder = new UriBuilder("http://acme.com:1234/scout/test/3"); |
| builder.addPath("test"); |
| assertEquals("/scout/test/3/test", builder.getPath()); |
| // |
| builder = new UriBuilder("http://acme.com:1234"); |
| builder.addPath("test"); |
| assertEquals("test", builder.getPath()); |
| } |
| |
| @Test |
| public void testFragment() throws Exception { |
| UriBuilder builder = new UriBuilder(); |
| assertNull(builder.getFragment()); |
| // |
| assertSame(builder, builder.fragment(null)); |
| // |
| String fragment = ANCHOR; |
| builder.fragment(fragment); |
| assertEquals(fragment, builder.getFragment()); |
| // |
| builder = new UriBuilder("http://acme.com:1234/scout/test/3#bottomPart"); |
| assertEquals("bottomPart", builder.getFragment()); |
| } |
| |
| static final String NAME1 = "name1"; |
| static final String NAME2 = "name2"; |
| static final String VALUE1 = "value1"; |
| static final String VALUE2 = "value2"; |
| |
| @Test |
| public void testParamenter() throws Exception { |
| UriBuilder builder = new UriBuilder(); |
| assertNotNull(builder.getParameters()); |
| assertTrue(builder.getParameters().isEmpty()); |
| // |
| builder.parameter(null, null); |
| builder.parameter(NAME1, null); |
| builder.parameter(null, VALUE1); |
| builder.parameter(NAME2, VALUE2); |
| assertEquals(1, builder.getParameters().size()); |
| assertEquals(VALUE2, builder.getParameters().get(NAME2)); |
| builder.parameter(NAME2, null); |
| assertTrue(builder.getParameters().isEmpty()); |
| // |
| assertSame(builder, builder.parameter(null, null)); |
| // |
| builder = new UriBuilder("http://acme.com:1234/scout?name1=value1&name2=value2"); |
| assertEquals(2, builder.getParameters().size()); |
| assertEquals(VALUE1, builder.getParameters().get(NAME1)); |
| assertEquals(VALUE2, builder.getParameters().get(NAME2)); |
| } |
| |
| @Test |
| public void testCreateUri() throws Exception { |
| UriBuilder builder = new UriBuilder(); |
| assertEquals(URI.create(""), builder.createURI()); |
| // |
| builder = new UriBuilder(); |
| builder.scheme(SCHEME).host(HOST); |
| assertEquals(URI.create("scheme://host"), builder.createURI()); |
| // |
| builder = new UriBuilder(); |
| builder.scheme(SCHEME).path(PATH_TO_SCHEME); |
| assertEquals(URI.create("scheme:/path/to"), builder.createURI()); |
| // |
| builder = new UriBuilder(); |
| builder.scheme(SCHEME).host(HOST).path(PATH_TO_SCHEME); |
| assertEquals(URI.create("scheme://host/path/to"), builder.createURI()); |
| // |
| builder = new UriBuilder(); |
| builder.scheme(SCHEME).host(HOST).path(PATH_TO_SCHEME).fragment(ANCHOR); |
| assertEquals(URI.create("scheme://host/path/to#anchor"), builder.createURI()); |
| // |
| builder = new UriBuilder(); |
| builder.scheme(SCHEME).host(HOST).path(PATH_TO_SCHEME).fragment(ANCHOR).parameter("key", "value"); |
| assertEquals(URI.create("scheme://host/path/to?key=value#anchor"), builder.createURI()); |
| // |
| builder = new UriBuilder(); |
| builder.scheme(SCHEME).host(HOST).path(PATH_TO_SCHEME).fragment(ANCHOR).parameter("key", "äöü"); |
| assertEquals("scheme://host/path/to?key=%25E4%25F6%25FC#anchor", builder.createURI().toASCIIString()); |
| // |
| builder = new UriBuilder(); |
| builder.scheme(SCHEME).host(HOST).path(PATH_TO_SCHEME).fragment(ANCHOR).parameter("key", "äöü"); |
| assertEquals("scheme://host/path/to?key=%25C3%25A4%25C3%25B6%25C3%25BC#anchor", builder.createURI("UTF-8").toASCIIString()); |
| // |
| URI baseUri = new URI("http://www.eclipse.org/scout"); |
| builder = new UriBuilder(baseUri); |
| assertEquals(baseUri, builder.createURI()); |
| } |
| } |