TypeName extends AbstractStringValueObject { @Override public final String toString() { return asBaseType(); } protected  TypeName();  TypeName(@NotEmpty final String value); @Override final String asBaseType(); @Override final String toString();  }
@Test public final void testConstructValid() { final String name = "MyType"; assertThat(new TypeName(name).toString()).isEqualTo(name); assertThat(new TypeName(name).length()).isEqualTo(name.length()); }