### Question:
URLBuilder { public URLBuilder encode() { return new URLBuilder(getEncodedSegments(), metadata, query.encode()); } private  URLBuilder(); private  URLBuilder(final List<String> segments, final Metadata metadata, final QueryStringBuilder query); static URLBuilder createNew(); static URLBuilder createFrom(final List<String> segments, final Metadata metadata,
            final QueryStringBuilder query); static URLBuilder createFrom(final List<String> segments, final Metadata metadata); static URLBuilder createFrom(final String segments); URLBuilder appendPathSegments(final List<String> segments); URLBuilder appendPathSegments(final String segments); URLBuilder addQueryParameters(final String parameters); URLBuilder decode(); URLBuilder encode(); String getEncoding(); Metadata getMetadata(); QueryStringBuilder getQueryStringBuilder(); URLBuilder setQueryString(final QueryStringBuilder query); List<String> getSegments(); boolean hasLeadingSlash(); boolean hasTrailingSlash(); int numSegments(); void setEncoding(final String encoding); URLBuilder setMetadata(final Metadata metadata); String toPath(); @Override String toString(); URI toURI(); String toURL();  }### Answer:
@Test public void testEncode() throws Exception { String value = "/\u010d"; URLBuilder builder = URLBuilder.createNew().appendPathSegments(value); URLBuilder encoded = builder.encode(); assertEquals("/%C4%8D", encoded.toURL()); URLBuilder original = encoded.decode(); assertEquals("/\u010d", original.toURL()); }