@Override
  protected EntityBeanMetaData assertFullEntity(
      String ejbName, IEnterpriseBeansMetaData<?, ?, ?, ?> enterpriseBeansMetaData, Mode mode) {
    EntityBeanMetaData entity = assertEntity(ejbName + "EjbName", enterpriseBeansMetaData);
    assertId(ejbName, entity);
    assertMappedName(ejbName, entity.getMappedName());
    assertClass(ejbName, "Home", entity.getHome());
    assertClass(ejbName, "Remote", entity.getRemote());
    assertClass(ejbName, "LocalHome", entity.getLocalHome());
    assertClass(ejbName, "Local", entity.getLocal());
    assertClass(ejbName, "EjbClass", entity.getEjbClass());
    assertEquals(PersistenceType.Container, entity.getPersistenceType());
    assertEquals(ejbName + "PrimKeyClass", entity.getPrimKeyClass());
    assertTrue(entity.isReentrant());
    assertEquals("2.x", entity.getCmpVersion());
    assertFalse(entity.isCMP1x());
    assertEquals(ejbName + "AbstractSchemaName", entity.getAbstractSchemaName());
    assertCmpFields(ejbName, 2, entity.getCmpFields());
    assertEquals(ejbName + "PrimKeyField", entity.getPrimKeyField());
    assertEnvironment(ejbName, entity.getJndiEnvironmentRefsGroup(), true, mode);
    if (mode == Mode.SPEC) {
      assertContainerTransactions(ejbName, 6, 6, entity.getContainerTransactions());
      assertMethodPermissions(
          ejbName, ejbName + "MethodPermission", 3, 3, entity.getMethodPermissions());
      assertExcludeList(ejbName, 5, 5, entity.getExcludeList());
    } else {
      assertNull(entity.getContainerTransactions());
      assertNull(entity.getMethodPermissions());
      assertNull(entity.getExcludeList());
    }
    assertSecurityRoleRefs(ejbName, 2, entity.getSecurityRoleRefs());
    assertSecurityIdentity(ejbName, "SecurityIdentity", entity.getSecurityIdentity(), true, mode);
    assertQueries(ejbName, 3, entity.getQueries());

    return entity;
  }