@Test
  public void testEquality() {
    ProtoEnumSoyType a = ProtoEnumSoyType.get(TestProto.Color.getDescriptor());
    ProtoEnumSoyType b = ProtoEnumSoyType.get(TestProto.Color.getDescriptor());

    assertEquals(a, a);
    assertEquals(a.hashCode(), a.hashCode());

    assertEquals(a, b);
    assertEquals(b, a);
    assertEquals(a.hashCode(), b.hashCode());

    ProtoEnumSoyType c = ProtoEnumSoyType.get(TestProto.Fruit.getDescriptor());
    assertNotEquals(a, c);
    assertNotEquals(c, a);

    ProtoEnumSoyType d =
        ProtoEnumSoyType.get(
            TestProto.Order.getDescriptor().findFieldByName("color").getEnumType());
    assertEquals(a, d);
    assertEquals(d, a);
    assertEquals(a.hashCode(), d.hashCode());

    ProtoEnumSoyType e =
        ProtoEnumSoyType.get(
            TestProto.Order.getDescriptor().findFieldByName("fruit").getEnumType());
    assertEquals(c, e);
    assertEquals(e, c);
    assertEquals(c.hashCode(), e.hashCode());
    assertNotEquals(a, e);
  }
  @Test
  public void testGetName() {
    assertEquals("test.Color", ProtoEnumSoyType.get(TestProto.Color.getDescriptor()).getName());
    assertEquals(
        "test.Color",
        ProtoEnumSoyType.get(TestProto.Color.getDescriptor()).getNameForBackend(null));

    assertEquals(
        "test.Color",
        ProtoEnumSoyType.get(TestProto.Order.getDescriptor().findFieldByName("color").getEnumType())
            .getName());
    assertEquals(
        "test.Color",
        ProtoEnumSoyType.get(TestProto.Order.getDescriptor().findFieldByName("color").getEnumType())
            .getNameForBackend(null));
  }