ClassMetadata { public boolean hasDefaultConstructor() { if (constructors.isEmpty()) { return true; } return constructors.stream() .anyMatch(constructor -> { final Set<Modifier> modifiers = constructor.getModifiers(); if (!modifiers.contains(Modifier.PUBLIC) || modifiers.contains(Modifier.ABSTRACT)) { return false; } return constructor.getParameters().isEmpty(); }); } ClassMetadata(@Nonnull TypeElement element); @Nonnull String getSimpleName(); @Nonnull ClassName getClassName(); boolean isAbstract(); boolean isClass(); boolean isInterface(); boolean hasDefaultConstructor();  }
@Test public void hasDefaultConstructorShouldReturnTrueWithStringClass() throws Exception { final boolean actual = underTest.hasDefaultConstructor(); assertThat(actual) .isTrue(); }