int hashCode = link.hashCode();
assertFalse(hashCode == 0);
assertNull(link.getType());
assertEquals(XLink.Type.TITLE, link.getType());
assertEquals("XLink[type=\"title\"]", link.toString());
assertFalse("Hash code should have changed.", hashCode == (hashCode = link.hashCode()));
assertEquals(XLink.Type.EXTENDED, link.getType());
assertEquals("XLink[type=\"extended\", role=\"org:apache:sis:role\"]", link.toString());
assertFalse("Hash code should have changed.", hashCode == (hashCode = link.hashCode()));
assertEquals(XLink.Type.EXTENDED, link.getType());
assertEquals("XLink[type=\"extended\", role=\"org:apache:sis:role\", title=\"Some title\"]", link.toString());
assertFalse("Hash code should have changed.", hashCode == (hashCode = link.hashCode()));
assertEquals(XLink.Type.RESOURCE, link.getType());
assertEquals("XLink[type=\"resource\", role=\"org:apache:sis:role\", title=\"Some title\", label=\"SomeLabel\"]", link.toString());
assertFalse("Hash code should have changed.", hashCode == (hashCode = link.hashCode()));
assertEquals(XLink.Type.LOCATOR, link.getType());
assertEquals("XLink[type=\"locator\", href=\"org:apache:sis:href\", role=\"org:apache:sis:role\", title=\"Some title\", label=\"SomeLabel\"]", link.toString());
assertFalse("Hash code should have changed.", hashCode == (hashCode = link.hashCode()));
assertNull("Can't be Type.SIMPLE if a label is defined.", link.getType());
assertEquals("XLink[href=\"org:apache:sis:href\", role=\"org:apache:sis:role\", title=\"Some title\", show=\"new\", label=\"SomeLabel\"]", link.toString());
assertFalse("Hash code should have changed.", hashCode == (hashCode = link.hashCode()));
assertEquals(XLink.Type.SIMPLE, link.getType());