Repository: assertj/assertj

Problem statement:
Some APIs have no test
#### Summary
When I run the coverage test, I find:
- in `AbstractUrlAssert`: `hasNoPath()` and `hasNoParameters()` have no test.
- in `AbstractUriAssert`:`hasNoPath()` has no test.

Actually, Intellij IDEA tells me that they are never used.

I am happy to raise this as a PR if this issue is considered valid.




Hints:
Yes please, improving test coverage is always good!

This gap is also mentioned in the Sonar report: https://sonarcloud.io/component_measures?id=joel-costigliola_assertj-core&metric=new_lines_to_cover&view=list
OK, thanks! I think I may have to wait for my last PR being merged. 
When I write tests for `haveNoPath()`, I am very confused. 

According to javadoc, this assertion succeeds:

```java
assertThat(new URL("http://www.helloworld.org")).hasNoPath();
```

But this assertion fails:

```java
assertThat(new URI("http://helloworld.org")).hasNoPath();  // empty path
```

They are not symmetrical.

Patch:
diff --git a/src/main/java/org/assertj/core/api/AbstractUrlAssert.java b/src/main/java/org/assertj/core/api/AbstractUrlAssert.java
--- a/src/main/java/org/assertj/core/api/AbstractUrlAssert.java
+++ b/src/main/java/org/assertj/core/api/AbstractUrlAssert.java
@@ -419,7 +419,7 @@ public SELF hasNoParameter(String name, String value) {
   }
 
   /**
-   * Verifies that the actual {@link URL} is equivalent to the given one after <b>their parameters are sorted</b>.
+   * Verifies that the actual {@code URL} is equivalent to the given one after <b>their parameters are sorted</b>.
    * <p>
    * Example:
    * <pre><code class='java'> URL url = new URL("http://example.com?a=b&amp;c=d");
@@ -434,7 +434,7 @@ public SELF hasNoParameter(String name, String value) {
    * //... and this one fails as domains are different.
    * assertThat(url).isEqualToWithSortedQueryParameters(new URL("http://example2.com?amp;a=b&amp;c=d")); </code></pre>
    *
-   * @param expected the expected {@link URL} to compare actual to.
+   * @param expected the expected {@code URL} to compare actual to.
    * @return {@code this} assertion object.
    * @throws NullPointerException if the given URL is {@code null}.
    * @throws AssertionError if the actual {@code URL} is {@code null}.


Test patch:
diff --git a/src/test/java/org/assertj/core/api/uri/UriAssert_hasNoPath_Test.java b/src/test/java/org/assertj/core/api/uri/UriAssert_hasNoPath_Test.java
new file mode 100644
--- /dev/null
+++ b/src/test/java/org/assertj/core/api/uri/UriAssert_hasNoPath_Test.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ *
+ * Copyright 2012-2020 the original author or authors.
+ */
+package org.assertj.core.api.uri;
+
+import static org.mockito.Mockito.verify;
+
+import org.assertj.core.api.UriAssert;
+import org.assertj.core.api.UriAssertBaseTest;
+
+public class UriAssert_hasNoPath_Test extends UriAssertBaseTest {
+
+  @Override
+  protected UriAssert invoke_api_method() {
+    return assertions.hasNoPath();
+  }
+
+  @Override
+  protected void verify_internal_effects() {
+    verify(uris).assertHasPath(getInfo(assertions), getActual(assertions), null);
+  }
+}
diff --git a/src/test/java/org/assertj/core/api/url/UrlAssert_hasNoPath_Test.java b/src/test/java/org/assertj/core/api/url/UrlAssert_hasNoPath_Test.java
new file mode 100644
--- /dev/null
+++ b/src/test/java/org/assertj/core/api/url/UrlAssert_hasNoPath_Test.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ *
+ * Copyright 2012-2020 the original author or authors.
+ */
+package org.assertj.core.api.url;
+
+import static org.mockito.Mockito.verify;
+
+import org.assertj.core.api.UrlAssert;
+import org.assertj.core.api.UrlAssertBaseTest;
+
+public class UrlAssert_hasNoPath_Test extends UrlAssertBaseTest {
+
+  @Override
+  protected UrlAssert invoke_api_method() {
+    return assertions.hasNoPath();
+  }
+
+  @Override
+  protected void verify_internal_effects() {
+    verify(urls).assertHasPath(getInfo(assertions), getActual(assertions), "");
+  }
+}