public synchronized boolean equals(java.lang.Object obj) {
   if (!(obj instanceof PicklistEntry)) return false;
   PicklistEntry other = (PicklistEntry) obj;
   if (obj == null) return false;
   if (this == obj) return true;
   if (__equalsCalc != null) {
     return (__equalsCalc == obj);
   }
   __equalsCalc = obj;
   boolean _equals;
   _equals =
       true
           && this.active == other.isActive()
           && this.defaultValue == other.isDefaultValue()
           && ((this.label == null && other.getLabel() == null)
               || (this.label != null && this.label.equals(other.getLabel())))
           && ((this.validFor == null && other.getValidFor() == null)
               || (this.validFor != null && this.validFor.equals(other.getValidFor())))
           && ((this.value == null && other.getValue() == null)
               || (this.value != null && this.value.equals(other.getValue())));
   __equalsCalc = null;
   return _equals;
 }
  @SuppressWarnings({"unchecked"})
  @Test
  public void testPicklistField() throws ApiException {
    FieldDescription field = this.getDescription("Lead", "Industry");

    assertEquals(120, field.getByteLength());
    assertNull(field.getCalculatedFormula());
    assertNull(field.getControllerName());
    assertNull(field.getDefaultValueFormula());
    assertEquals(0, field.getDigits());
    assertNull(field.getInlineHelpText());
    assertEquals("Industry", field.getLabel());
    assertEquals(40, field.getLength());
    assertEquals("Industry", field.getName());
    assertEquals(32, field.getPicklistValues().size());

    List<PicklistEntry> expectedEntries =
        (List<PicklistEntry>)
            TestFixtureUtils.loadFixtures(
                "/sObjectFixtures/ConnectionTests/industryPicklistEntries.xml");
    for (int i = 0; i < expectedEntries.size(); i++) {
      PicklistEntry expected = expectedEntries.get(i);
      PicklistEntry actual = field.getPicklistValues().get(i);

      assertEquals(expected.getLabel(), actual.getLabel());
      assertEquals(expected.getValidFor(), actual.getValidFor());
      assertEquals(expected.getValue(), actual.getValue());
      assertEquals(expected.isActive(), actual.isActive());
      assertEquals(expected.isDefaultValue(), actual.isDefaultValue());
    }

    assertEquals(0, field.getPrecision());
    assertEquals(0, field.getReferenceTo().size());
    assertNull(field.getRelationshipName());
    assertNull(field.getRelationshipOrder());
    assertEquals(0, field.getScale());
    assertEquals(SoapTypeType.XSD___STRING, field.getSoapType());
    assertEquals(FieldTypeType.PICKLIST, field.getType());
    assertFalse(field.isAutoNumber());
    assertFalse(field.isCalculated());
    assertFalse(field.isCaseSensitive());
    assertTrue(field.isCreateable());
    assertFalse(field.isCustom());
    assertFalse(field.isDefaultedOnCreate());
    assertNull(field.isDependentPicklist());
    assertFalse(field.isDeprecatedAndHidden());
    assertNull(field.isExternalId());
    assertTrue(field.isFilterable());
    assertTrue(field.isGroupable());
    assertNull(field.isHtmlFormatted());
    assertFalse(field.isIdLookup());
    assertFalse(field.isNameField());
    assertEquals(Boolean.FALSE, field.isNamePointing());
    assertTrue(field.isNillable());
    assertFalse(field.isRestrictedPicklist());
    assertEquals(Boolean.TRUE, field.isSortable());
    assertFalse(field.isUnique());
    assertTrue(field.isUpdateable());
    assertNull(field.isWriteRequiresMasterRead());
    assertTrue(field.isPermissionable());
  }