### Question:
DefaultNeo4jPersistentProperty extends AnnotationBasedPersistentProperty<Neo4jPersistentProperty> implements Neo4jPersistentProperty { static String deriveRelationshipType(String name) { Assert.hasText(name, "The name to derive the type from is required."); StringBuilder sb = new StringBuilder(); int codePoint; int previousIndex = 0; int i = 0; while (i < name.length()) { codePoint = name.codePointAt(i); if (Character.isLowerCase(codePoint)) { if (i > 0 && !Character.isLetter(name.codePointAt(previousIndex))) { sb.append("_"); } codePoint = Character.toUpperCase(codePoint); } else if (sb.length() > 0) { sb.append("_"); } sb.append(Character.toChars(codePoint)); previousIndex = i; i += Character.charCount(codePoint); } return sb.toString(); } DefaultNeo4jPersistentProperty(Property property,
		PersistentEntity<?, Neo4jPersistentProperty> owner,
		Neo4jMappingContext mappingContext,
		SimpleTypeHolder simpleTypeHolder); @Override Class<?> getAssociationTargetType(); @Override boolean isAssociation(); @Override boolean isEntity(); @Override String getFieldName(); @Override String getPropertyName(); @Override boolean isInternalIdProperty(); @Override boolean isRelationship();  }### Answer:
@Test void toUpperSnakeCaseShouldDealWithNull() { assertThatIllegalArgumentException() .isThrownBy(() -> DefaultNeo4jPersistentProperty.deriveRelationshipType(null)); }
@Test void toUpperSnakeCaseShouldDealWithEmptyString() { assertThatIllegalArgumentException() .isThrownBy(() -> DefaultNeo4jPersistentProperty.deriveRelationshipType("")); }