UriBuilder implements IBuilder<URI> { @Override public URI build() { return URI.create(buildString()); } UriBuilder(@NonNull String scheme, @NonNull String host); @NonNull UriBuilder reset(); @NonNull UriBuilder path(@Nullable String... path); @NonNull UriBuilder query(@Nullable SortedMap<String, String> query); @NonNull UriBuilder fragment(@Nullable SortedMap<String, String> fragment); @NonNull String buildString(); @Override URI build(); @Nullable static String[] getPathArray(@NonNull URI uri); @Nullable static String[] getPathArray(@NonNull URI uri, int expectedSize); @Nullable static Map<String, String> getQueryMap(@NonNull URI uri); @Nullable static Map<String, String> getFragmentMap(@NonNull URI uri);  }
@Test(expected = IllegalArgumentException.class) public void testSchemeEmpty() { new UriBuilder("", host).build(); }
@Test(expected = IllegalArgumentException.class) public void testSchemeNull() { new UriBuilder(null, host).build(); }
@Test(expected = IllegalArgumentException.class) public void testHostEmpty() { new UriBuilder(scheme, "").build(); }
@Test(expected = IllegalArgumentException.class) public void testHostNull() { new UriBuilder("", null).build(); }