### Question:
FsMountPoint implements Serializable, Comparable<FsMountPoint> { public static FsMountPoint create(URI uri) { return create(uri, NULL); } @ConstructorProperties("uri")  FsMountPoint(URI uri);  FsMountPoint(URI uri, FsUriModifier modifier);  FsMountPoint(final FsScheme scheme,
                        final FsNodePath path); static FsMountPoint create(URI uri); static FsMountPoint create(URI uri, FsUriModifier modifier); static FsMountPoint create(FsScheme scheme, FsNodePath path); URI getUri(); URI toHierarchicalUri(); FsScheme getScheme(); @Nullable FsNodePath getPath(); @Nullable FsMountPoint getParent(); FsNodePath resolve(FsNodeName name); @Override int compareTo(FsMountPoint that); @Override boolean equals(@CheckForNull Object that); @Override int hashCode(); @Override String toString(); static final String SEPARATOR; }### Answer:
@Test @SuppressWarnings("ResultOfObjectAllocationIgnored") public void testConstructorWithInvalidUri() throws URISyntaxException { try { FsMountPoint.create((URI) null); fail(); } catch (NullPointerException expected) { } try { new FsMountPoint((URI) null); fail(); } catch (NullPointerException expected) { } try { FsMountPoint.create((URI) null, NULL); fail(); } catch (NullPointerException expected) { } try { new FsMountPoint((URI) null, NULL); fail(); } catch (NullPointerException expected) { } try { FsMountPoint.create((URI) null, CANONICALIZE); fail(); } catch (NullPointerException expected) { } try { new FsMountPoint((URI) null, CANONICALIZE); fail(); } catch (NullPointerException expected) { } try { FsMountPoint.create((FsScheme) null, null); fail(); } catch (NullPointerException expected) { } try { new FsMountPoint((FsScheme) null, null); fail(); } catch (NullPointerException expected) { } for (final String param : new String[] { "foo:/?queryDefined", "foo:bar:baz:/!/!/", "foo", "foo/bar", "foo/bar/", "/foo", "/foo/bar", "/foo/bar/", " "/../foo", "foo:/bar#baz", "foo:/bar/#baz", "foo:/bar", "foo:/bar?baz", "foo:/bar "foo:/bar/.", "foo:/bar/./", "foo:/bar/..", "foo:/bar/../", "foo:bar!/", "foo:bar:baz!/", "foo:bar:/baz! "foo:bar:/baz!/.", "foo:bar:/baz!/./", "foo:bar:/baz!/..", "foo:bar:/baz!/../", "foo:bar:/baz!/bang", "foo:bar:/baz!/#bang", "foo:bar:/baz/!/", "foo:bar:baz:/bang!/!/", }) { final URI uri = URI.create(param); try { FsMountPoint.create(uri); fail(param); } catch (IllegalArgumentException expected) { } try { new FsMountPoint(uri); fail(param); } catch (URISyntaxException expected) { } } for (final String[] params : new String[][] { { "foo", "bar:baz:/bang!/" }, { "foo", "bar:/baz/" }, }) { final FsScheme scheme = FsScheme.create(params[0]); final FsNodePath path = FsNodePath.create(URI.create(params[1])); try { new FsMountPoint(scheme, path); fail(params[0] + ":" + params[1] + "!/"); } catch (URISyntaxException expected) { } } }