### Question:
JPAEdmComplexType extends JPAEdmBaseViewImpl implements JPAEdmComplexTypeView { @Override public JPAEdmBuilder getBuilder() { if (builder == null) { builder = new JPAEdmComplexTypeBuilder(); } return builder; } JPAEdmComplexType(final JPAEdmSchemaView view);  JPAEdmComplexType(final JPAEdmSchemaView view, final Attribute<?, ?> complexAttribute); @Override boolean isReferencedInKey(final String complexTypeName); @Override void setReferencedInKey(final String complexTypeName); @Override JPAEdmBuilder getBuilder(); @Override ComplexType getEdmComplexType(); @Override ComplexType searchEdmComplexType(final String embeddableTypeName); @Override EmbeddableType<?> getJPAEmbeddableType(); @Override List<ComplexType> getConsistentEdmComplexTypes(); @Override ComplexType searchEdmComplexType(final FullQualifiedName type); @Override void addJPAEdmCompleTypeView(final JPAEdmComplexTypeView view); @Override void expandEdmComplexType(final ComplexType complexType, List<Property> expandedList,
      final String embeddablePropertyName);  }### Answer:
@Test public void testGetBuilder() { assertNotNull(objComplexType.getBuilder()); }
@Test public void testGetBuilderIdempotent() { JPAEdmBuilder builder1 = objComplexType.getBuilder(); JPAEdmBuilder builder2 = objComplexType.getBuilder(); assertEquals(builder1.hashCode(), builder2.hashCode()); }
@Test public void testComplexTypeCreation() { try { objComplexType.getBuilder().build(); } catch (ODataJPARuntimeException e) { fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2); } catch (ODataJPAModelException e) { fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2); } assertEquals(objComplexType.pUnitName, "salesorderprocessing"); }