### Question:
SpecimenType implements Type { public final GenericTypeCollection getGenericTypeArguments() { return this.genericTypeArguments; } protected  SpecimenType(); private  SpecimenType(Type type); private  SpecimenType(Type type, List<Type> recursiveGenericsGuard); private  SpecimenType(Type type, SpecimenType contextualType); private  SpecimenType(Class rawType, GenericTypeCollection genericTypeArguments); static SpecimenType<?> of(Type type); static SpecimenType<?> of(Type type, List<Type> recursiveGenericsGuard); static SpecimenType<T> of(Class<T> clazz); final Class getRawType(); final GenericTypeCollection getGenericTypeArguments(); @Override final int hashCode(); @Override final boolean equals(Object obj); @Override final String toString();  }### Answer:
@Test public void non_generic_class_type_argument_has_no_generic_types() { assertEquals(0, new SpecimenType<String>(){}.getGenericTypeArguments().getLength()); }
@Test public void generic_class_type_argument_has_correct_generic_type_name() { assertEquals("E", new SpecimenType<List<String>>(){}.getGenericTypeArguments().get(0).getName()); }
@Test public void non_generic_array_type_argument_has_no_generic_types() { assertEquals(0, new SpecimenType<String[]>(){}.getGenericTypeArguments().getLength()); }