@Test(dependsOnMethods = "testSubmit")
  public void testGetDefinition() throws Exception {
    for (HierarchicalTypeDefinition typeDefinition : typeDefinitions) {
      System.out.println("typeName = " + typeDefinition.typeName);

      WebResource resource = service.path("api/atlas/types").path(typeDefinition.typeName);

      ClientResponse clientResponse =
          resource
              .accept(Servlets.JSON_MEDIA_TYPE)
              .type(Servlets.JSON_MEDIA_TYPE)
              .method(HttpMethod.GET, ClientResponse.class);
      assertEquals(clientResponse.getStatus(), Response.Status.OK.getStatusCode());

      String responseAsString = clientResponse.getEntity(String.class);
      Assert.assertNotNull(responseAsString);
      JSONObject response = new JSONObject(responseAsString);
      Assert.assertNotNull(response.get(AtlasClient.DEFINITION));
      Assert.assertNotNull(response.get(AtlasClient.REQUEST_ID));

      String typesJson = response.getString(AtlasClient.DEFINITION);
      final TypesDef typesDef = TypesSerialization.fromJson(typesJson);
      List<HierarchicalTypeDefinition<ClassType>> hierarchicalTypeDefinitions =
          typesDef.classTypesAsJavaList();
      for (HierarchicalTypeDefinition<ClassType> classType : hierarchicalTypeDefinitions) {
        for (AttributeDefinition attrDef : classType.attributeDefinitions) {
          if ("name".equals(attrDef.name)) {
            assertEquals(attrDef.isIndexable, true);
            assertEquals(attrDef.isUnique, true);
          }
        }
      }
    }
  }
 private void verifyRestoredClassType(TypesDef types, String typeName) throws AtlasException {
   boolean clsTypeFound = false;
   List<HierarchicalTypeDefinition<ClassType>> classTypes = types.classTypesAsJavaList();
   for (HierarchicalTypeDefinition<ClassType> classType : classTypes) {
     if (classType.typeName.equals(typeName)) {
       ClassType expectedType = ts.getDataType(ClassType.class, classType.typeName);
       Assert.assertEquals(
           expectedType.immediateAttrs.size(), classType.attributeDefinitions.length);
       Assert.assertEquals(expectedType.superTypes.size(), classType.superTypes.size());
       Assert.assertEquals(classType.typeDescription, classType.typeName + DESCRIPTION);
       clsTypeFound = true;
     }
   }
   Assert.assertTrue(clsTypeFound, typeName + " type not restored");
 }