You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ap...@apache.org on 2017/05/23 22:07:00 UTC
[02/12] incubator-atlas git commit: ATLAS-1198: Spring Framework (v4
with Spring security) over Guice
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/35e5828f/webapp/src/test/java/org/apache/atlas/web/resources/EntityV2JerseyResourceIT.java
----------------------------------------------------------------------
diff --git a/webapp/src/test/java/org/apache/atlas/web/resources/EntityV2JerseyResourceIT.java b/webapp/src/test/java/org/apache/atlas/web/resources/EntityV2JerseyResourceIT.java
deleted file mode 100755
index 9d5ff5a..0000000
--- a/webapp/src/test/java/org/apache/atlas/web/resources/EntityV2JerseyResourceIT.java
+++ /dev/null
@@ -1,779 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.atlas.web.resources;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.fail;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.atlas.AtlasClient;
-import org.apache.atlas.AtlasServiceException;
-import org.apache.atlas.EntityAuditEvent;
-import org.apache.atlas.model.instance.AtlasClassification;
-import org.apache.atlas.model.instance.AtlasEntity;
-import org.apache.atlas.model.instance.AtlasEntityHeader;
-import org.apache.atlas.model.instance.AtlasEntity.AtlasEntityWithExtInfo;
-import org.apache.atlas.model.instance.AtlasObjectId;
-import org.apache.atlas.model.instance.AtlasClassification.AtlasClassifications;
-import org.apache.atlas.model.instance.EntityMutationResponse;
-import org.apache.atlas.model.instance.EntityMutations;
-import org.apache.atlas.model.typedef.AtlasClassificationDef;
-import org.apache.atlas.model.typedef.AtlasEntityDef;
-import org.apache.atlas.model.typedef.AtlasTypesDef;
-import org.apache.atlas.notification.NotificationConsumer;
-import org.apache.atlas.notification.NotificationInterface;
-import org.apache.atlas.notification.NotificationModule;
-import org.apache.atlas.notification.entity.EntityNotification;
-import org.apache.atlas.type.AtlasTypeUtil;
-import org.apache.atlas.typesystem.types.TypeUtils;
-import org.apache.commons.lang.RandomStringUtils;
-import org.codehaus.jettison.json.JSONArray;
-import org.joda.time.DateTime;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Guice;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-import com.sun.jersey.api.client.ClientResponse;
-
-
-/**
- * Integration tests for Entity Jersey Resource.
- */
-@Guice(modules = {NotificationModule.class})
-public class EntityV2JerseyResourceIT extends BaseResourceIT {
-
- private static final Logger LOG = LoggerFactory.getLogger(EntityV2JerseyResourceIT.class);
-
- private final String DATABASE_NAME = "db" + randomString();
- private final String TABLE_NAME = "table" + randomString();
- private String traitName;
-
- private AtlasEntity dbEntity;
- private AtlasEntity tableEntity;
- @Inject
- private NotificationInterface notificationInterface;
- private NotificationConsumer<EntityNotification> notificationConsumer;
-
- @BeforeClass
- public void setUp() throws Exception {
- super.setUp();
-
- createTypeDefinitionsV2();
-
- List<NotificationConsumer<EntityNotification>> consumers =
- notificationInterface.createConsumers(NotificationInterface.NotificationType.ENTITIES, 1);
-
- notificationConsumer = consumers.iterator().next();
- }
-
- @Test
- public void testSubmitEntity() throws Exception {
- TypeUtils.Pair dbAndTable = createDBAndTable();
- assertNotNull(dbAndTable);
- assertNotNull(dbAndTable.left);
- assertNotNull(dbAndTable.right);
- }
-
- @Test
- public void testCreateNestedEntities() throws Exception {
- AtlasEntity.AtlasEntitiesWithExtInfo entities = new AtlasEntity.AtlasEntitiesWithExtInfo();
-
- AtlasEntity databaseInstance = new AtlasEntity(DATABASE_TYPE_V2, "name", "db1");
- databaseInstance.setAttribute("name", "db1");
- databaseInstance.setAttribute("description", "foo database");
- databaseInstance.setAttribute("owner", "user1");
- databaseInstance.setAttribute("locationUri", "/tmp");
- databaseInstance.setAttribute("createTime",1000);
- entities.addEntity(databaseInstance);
-
- int nTables = 5;
- int colsPerTable=3;
-
- for(int i = 0; i < nTables; i++) {
- String tableName = "db1-table-" + i;
-
- AtlasEntity tableInstance = new AtlasEntity(HIVE_TABLE_TYPE_V2, "name", tableName);
- tableInstance.setAttribute(AtlasClient.REFERENCEABLE_ATTRIBUTE_NAME, tableName);
- tableInstance.setAttribute("db", AtlasTypeUtil.getAtlasObjectId(databaseInstance));
- tableInstance.setAttribute("description", tableName + " table");
- entities.addEntity(tableInstance);
-
- List<AtlasObjectId> columns = new ArrayList<>();
- for(int j = 0; j < colsPerTable; j++) {
- AtlasEntity columnInstance = new AtlasEntity(COLUMN_TYPE_V2);
- columnInstance.setAttribute("name", tableName + "-col-" + j);
- columnInstance.setAttribute("dataType", "String");
- columnInstance.setAttribute("comment", "column " + j + " for table " + i);
-
- columns.add(AtlasTypeUtil.getAtlasObjectId(columnInstance));
-
- entities.addReferredEntity(columnInstance);
- }
- tableInstance.setAttribute("columns", columns);
- }
-
- //Create the tables. The database and columns should be created automatically, since
- //the tables reference them.
-
- EntityMutationResponse response = atlasClientV2.createEntities(entities);
- Assert.assertNotNull(response);
-
- Map<String,String> guidsCreated = response.getGuidAssignments();
- assertEquals(guidsCreated.size(), nTables * colsPerTable + nTables + 1);
- assertNotNull(guidsCreated.get(databaseInstance.getGuid()));
-
- for(AtlasEntity r : entities.getEntities()) {
- assertNotNull(guidsCreated.get(r.getGuid()));
- }
-
- for(AtlasEntity r : entities.getReferredEntities().values()) {
- assertNotNull(guidsCreated.get(r.getGuid()));
- }
- }
-
- @Test
- public void testRequestUser() throws Exception {
- AtlasEntity hiveDBInstanceV2 = createHiveDB(randomString());
- List<EntityAuditEvent> events = atlasClientV1.getEntityAuditEvents(hiveDBInstanceV2.getGuid(), (short) 10);
- assertEquals(events.size(), 1);
- assertEquals(events.get(0).getUser(), "admin");
- }
-
- @Test
- public void testEntityDeduping() throws Exception {
- JSONArray results = searchByDSL(String.format("%s where name='%s'", DATABASE_TYPE_V2, DATABASE_NAME));
- assertEquals(results.length(), 1);
-
- final AtlasEntity hiveDBInstanceV2 = createHiveDB();
- // Do the notification thing here
- waitForNotification(notificationConsumer, MAX_WAIT_TIME, new NotificationPredicate() {
- @Override
- public boolean evaluate(EntityNotification notification) throws Exception {
- return notification != null && notification.getEntity().getId()._getId().equals(hiveDBInstanceV2.getGuid());
- }
- });
-
-
- results = searchByDSL(String.format("%s where name='%s'", DATABASE_TYPE_V2, DATABASE_NAME));
- assertEquals(results.length(), 1);
-
- //Test the same across references
- final String tableName = randomString();
- AtlasEntity hiveTableInstanceV2 = createHiveTableInstanceV2(hiveDBInstanceV2, tableName);
- hiveTableInstanceV2.setAttribute(AtlasClient.REFERENCEABLE_ATTRIBUTE_NAME, tableName);
-
- EntityMutationResponse entity = atlasClientV2.createEntity(new AtlasEntityWithExtInfo(hiveTableInstanceV2));
- assertNotNull(entity);
- assertNotNull(entity.getEntitiesByOperation(EntityMutations.EntityOperation.CREATE));
- results = searchByDSL(String.format("%s where name='%s'", DATABASE_TYPE_V2, DATABASE_NAME));
- assertEquals(results.length(), 1);
- }
-
- private void assertEntityAudit(String dbid, EntityAuditEvent.EntityAuditAction auditAction)
- throws Exception {
- List<EntityAuditEvent> events = atlasClientV1.getEntityAuditEvents(dbid, (short) 100);
- for (EntityAuditEvent event : events) {
- if (event.getAction() == auditAction) {
- return;
- }
- }
- fail("Expected audit event with action = " + auditAction);
- }
-
- @Test
- public void testEntityDefinitionAcrossTypeUpdate() throws Exception {
- //create type
- AtlasEntityDef entityDef = AtlasTypeUtil
- .createClassTypeDef(randomString(),
- ImmutableSet.<String>of(),
- AtlasTypeUtil.createUniqueRequiredAttrDef("name", "string")
- );
- AtlasTypesDef typesDef = new AtlasTypesDef();
- typesDef.getEntityDefs().add(entityDef);
-
- AtlasTypesDef created = atlasClientV2.createAtlasTypeDefs(typesDef);
- assertNotNull(created);
- assertNotNull(created.getEntityDefs());
- assertEquals(created.getEntityDefs().size(), 1);
-
- //create entity for the type
- AtlasEntity instance = new AtlasEntity(entityDef.getName());
- instance.setAttribute("name", randomString());
- EntityMutationResponse mutationResponse = atlasClientV2.createEntity(new AtlasEntityWithExtInfo(instance));
- assertNotNull(mutationResponse);
- assertNotNull(mutationResponse.getEntitiesByOperation(EntityMutations.EntityOperation.CREATE));
- assertEquals(mutationResponse.getEntitiesByOperation(EntityMutations.EntityOperation.CREATE).size(),1 );
- String guid = mutationResponse.getEntitiesByOperation(EntityMutations.EntityOperation.CREATE).get(0).getGuid();
-
- //update type - add attribute
- entityDef = AtlasTypeUtil.createClassTypeDef(entityDef.getName(), ImmutableSet.<String>of(),
- AtlasTypeUtil.createUniqueRequiredAttrDef("name", "string"),
- AtlasTypeUtil.createOptionalAttrDef("description", "string"));
-
- typesDef = new AtlasTypesDef();
- typesDef.getEntityDefs().add(entityDef);
-
- AtlasTypesDef updated = atlasClientV2.updateAtlasTypeDefs(typesDef);
- assertNotNull(updated);
- assertNotNull(updated.getEntityDefs());
- assertEquals(updated.getEntityDefs().size(), 1);
-
- //Get definition after type update - new attributes should be null
- AtlasEntity entityByGuid = getEntityByGuid(guid);
- assertNull(entityByGuid.getAttribute("description"));
- assertEquals(entityByGuid.getAttribute("name"), instance.getAttribute("name"));
- }
-
- @Test
- public void testEntityInvalidValue() throws Exception {
- AtlasEntity databaseInstance = new AtlasEntity(DATABASE_TYPE_V2);
- String dbName = randomString();
- String nullString = null;
- String emptyString = "";
- databaseInstance.setAttribute("name", dbName);
- databaseInstance.setAttribute("description", nullString);
- AtlasEntityHeader created = createEntity(databaseInstance);
-
- // null valid value for required attr - description
- assertNull(created);
-
- databaseInstance.setAttribute("description", emptyString);
- created = createEntity(databaseInstance);
-
- // empty string valid value for required attr
- assertNotNull(created);
-
- databaseInstance.setGuid(created.getGuid());
- databaseInstance.setAttribute("owner", nullString);
- databaseInstance.setAttribute("locationUri", emptyString);
-
- created = updateEntity(databaseInstance);
-
- // null/empty string valid value for optional attr
- assertNotNull(created);
- }
-
- @Test
- public void testGetEntityByAttribute() throws Exception {
- AtlasEntity hiveDB = createHiveDB();
- String qualifiedName = (String) hiveDB.getAttribute(NAME);
- //get entity by attribute
-
- AtlasEntity byAttribute = atlasClientV2.getEntityByAttribute(DATABASE_TYPE_V2, toMap(NAME, qualifiedName)).getEntity();
- assertEquals(byAttribute.getTypeName(), DATABASE_TYPE_V2);
- assertEquals(byAttribute.getAttribute(NAME), qualifiedName);
- }
-
- @Test
- public void testSubmitEntityWithBadDateFormat() throws Exception {
- AtlasEntity hiveDBEntity = createHiveDBInstanceV2("db" + randomString());
- AtlasEntityHeader hiveDBHeader = createEntity(hiveDBEntity);
- hiveDBEntity.setGuid(hiveDBHeader.getGuid());
-
- AtlasEntity tableInstance = createHiveTableInstanceV2(hiveDBEntity, "table" + randomString());
- //Dates with an invalid format are simply nulled out. This does not produce
- //an error. See AtlasBuiltInTypes.AtlasDateType.getNormalizedValue().
- tableInstance.setAttribute("lastAccessTime", 1107201407);
- AtlasEntityHeader tableEntityHeader = createEntity(tableInstance);
- assertNotNull(tableEntityHeader);
- }
-
- @Test(dependsOnMethods = "testSubmitEntity")
- public void testAddProperty() throws Exception {
- //add property
- String description = "bar table - new desc";
- addProperty(createHiveTable().getGuid(), "description", description);
-
- AtlasEntity entityByGuid = getEntityByGuid(createHiveTable().getGuid());
- Assert.assertNotNull(entityByGuid);
-
- entityByGuid.setAttribute("description", description);
-
- // TODO: This behavior should've been consistent across APIs
-// //invalid property for the type
-// try {
-// addProperty(table.getGuid(), "invalid_property", "bar table");
-// Assert.fail("Expected AtlasServiceException");
-// } catch (AtlasServiceException e) {
-// assertNotNull(e.getStatus());
-// assertEquals(e.getStatus(), ClientResponse.Status.BAD_REQUEST);
-// }
-
- //non-string property, update
- Object currentTime = new DateTime();
- addProperty(createHiveTable().getGuid(), "createTime", currentTime);
-
- entityByGuid = getEntityByGuid(createHiveTable().getGuid());
- Assert.assertNotNull(entityByGuid);
- }
-
- @Test
- public void testAddNullPropertyValue() throws Exception {
- // FIXME: Behavior has changed between v1 and v2
- //add property
-// try {
- addProperty(createHiveTable().getGuid(), "description", null);
-// Assert.fail("Expected AtlasServiceException");
-// } catch(AtlasServiceException e) {
-// Assert.assertEquals(e.getStatus().getStatusCode(), Response.Status.BAD_REQUEST.getStatusCode());
-// }
- }
-
- @Test(expectedExceptions = AtlasServiceException.class)
- public void testGetInvalidEntityDefinition() throws Exception {
- getEntityByGuid("blah");
- }
-
- @Test(dependsOnMethods = "testSubmitEntity", enabled = false)
- public void testGetEntityList() throws Exception {
- // TODO: Can only be done when there's a search API exposed from entity REST
- }
-
- @Test(enabled = false)
- public void testGetEntityListForBadEntityType() throws Exception {
- // FIXME: Complete test when search interface is in place
- }
-
- @Test(enabled = false)
- public void testGetEntityListForNoInstances() throws Exception {
- // FIXME: Complete test when search interface is in place
- /*
- String typeName = "";
-
- ClientResponse clientResponse =
- service.path(ENTITIES).queryParam("type", typeName).accept(Servlets.JSON_MEDIA_TYPE)
- .type(Servlets.JSON_MEDIA_TYPE).method(HttpMethod.GET, ClientResponse.class);
- Assert.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.REQUEST_ID));
-
- final JSONArray list = response.getJSONArray(AtlasClient.RESULTS);
- Assert.assertEquals(list.length(), 0);
- */
- }
-
- private String addNewType() throws Exception {
- String typeName = "test" + randomString();
- AtlasEntityDef classTypeDef = AtlasTypeUtil
- .createClassTypeDef(typeName, ImmutableSet.<String>of(),
- AtlasTypeUtil.createRequiredAttrDef("name", "string"),
- AtlasTypeUtil.createRequiredAttrDef("description", "string"));
- AtlasTypesDef typesDef = new AtlasTypesDef();
- typesDef.getEntityDefs().add(classTypeDef);
- createType(typesDef);
- return typeName;
- }
-
- @Test(dependsOnMethods = "testSubmitEntity")
- public void testGetTraitNames() throws Exception {
- AtlasClassifications classifications = atlasClientV2.getClassifications(createHiveTable().getGuid());
- assertNotNull(classifications);
- assertTrue(classifications.getList().size() > 0);
- assertEquals(classifications.getList().size(), 8);
- }
-
- @Test(dependsOnMethods = "testSubmitEntity")
- public void testCommonAttributes() throws Exception{
- AtlasEntity entity = getEntityByGuid(createHiveTable().getGuid());
- Assert.assertNotNull(entity.getStatus());
- Assert.assertNotNull(entity.getVersion());
- Assert.assertNotNull(entity.getCreatedBy());
- Assert.assertNotNull(entity.getCreateTime());
- Assert.assertNotNull(entity.getUpdatedBy());
- Assert.assertNotNull(entity.getUpdateTime());
- }
-
- private void addProperty(String guid, String property, Object value) throws AtlasServiceException {
-
- AtlasEntity entityByGuid = getEntityByGuid(guid);
- entityByGuid.setAttribute(property, value);
- EntityMutationResponse response = atlasClientV2.updateEntity(new AtlasEntityWithExtInfo(entityByGuid));
- assertNotNull(response);
- assertNotNull(response.getEntitiesByOperation(EntityMutations.EntityOperation.UPDATE));
- }
-
- private AtlasEntity createHiveDB() {
- if (dbEntity == null) {
- dbEntity = createHiveDB(DATABASE_NAME);
- }
- return dbEntity;
- }
-
- private AtlasEntity createHiveDB(String dbName) {
- AtlasEntity hiveDBInstanceV2 = createHiveDBInstanceV2(dbName);
- AtlasEntityHeader entityHeader = createEntity(hiveDBInstanceV2);
- assertNotNull(entityHeader);
- assertNotNull(entityHeader.getGuid());
- hiveDBInstanceV2.setGuid(entityHeader.getGuid());
- return hiveDBInstanceV2;
- }
-
- private TypeUtils.Pair<AtlasEntity, AtlasEntity> createDBAndTable() throws Exception {
- AtlasEntity dbInstanceV2 = createHiveDB();
- AtlasEntity hiveTableInstanceV2 = createHiveTable();
- return TypeUtils.Pair.of(dbInstanceV2, hiveTableInstanceV2);
- }
-
- private AtlasEntity createHiveTable() throws Exception {
- if (tableEntity == null) {
- tableEntity = createHiveTable(createHiveDB(), TABLE_NAME);
- }
- return tableEntity;
-
- }
-
- private AtlasEntity createHiveTable(AtlasEntity dbInstanceV2, String tableName) throws Exception {
- AtlasEntity hiveTableInstanceV2 = createHiveTableInstanceV2(dbInstanceV2, tableName);
- AtlasEntityHeader createdHeader = createEntity(hiveTableInstanceV2);
- assertNotNull(createdHeader);
- assertNotNull(createdHeader.getGuid());
- hiveTableInstanceV2.setGuid(createdHeader.getGuid());
- tableEntity = hiveTableInstanceV2;
- return hiveTableInstanceV2;
- }
-
- @Test(dependsOnMethods = "testGetTraitNames")
- public void testAddTrait() throws Exception {
- traitName = "PII_Trait" + randomString();
- AtlasClassificationDef piiTrait =
- AtlasTypeUtil.createTraitTypeDef(traitName, ImmutableSet.<String>of());
- AtlasTypesDef typesDef = new AtlasTypesDef();
- typesDef.getClassificationDefs().add(piiTrait);
- createType(typesDef);
-
- atlasClientV2.addClassifications(createHiveTable().getGuid(), ImmutableList.of(new AtlasClassification(piiTrait.getName())));
-
- assertEntityAudit(createHiveTable().getGuid(), EntityAuditEvent.EntityAuditAction.TAG_ADD);
- }
-
- @Test(dependsOnMethods = "testSubmitEntity")
- public void testGetTraitDefinitionForEntity() throws Exception{
- traitName = "PII_Trait" + randomString();
- AtlasClassificationDef piiTrait =
- AtlasTypeUtil.createTraitTypeDef(traitName, ImmutableSet.<String>of());
- AtlasTypesDef typesDef = new AtlasTypesDef();
- typesDef.getClassificationDefs().add(piiTrait);
- createType(typesDef);
-
- AtlasClassificationDef classificationByName = atlasClientV2.getClassificationDefByName(traitName);
- assertNotNull(classificationByName);
-
- AtlasEntity hiveTable = createHiveTable();
- assertEquals(hiveTable.getClassifications().size(), 7);
-
- AtlasClassification piiClassification = new AtlasClassification(piiTrait.getName());
-
- atlasClientV2.addClassifications(hiveTable.getGuid(), Lists.newArrayList(piiClassification));
-
- AtlasClassifications classifications = atlasClientV2.getClassifications(hiveTable.getGuid());
- assertNotNull(classifications);
- assertTrue(classifications.getList().size() > 0);
- assertEquals(classifications.getList().size(), 8);
- }
-
-
- @Test(dependsOnMethods = "testGetTraitNames")
- public void testAddTraitWithAttribute() throws Exception {
- final String traitName = "PII_Trait" + randomString();
- AtlasClassificationDef piiTrait = AtlasTypeUtil
- .createTraitTypeDef(traitName, ImmutableSet.<String>of(),
- AtlasTypeUtil.createRequiredAttrDef("type", "string"));
- AtlasTypesDef typesDef = new AtlasTypesDef();
- typesDef.getClassificationDefs().add(piiTrait);
- createType(typesDef);
-
- AtlasClassification traitInstance = new AtlasClassification(traitName);
- traitInstance.setAttribute("type", "SSN");
-
- final String guid = createHiveTable().getGuid();
- atlasClientV2.addClassifications(guid, ImmutableList.of(traitInstance));
-
- // verify the response
- AtlasEntity withAssociationByGuid = atlasClientV2.getEntityByGuid(guid).getEntity();
- assertNotNull(withAssociationByGuid);
- assertFalse(withAssociationByGuid.getClassifications().isEmpty());
-
- boolean found = false;
- for (AtlasClassification atlasClassification : withAssociationByGuid.getClassifications()) {
- String attribute = (String)atlasClassification.getAttribute("type");
- if (attribute != null && attribute.equals("SSN")) {
- found = true;
- break;
- }
- }
- assertTrue(found);
- }
-
- @Test(expectedExceptions = AtlasServiceException.class)
- public void testAddTraitWithNoRegistration() throws Exception {
- final String traitName = "PII_Trait" + randomString();
- AtlasTypeUtil.createTraitTypeDef(traitName, ImmutableSet.<String>of());
-
- AtlasClassification traitInstance = new AtlasClassification(traitName);
-
- atlasClientV2.addClassifications("random", ImmutableList.of(traitInstance));
- }
-
- @Test(dependsOnMethods = "testAddTrait")
- public void testDeleteTrait() throws Exception {
- final String guid = createHiveTable().getGuid();
-
- try {
- atlasClientV2.deleteClassification(guid, traitName);
- } catch (AtlasServiceException ex) {
- fail("Deletion should've succeeded");
- }
- assertEntityAudit(guid, EntityAuditEvent.EntityAuditAction.TAG_DELETE);
- }
-
- @Test
- public void testDeleteTraitNonExistent() throws Exception {
- final String traitName = "blah_trait";
-
- try {
- atlasClientV2.deleteClassification("random", traitName);
- fail("Deletion for bogus names shouldn't have succeeded");
- } catch (AtlasServiceException ex) {
- assertNotNull(ex.getStatus());
-// assertEquals(ex.getStatus(), ClientResponse.Status.NOT_FOUND);
- assertEquals(ex.getStatus(), ClientResponse.Status.BAD_REQUEST);
- // Should it be a 400 or 404
- }
- }
-
- @Test(dependsOnMethods = "testSubmitEntity")
- public void testDeleteExistentTraitNonExistentForEntity() throws Exception {
-
- final String guid = createHiveTable().getGuid();
- final String traitName = "PII_Trait" + randomString();
- AtlasClassificationDef piiTrait = AtlasTypeUtil
- .createTraitTypeDef(traitName, ImmutableSet.<String>of(),
- AtlasTypeUtil.createRequiredAttrDef("type", "string"));
- AtlasTypesDef typesDef = new AtlasTypesDef();
- typesDef.getClassificationDefs().add(piiTrait);
- createType(typesDef);
-
- try {
- atlasClientV2.deleteClassification(guid, traitName);
- fail("Deletion should've failed for non-existent trait association");
- } catch (AtlasServiceException ex) {
- Assert.assertNotNull(ex.getStatus());
- assertEquals(ex.getStatus(), ClientResponse.Status.NOT_FOUND);
- }
- }
-
- private String random() {
- return RandomStringUtils.random(10);
- }
-
- @Test
- public void testUTF8() throws Exception {
- String classType = randomString();
- String attrName = random();
- String attrValue = random();
-
- AtlasEntityDef classTypeDef = AtlasTypeUtil
- .createClassTypeDef(classType, ImmutableSet.<String>of(),
- AtlasTypeUtil.createUniqueRequiredAttrDef(attrName, "string"));
- AtlasTypesDef atlasTypesDef = new AtlasTypesDef();
- atlasTypesDef.getEntityDefs().add(classTypeDef);
- createType(atlasTypesDef);
-
- AtlasEntity instance = new AtlasEntity(classType);
- instance.setAttribute(attrName, attrValue);
- AtlasEntityHeader entity = createEntity(instance);
- assertNotNull(entity);
- assertNotNull(entity.getGuid());
-
- AtlasEntity entityByGuid = getEntityByGuid(entity.getGuid());
- assertEquals(entityByGuid.getAttribute(attrName), attrValue);
- }
-
- @Test(dependsOnMethods = "testSubmitEntity")
- public void testPartialUpdate() throws Exception {
- final List<AtlasEntity> columns = new ArrayList<>();
- Map<String, Object> values = new HashMap<>();
- values.put("name", "col1");
- values.put(NAME, "qualifiedName.col1");
- values.put("type", "string");
- values.put("comment", "col1 comment");
-
- AtlasEntity colEntity = new AtlasEntity(BaseResourceIT.COLUMN_TYPE_V2, values);
- columns.add(colEntity);
- AtlasEntity hiveTable = createHiveTable();
- AtlasEntity tableUpdated = hiveTable;
-
- hiveTable.setAttribute("columns", AtlasTypeUtil.toObjectIds(columns));
-
- AtlasEntityWithExtInfo entityInfo = new AtlasEntityWithExtInfo(tableUpdated);
- entityInfo.addReferredEntity(colEntity);
-
- LOG.debug("Full Update entity= " + tableUpdated);
- EntityMutationResponse updateResult = atlasClientV2.updateEntity(entityInfo);
- assertNotNull(updateResult);
- assertNotNull(updateResult.getEntitiesByOperation(EntityMutations.EntityOperation.UPDATE));
- assertTrue(updateResult.getEntitiesByOperation(EntityMutations.EntityOperation.UPDATE).size() > 0);
-
- String guid = hiveTable.getGuid();
- AtlasEntity entityByGuid1 = getEntityByGuid(guid);
- assertNotNull(entityByGuid1);
- entityByGuid1.getAttribute("columns");
-
- values.put("type", "int");
- colEntity = new AtlasEntity(BaseResourceIT.COLUMN_TYPE_V2, values);
- columns.clear();
- columns.add(colEntity);
-
- tableUpdated = new AtlasEntity(HIVE_TABLE_TYPE_V2, "name", entityByGuid1.getAttribute("name"));
- tableUpdated.setGuid(entityByGuid1.getGuid());
- tableUpdated.setAttribute("columns", AtlasTypeUtil.toObjectIds(columns));
-
- // tableUpdated = hiveTable;
- // tableUpdated.setAttribute("columns", AtlasTypeUtil.toObjectIds(columns));
-
- LOG.debug("Partial Update entity by unique attributes= " + tableUpdated);
- Map<String, String> uniqAttributes = new HashMap<>();
- uniqAttributes.put(AtlasClient.REFERENCEABLE_ATTRIBUTE_NAME, (String) hiveTable.getAttribute("name"));
-
- entityInfo = new AtlasEntityWithExtInfo(tableUpdated);
- entityInfo.addReferredEntity(colEntity);
-
- EntityMutationResponse updateResponse = atlasClientV2.updateEntityByAttribute(BaseResourceIT.HIVE_TABLE_TYPE_V2, uniqAttributes, entityInfo);
-
- assertNotNull(updateResponse);
- assertNotNull(updateResponse.getEntitiesByOperation(EntityMutations.EntityOperation.PARTIAL_UPDATE));
- assertTrue(updateResponse.getEntitiesByOperation(EntityMutations.EntityOperation.PARTIAL_UPDATE).size() > 0);
-
- AtlasEntity entityByGuid2 = getEntityByGuid(guid);
- assertNotNull(entityByGuid2);
- }
-
- private AtlasEntity getEntityByGuid(String guid) throws AtlasServiceException {
- return atlasClientV2.getEntityByGuid(guid).getEntity();
- }
-
- @Test(dependsOnMethods = "testSubmitEntity")
- public void testCompleteUpdate() throws Exception {
- final List<AtlasEntity> columns = new ArrayList<>();
- Map<String, Object> values1 = new HashMap<>();
- values1.put("name", "col3");
- values1.put(NAME, "qualifiedName.col3");
- values1.put("type", "string");
- values1.put("comment", "col3 comment");
-
- Map<String, Object> values2 = new HashMap<>();
- values2.put("name", "col4");
- values2.put(NAME, "qualifiedName.col4");
- values2.put("type", "string");
- values2.put("comment", "col4 comment");
-
- AtlasEntity colEntity1 = new AtlasEntity(BaseResourceIT.COLUMN_TYPE_V2, values1);
- AtlasEntity colEntity2 = new AtlasEntity(BaseResourceIT.COLUMN_TYPE_V2, values2);
- columns.add(colEntity1);
- columns.add(colEntity2);
- AtlasEntity hiveTable = createHiveTable();
- hiveTable.setAttribute("columns", AtlasTypeUtil.toObjectIds(columns));
-
- AtlasEntityWithExtInfo entityInfo = new AtlasEntityWithExtInfo(hiveTable);
- entityInfo.addReferredEntity(colEntity1);
- entityInfo.addReferredEntity(colEntity2);
-
- EntityMutationResponse updateEntityResult = atlasClientV2.updateEntity(entityInfo);
- assertNotNull(updateEntityResult);
- assertNotNull(updateEntityResult.getEntitiesByOperation(EntityMutations.EntityOperation.UPDATE));
- assertNotNull(updateEntityResult.getEntitiesByOperation(EntityMutations.EntityOperation.CREATE));
- //2 columns are being created, and 1 hiveTable is being updated
- assertEquals(updateEntityResult.getEntitiesByOperation(EntityMutations.EntityOperation.UPDATE).size(), 1);
- assertEquals(updateEntityResult.getEntitiesByOperation(EntityMutations.EntityOperation.CREATE).size(), 2);
-
- AtlasEntity entityByGuid = getEntityByGuid(hiveTable.getGuid());
- List<AtlasObjectId> refs = (List<AtlasObjectId>) entityByGuid.getAttribute("columns");
- assertEquals(refs.size(), 2);
- }
-
- @Test
- public void testDeleteEntities() throws Exception {
- // Create 2 database entities
- AtlasEntity db1 = new AtlasEntity(DATABASE_TYPE_V2);
- String dbName1 = randomString();
- db1.setAttribute("name", dbName1);
- db1.setAttribute(NAME, dbName1);
- db1.setAttribute("clusterName", randomString());
- db1.setAttribute("description", randomString());
- AtlasEntityHeader entity1Header = createEntity(db1);
- AtlasEntity db2 = new AtlasEntity(DATABASE_TYPE_V2);
- String dbName2 = randomString();
- db2.setAttribute("name", dbName2);
- db2.setAttribute(NAME, dbName2);
- db2.setAttribute("clusterName", randomString());
- db2.setAttribute("description", randomString());
- AtlasEntityHeader entity2Header = createEntity(db2);
-
- // Delete the database entities
- EntityMutationResponse deleteResponse = atlasClientV2.deleteEntitiesByGuids(ImmutableList.of(entity1Header.getGuid(), entity2Header.getGuid()));
-
- // Verify that deleteEntities() response has database entity guids
- assertNotNull(deleteResponse);
- assertNotNull(deleteResponse.getEntitiesByOperation(EntityMutations.EntityOperation.DELETE));
- assertEquals(deleteResponse.getEntitiesByOperation(EntityMutations.EntityOperation.DELETE).size(), 2);
-
- // Verify entities were deleted from the repository.
- }
-
- @Test
- public void testDeleteEntityByUniqAttribute() throws Exception {
- // Create database entity
- AtlasEntity hiveDB = createHiveDB(DATABASE_NAME + random());
-
- // Delete the database entity
- EntityMutationResponse deleteResponse = atlasClientV2.deleteEntityByAttribute(DATABASE_TYPE_V2, toMap(NAME, (String) hiveDB.getAttribute(NAME)));
-
- // Verify that deleteEntities() response has database entity guids
- assertNotNull(deleteResponse);
- assertNotNull(deleteResponse.getEntitiesByOperation(EntityMutations.EntityOperation.DELETE));
- assertEquals(deleteResponse.getEntitiesByOperation(EntityMutations.EntityOperation.DELETE).size(), 1);
-
- // Verify entities were deleted from the repository.
- }
-
- private Map<String, String> toMap(final String name, final String value) {
- return new HashMap<String, String>() {{
- put(name, value);
- }};
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/35e5828f/webapp/src/test/java/org/apache/atlas/web/resources/MetadataDiscoveryJerseyResourceIT.java
----------------------------------------------------------------------
diff --git a/webapp/src/test/java/org/apache/atlas/web/resources/MetadataDiscoveryJerseyResourceIT.java b/webapp/src/test/java/org/apache/atlas/web/resources/MetadataDiscoveryJerseyResourceIT.java
deleted file mode 100755
index 87d8719..0000000
--- a/webapp/src/test/java/org/apache/atlas/web/resources/MetadataDiscoveryJerseyResourceIT.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.atlas.web.resources;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.core.util.MultivaluedMapImpl;
-import org.apache.atlas.AtlasClient;
-import org.apache.atlas.AtlasServiceException;
-import org.apache.atlas.typesystem.Referenceable;
-import org.apache.atlas.typesystem.Struct;
-import org.apache.atlas.typesystem.TypesDef;
-import org.apache.atlas.typesystem.persistence.Id;
-import org.apache.atlas.typesystem.types.ClassType;
-import org.apache.atlas.typesystem.types.DataTypes;
-import org.apache.atlas.typesystem.types.EnumTypeDefinition;
-import org.apache.atlas.typesystem.types.HierarchicalTypeDefinition;
-import org.apache.atlas.typesystem.types.StructTypeDefinition;
-import org.apache.atlas.typesystem.types.TraitType;
-import org.apache.atlas.typesystem.types.utils.TypesUtil;
-import org.codehaus.jettison.json.JSONArray;
-import org.codehaus.jettison.json.JSONObject;
-import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import javax.ws.rs.core.MultivaluedMap;
-import java.util.List;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.fail;
-
-/**
- * Search Integration Tests.
- */
-public class MetadataDiscoveryJerseyResourceIT extends BaseResourceIT {
-
- private String tagName;
- private String dbName;
-
- @BeforeClass
- public void setUp() throws Exception {
- super.setUp();
- dbName = "db"+randomString();
- createTypes();
- createInstance( createHiveDBInstanceV1(dbName) );
- }
-
- @Test
- public void testSearchByDSL() throws Exception {
- String dslQuery = "from "+ DATABASE_TYPE + " name=\"" + dbName + "\"";
- MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
- queryParams.add("query", dslQuery);
- JSONObject response = atlasClientV1.callAPIWithQueryParams(AtlasClient.API.SEARCH_DSL, queryParams);
-
- Assert.assertNotNull(response);
- Assert.assertNotNull(response.get(AtlasClient.REQUEST_ID));
-
- assertEquals(response.getString("query"), dslQuery);
- assertEquals(response.getString("queryType"), "dsl");
-
- JSONArray results = response.getJSONArray(AtlasClient.RESULTS);
- assertNotNull(results);
- assertEquals(results.length(), 1);
-
- int numRows = response.getInt(AtlasClient.COUNT);
- assertEquals(numRows, 1);
- }
-
- @Test
- public void testSearchDSLLimits() throws Exception {
-
- //search without new parameters of limit and offset should work
- String dslQuery = "from "+ DATABASE_TYPE + " name=\"" + dbName + "\"";
- MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
- queryParams.add("query", dslQuery);
- JSONObject response = atlasClientV1.callAPIWithQueryParams(AtlasClient.API.SEARCH_DSL, queryParams);
- assertNotNull(response);
-
- //higher limit, all results returned
- JSONArray results = atlasClientV1.searchByDSL(dslQuery, 10, 0);
- assertEquals(results.length(), 1);
-
- //default limit and offset -1, all results returned
- results = atlasClientV1.searchByDSL(dslQuery, -1, -1);
- assertEquals(results.length(), 1);
-
- //uses the limit parameter passed
- results = atlasClientV1.searchByDSL(dslQuery, 1, 0);
- assertEquals(results.length(), 1);
-
- //uses the offset parameter passed
- results = atlasClientV1.searchByDSL(dslQuery, 10, 1);
- assertEquals(results.length(), 0);
-
- //limit > 0
- try {
- atlasClientV1.searchByDSL(dslQuery, 0, 10);
- fail("Expected BAD_REQUEST");
- } catch (AtlasServiceException e) {
- assertEquals(e.getStatus(), ClientResponse.Status.BAD_REQUEST, "Got " + e.getStatus());
- }
-
- //limit > maxlimit
- try {
- atlasClientV1.searchByDSL(dslQuery, Integer.MAX_VALUE, 10);
- fail("Expected BAD_REQUEST");
- } catch (AtlasServiceException e) {
- assertEquals(e.getStatus(), ClientResponse.Status.BAD_REQUEST, "Got " + e.getStatus());
- }
-
- //offset >= 0
- try {
- atlasClientV1.searchByDSL(dslQuery, 10, -2);
- fail("Expected BAD_REQUEST");
- } catch (AtlasServiceException e) {
- assertEquals(e.getStatus(), ClientResponse.Status.BAD_REQUEST, "Got " + e.getStatus());
- }
- }
-
- @Test(expectedExceptions = AtlasServiceException.class)
- public void testSearchByDSLForUnknownType() throws Exception {
- String dslQuery = "from blah";
- MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
- queryParams.add("query", dslQuery);
- atlasClientV1.callAPIWithQueryParams(AtlasClient.API.SEARCH_DSL, queryParams);
- }
-
- @Test
- public void testSearchUsingGremlin() throws Exception {
- String query = "g.V.has('type', '" + BaseResourceIT.HIVE_TABLE_TYPE + "').toList()";
- MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
- queryParams.add("query", query);
-
- JSONObject response = atlasClientV1.callAPIWithQueryParams(AtlasClient.API.GREMLIN_SEARCH, queryParams);
-
- assertNotNull(response);
- assertNotNull(response.get(AtlasClient.REQUEST_ID));
-
- assertEquals(response.getString("query"), query);
- assertEquals(response.getString("queryType"), "gremlin");
- }
-
- @Test
- public void testSearchUsingDSL() throws Exception {
- //String query = "from dsl_test_type";
- String query = "from "+ DATABASE_TYPE + " name=\"" + dbName +"\"";
- MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
- queryParams.add("query", query);
- JSONObject response = atlasClientV1.callAPIWithQueryParams(AtlasClient.API.SEARCH, queryParams);
-
- Assert.assertNotNull(response);
- Assert.assertNotNull(response.get(AtlasClient.REQUEST_ID));
-
- assertEquals(response.getString("query"), query);
- assertEquals(response.getString("queryType"), "dsl");
- }
-
- @Test
- public void testSearchFullTextOnDSLFailure() throws Exception {
- String query = "*";
- MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
- queryParams.add("query", query);
- JSONObject response = atlasClientV1.callAPIWithQueryParams(AtlasClient.API.SEARCH, queryParams);
-
- Assert.assertNotNull(response);
- Assert.assertNotNull(response.get(AtlasClient.REQUEST_ID));
-
- assertEquals(response.getString("query"), query);
- assertEquals(response.getString("queryType"), "full-text");
- }
-
- @Test(dependsOnMethods = "testSearchDSLLimits")
- public void testSearchUsingFullText() throws Exception {
- JSONObject response = atlasClientV1.searchByFullText(dbName, 10, 0);
- assertNotNull(response.get(AtlasClient.REQUEST_ID));
-
- assertEquals(response.getString("query"), dbName);
- assertEquals(response.getString("queryType"), "full-text");
-
- JSONArray results = response.getJSONArray(AtlasClient.RESULTS);
- assertEquals(results.length(), 1, "Results: " + results);
-
- JSONObject row = results.getJSONObject(0);
- assertNotNull(row.get("guid"));
- assertEquals(row.getString("typeName"), DATABASE_TYPE);
- assertNotNull(row.get("score"));
-
- int numRows = response.getInt(AtlasClient.COUNT);
- assertEquals(numRows, 1);
-
- //API works without limit and offset
- String query = dbName;
- MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
- queryParams.add("query", query);
- response = atlasClientV1.callAPIWithQueryParams(AtlasClient.API.SEARCH_FULL_TEXT, queryParams);
- results = response.getJSONArray(AtlasClient.RESULTS);
- assertEquals(results.length(), 1);
-
- //verify passed in limits and offsets are used
- //higher limit and 0 offset returns all results
- results = atlasClientV1.searchByFullText(query, 10, 0).getJSONArray(AtlasClient.RESULTS);
- assertEquals(results.length(), 1);
-
- //offset is used
- results = atlasClientV1.searchByFullText(query, 10, 1).getJSONArray(AtlasClient.RESULTS);
- assertEquals(results.length(), 0);
-
- //limit is used
- results = atlasClientV1.searchByFullText(query, 1, 0).getJSONArray(AtlasClient.RESULTS);
- assertEquals(results.length(), 1);
-
- //higher offset returns 0 results
- results = atlasClientV1.searchByFullText(query, 1, 2).getJSONArray(AtlasClient.RESULTS);
- assertEquals(results.length(), 0);
- }
-
- private void createTypes() throws Exception {
- createTypeDefinitionsV1();
-
- HierarchicalTypeDefinition<ClassType> dslTestTypeDefinition = TypesUtil
- .createClassTypeDef("dsl_test_type", ImmutableSet.<String>of(),
- TypesUtil.createUniqueRequiredAttrDef("name", DataTypes.STRING_TYPE),
- TypesUtil.createRequiredAttrDef("description", DataTypes.STRING_TYPE));
-
- HierarchicalTypeDefinition<TraitType> classificationTraitDefinition = TypesUtil
- .createTraitTypeDef("Classification", ImmutableSet.<String>of(),
- TypesUtil.createRequiredAttrDef("tag", DataTypes.STRING_TYPE));
- TypesDef typesDef = TypesUtil.getTypesDef(ImmutableList.<EnumTypeDefinition>of(), ImmutableList.<StructTypeDefinition>of(),
- ImmutableList.of(classificationTraitDefinition), ImmutableList.of(dslTestTypeDefinition));
- createType(typesDef);
- }
-
- private Id createInstance() throws Exception {
- Referenceable entityInstance = new Referenceable("dsl_test_type", "Classification");
- entityInstance.set("name", randomString());
- entityInstance.set("description", randomString());
-
-
- Struct traitInstance = (Struct) entityInstance.getTrait("Classification");
- tagName = randomString();
- traitInstance.set("tag", tagName);
-
- List<String> traits = entityInstance.getTraits();
- assertEquals(traits.size(), 1);
-
- return createInstance(entityInstance);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/35e5828f/webapp/src/test/java/org/apache/atlas/web/resources/TypedefsJerseyResourceIT.java
----------------------------------------------------------------------
diff --git a/webapp/src/test/java/org/apache/atlas/web/resources/TypedefsJerseyResourceIT.java b/webapp/src/test/java/org/apache/atlas/web/resources/TypedefsJerseyResourceIT.java
deleted file mode 100644
index a6a0568..0000000
--- a/webapp/src/test/java/org/apache/atlas/web/resources/TypedefsJerseyResourceIT.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.atlas.web.resources;
-
-import com.google.common.collect.ImmutableSet;
-import com.sun.jersey.core.util.MultivaluedMapImpl;
-import org.apache.atlas.AtlasClientV2;
-import org.apache.atlas.AtlasServiceException;
-import org.apache.atlas.model.SearchFilter;
-import org.apache.atlas.model.TypeCategory;
-import org.apache.atlas.model.typedef.AtlasBaseTypeDef;
-import org.apache.atlas.model.typedef.AtlasClassificationDef;
-import org.apache.atlas.model.typedef.AtlasEntityDef;
-import org.apache.atlas.model.typedef.AtlasEnumDef;
-import org.apache.atlas.model.typedef.AtlasStructDef;
-import org.apache.atlas.model.typedef.AtlasStructDef.AtlasAttributeDef;
-import org.apache.atlas.model.typedef.AtlasStructDef.AtlasConstraintDef;
-import org.apache.atlas.model.typedef.AtlasTypesDef;
-import org.apache.atlas.type.AtlasTypeUtil;
-import org.apache.atlas.typesystem.types.DataTypes;
-import org.apache.atlas.utils.AuthenticationUtil;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import java.util.Collections;
-
-import static org.apache.atlas.model.typedef.AtlasStructDef.AtlasAttributeDef.Cardinality;
-import static org.apache.atlas.type.AtlasTypeUtil.createClassTypeDef;
-import static org.testng.Assert.*;
-
-/**
- * Integration test for types jersey resource.
- */
-public class TypedefsJerseyResourceIT extends BaseResourceIT {
-
- private AtlasTypesDef typeDefinitions;
-
- private AtlasClientV2 clientV2;
-
- @BeforeClass
- public void setUp() throws Exception {
- super.setUp();
-
- typeDefinitions = createHiveTypes();
-
- if (!AuthenticationUtil.isKerberosAuthenticationEnabled()) {
- clientV2 = new AtlasClientV2(atlasUrls, new String[]{"admin", "admin"});
- } else {
- clientV2 = new AtlasClientV2(atlasUrls);
- }
- }
-
- @AfterClass
- public void tearDown() throws Exception {
- emptyTypeDefs(typeDefinitions);
- }
-
- @Test
- public void testCreate() throws Exception {
- AtlasTypesDef atlasTypeDefs = clientV2.createAtlasTypeDefs(typeDefinitions);
- Assert.assertNotNull(atlasTypeDefs);
- assertFalse(atlasTypeDefs.isEmpty());
- }
-
- @Test
- public void testDuplicateCreate() throws Exception {
- AtlasEntityDef type = createClassTypeDef(randomString(),
- ImmutableSet.<String>of(), AtlasTypeUtil.createUniqueRequiredAttrDef("name", "string"));
- AtlasTypesDef typesDef = new AtlasTypesDef();
- typesDef.getEntityDefs().add(type);
-
- AtlasTypesDef created = clientV2.createAtlasTypeDefs(typesDef);
- assertNotNull(created);
-
- try {
- created = clientV2.createAtlasTypeDefs(typesDef);
- fail("Expected 409");
- } catch (AtlasServiceException e) {
- assertEquals(e.getStatus().getStatusCode(), Response.Status.CONFLICT.getStatusCode());
- }
- }
-
- @Test
- public void testUpdate() throws Exception {
- String entityType = randomString();
- AtlasEntityDef typeDefinition =
- createClassTypeDef(entityType, ImmutableSet.<String>of(),
- AtlasTypeUtil.createUniqueRequiredAttrDef("name", "string"));
-
- AtlasTypesDef atlasTypesDef = new AtlasTypesDef();
- atlasTypesDef.getEntityDefs().add(typeDefinition);
-
- AtlasTypesDef createdTypeDefs = clientV2.createAtlasTypeDefs(atlasTypesDef);
- assertNotNull(createdTypeDefs);
- assertEquals(createdTypeDefs.getEntityDefs().size(), atlasTypesDef.getEntityDefs().size());
-
- //Add attribute description
- typeDefinition = createClassTypeDef(typeDefinition.getName(),
- ImmutableSet.<String>of(),
- AtlasTypeUtil.createUniqueRequiredAttrDef("name", "string"),
- AtlasTypeUtil.createOptionalAttrDef("description", "string"));
-
- emptyTypeDefs(atlasTypesDef);
-
- atlasTypesDef.getEntityDefs().add(typeDefinition);
-
- AtlasTypesDef updatedTypeDefs = clientV2.updateAtlasTypeDefs(atlasTypesDef);
- assertNotNull(updatedTypeDefs);
- assertEquals(updatedTypeDefs.getEntityDefs().size(), atlasTypesDef.getEntityDefs().size());
- assertEquals(updatedTypeDefs.getEntityDefs().get(0).getName(), atlasTypesDef.getEntityDefs().get(0).getName());
-
- MultivaluedMap<String, String> filterParams = new MultivaluedMapImpl();
- filterParams.add(SearchFilter.PARAM_TYPE, "ENTITY");
- AtlasTypesDef allTypeDefs = clientV2.getAllTypeDefs(new SearchFilter(filterParams));
- assertNotNull(allTypeDefs);
- Boolean entityDefFound = false;
- for (AtlasEntityDef atlasEntityDef : allTypeDefs.getEntityDefs()){
- if (atlasEntityDef.getName().equals(typeDefinition.getName())) {
- assertEquals(atlasEntityDef.getAttributeDefs().size(), 2);
- entityDefFound = true;
- break;
- }
- }
- assertTrue(entityDefFound, "Required entityDef not found.");
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testGetDefinition() throws Exception {
- if (CollectionUtils.isNotEmpty(typeDefinitions.getEnumDefs())) {
- for (AtlasEnumDef atlasEnumDef : typeDefinitions.getEnumDefs()) {
- verifyByNameAndGUID(atlasEnumDef);
- }
- }
-
- if (CollectionUtils.isNotEmpty(typeDefinitions.getStructDefs())) {
- for (AtlasStructDef structDef : typeDefinitions.getStructDefs()) {
- verifyByNameAndGUID(structDef);
- }
- }
-
- if (CollectionUtils.isNotEmpty(typeDefinitions.getClassificationDefs())) {
- for (AtlasClassificationDef classificationDef : typeDefinitions.getClassificationDefs()) {
- verifyByNameAndGUID(classificationDef);
- }
- }
-
- if (CollectionUtils.isNotEmpty(typeDefinitions.getEntityDefs())) {
- for (AtlasEntityDef entityDef : typeDefinitions.getEntityDefs()) {
- verifyByNameAndGUID(entityDef);
- }
- }
- }
-
- @Test
- public void testInvalidGets() throws Exception {
- try {
- AtlasEnumDef byName = clientV2.getEnumDefByName("blah");
- fail("Get for invalid name should have reported a failure");
- } catch (AtlasServiceException e) {
- assertEquals(e.getStatus().getStatusCode(), Response.Status.NOT_FOUND.getStatusCode(),
- "Should've returned a 404");
- }
-
- try {
- AtlasEnumDef byGuid = clientV2.getEnumDefByGuid("blah");
- fail("Get for invalid name should have reported a failure");
- } catch (AtlasServiceException e) {
- assertEquals(e.getStatus().getStatusCode(), Response.Status.NOT_FOUND.getStatusCode(),
- "Should've returned a 404");
- }
-
- try {
- AtlasStructDef byName = clientV2.getStructDefByName("blah");
- fail("Get for invalid name should have reported a failure");
- } catch (AtlasServiceException e) {
- assertEquals(e.getStatus().getStatusCode(), Response.Status.NOT_FOUND.getStatusCode(),
- "Should've returned a 404");
- }
-
- try {
- AtlasStructDef byGuid = clientV2.getStructDefByGuid("blah");
- fail("Get for invalid name should have reported a failure");
- } catch (AtlasServiceException e) {
- assertEquals(e.getStatus().getStatusCode(), Response.Status.NOT_FOUND.getStatusCode(),
- "Should've returned a 404");
- }
-
- try {
- AtlasClassificationDef byName = clientV2.getClassificationDefByName("blah");
- fail("Get for invalid name should have reported a failure");
- } catch (AtlasServiceException e) {
- assertEquals(e.getStatus().getStatusCode(), Response.Status.NOT_FOUND.getStatusCode(),
- "Should've returned a 404");
- }
-
- try {
- AtlasClassificationDef byGuid = clientV2.getClassificationDefByGuid("blah");
- fail("Get for invalid name should have reported a failure");
- } catch (AtlasServiceException e) {
- assertEquals(e.getStatus().getStatusCode(), Response.Status.NOT_FOUND.getStatusCode(),
- "Should've returned a 404");
- }
-
- try {
- AtlasEntityDef byName = clientV2.getEntityDefByName("blah");
- fail("Get for invalid name should have reported a failure");
- } catch (AtlasServiceException e) {
- assertEquals(e.getStatus().getStatusCode(), Response.Status.NOT_FOUND.getStatusCode(),
- "Should've returned a 404");
- }
-
- try {
- AtlasEntityDef byGuid = clientV2.getEntityDefByGuid("blah");
- fail("Get for invalid name should have reported a failure");
- } catch (AtlasServiceException e) {
- assertEquals(e.getStatus().getStatusCode(), Response.Status.NOT_FOUND.getStatusCode(),
- "Should've returned a 404");
- }
-
-
- }
-
- @Test
- public void testListTypesByFilter() throws Exception {
- AtlasAttributeDef attr = AtlasTypeUtil.createOptionalAttrDef("attr", "string");
- AtlasEntityDef classDefA = AtlasTypeUtil.createClassTypeDef("A" + randomString(), ImmutableSet.<String>of(), attr);
- AtlasEntityDef classDefA1 = AtlasTypeUtil.createClassTypeDef("A1" + randomString(), ImmutableSet.of(classDefA.getName()), attr);
- AtlasEntityDef classDefB = AtlasTypeUtil.createClassTypeDef("B" + randomString(), ImmutableSet.<String>of(), attr);
- AtlasEntityDef classDefC = AtlasTypeUtil.createClassTypeDef("C" + randomString(), ImmutableSet.of(classDefB.getName(), classDefA.getName()), attr);
-
- AtlasTypesDef atlasTypesDef = new AtlasTypesDef();
- atlasTypesDef.getEntityDefs().add(classDefA);
- atlasTypesDef.getEntityDefs().add(classDefA1);
- atlasTypesDef.getEntityDefs().add(classDefB);
- atlasTypesDef.getEntityDefs().add(classDefC);
-
- AtlasTypesDef created = clientV2.createAtlasTypeDefs(atlasTypesDef);
- assertNotNull(created);
- assertEquals(created.getEntityDefs().size(), atlasTypesDef.getEntityDefs().size());
-
- MultivaluedMap<String, String> searchParams = new MultivaluedMapImpl();
- searchParams.add(SearchFilter.PARAM_TYPE, "CLASS");
- searchParams.add(SearchFilter.PARAM_SUPERTYPE, classDefA.getName());
- SearchFilter searchFilter = new SearchFilter(searchParams);
- AtlasTypesDef searchDefs = clientV2.getAllTypeDefs(searchFilter);
- assertNotNull(searchDefs);
- assertEquals(searchDefs.getEntityDefs().size(), 2);
-
- searchParams.add(SearchFilter.PARAM_NOT_SUPERTYPE, classDefB.getName());
- searchFilter = new SearchFilter(searchParams);
- searchDefs = clientV2.getAllTypeDefs(searchFilter);
- assertNotNull(searchDefs);
- assertEquals(searchDefs.getEntityDefs().size(), 1);
- }
-
- private AtlasTypesDef createHiveTypes() throws Exception {
- AtlasTypesDef atlasTypesDef = new AtlasTypesDef();
-
- AtlasEntityDef databaseTypeDefinition =
- createClassTypeDef("database", ImmutableSet.<String>of(),
- AtlasTypeUtil.createUniqueRequiredAttrDef("name", "string"),
- AtlasTypeUtil.createRequiredAttrDef("description", "string"));
- atlasTypesDef.getEntityDefs().add(databaseTypeDefinition);
-
- AtlasEntityDef tableTypeDefinition =
- createClassTypeDef("table", ImmutableSet.<String>of(),
- AtlasTypeUtil.createUniqueRequiredAttrDef("name", "string"),
- AtlasTypeUtil.createRequiredAttrDef("description", "string"),
- AtlasTypeUtil.createOptionalAttrDef("columnNames", DataTypes.arrayTypeName("string")),
- AtlasTypeUtil.createOptionalAttrDef("created", "date"),
- AtlasTypeUtil.createOptionalAttrDef("parameters",
- DataTypes.mapTypeName("string", "string")),
- AtlasTypeUtil.createRequiredAttrDef("type", "string"),
- new AtlasAttributeDef("database", "database",
- false,
- Cardinality.SINGLE, 1, 1,
- true, true,
- Collections.<AtlasConstraintDef>emptyList()));
- atlasTypesDef.getEntityDefs().add(tableTypeDefinition);
-
- AtlasClassificationDef fetlTypeDefinition = AtlasTypeUtil
- .createTraitTypeDef("fetl", ImmutableSet.<String>of(),
- AtlasTypeUtil.createRequiredAttrDef("level", "int"));
- atlasTypesDef.getClassificationDefs().add(fetlTypeDefinition);
-
- return atlasTypesDef;
- }
-
- private void verifyByNameAndGUID(AtlasBaseTypeDef typeDef) {
- try {
- AtlasBaseTypeDef byName = null;
- if (typeDef.getCategory() == TypeCategory.ENUM) {
- byName = clientV2.getEnumDefByName(typeDef.getName());
- } else if (typeDef.getCategory() == TypeCategory.ENTITY) {
- byName = clientV2.getEntityDefByName(typeDef.getName());
- } else if (typeDef.getCategory() == TypeCategory.CLASSIFICATION) {
- byName = clientV2.getClassificationDefByName(typeDef.getName());
- } else if (typeDef.getCategory() == TypeCategory.STRUCT) {
- byName = clientV2.getStructDefByName(typeDef.getName());
- }
- assertNotNull(byName);
- } catch (AtlasServiceException e) {
- fail("Get byName should've succeeded", e);
- }
- if (StringUtils.isNotBlank(typeDef.getGuid())) {
- try {
- AtlasBaseTypeDef byGuid = null;
- if (typeDef.getCategory() == TypeCategory.ENUM) {
- byGuid = clientV2.getEnumDefByGuid(typeDef.getGuid());
- } else if (typeDef.getCategory() == TypeCategory.ENTITY) {
- byGuid = clientV2.getEntityDefByGuid(typeDef.getGuid());
- } else if (typeDef.getCategory() == TypeCategory.CLASSIFICATION) {
- byGuid = clientV2.getClassificationDefByGuid(typeDef.getGuid());
- } else if (typeDef.getCategory() == TypeCategory.STRUCT) {
- byGuid = clientV2.getStructDefByGuid(typeDef.getGuid());
- }
- assertNotNull(byGuid);
- } catch (AtlasServiceException e) {
- fail("Get byGuid should've succeeded", e);
- }
- }
- }
-
- private void emptyTypeDefs(AtlasTypesDef def) {
- def.getEnumDefs().clear();
- def.getStructDefs().clear();
- def.getClassificationDefs().clear();
- def.getEntityDefs().clear();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/35e5828f/webapp/src/test/java/org/apache/atlas/web/resources/TypesJerseyResourceIT.java
----------------------------------------------------------------------
diff --git a/webapp/src/test/java/org/apache/atlas/web/resources/TypesJerseyResourceIT.java b/webapp/src/test/java/org/apache/atlas/web/resources/TypesJerseyResourceIT.java
deleted file mode 100755
index 2ef33c3..0000000
--- a/webapp/src/test/java/org/apache/atlas/web/resources/TypesJerseyResourceIT.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.atlas.web.resources;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import com.sun.jersey.core.util.MultivaluedMapImpl;
-import org.apache.atlas.AtlasClient;
-import org.apache.atlas.AtlasServiceException;
-import org.apache.atlas.typesystem.TypesDef;
-import org.apache.atlas.typesystem.json.TypesSerialization;
-import org.apache.atlas.typesystem.json.TypesSerialization$;
-import org.apache.atlas.typesystem.types.AttributeDefinition;
-import org.apache.atlas.typesystem.types.ClassType;
-import org.apache.atlas.typesystem.types.DataTypes;
-import org.apache.atlas.typesystem.types.EnumTypeDefinition;
-import org.apache.atlas.typesystem.types.HierarchicalTypeDefinition;
-import org.apache.atlas.typesystem.types.Multiplicity;
-import org.apache.atlas.typesystem.types.StructTypeDefinition;
-import org.apache.atlas.typesystem.types.TraitType;
-import org.apache.atlas.typesystem.types.utils.TypesUtil;
-import org.codehaus.jettison.json.JSONArray;
-import org.codehaus.jettison.json.JSONObject;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import static org.apache.atlas.typesystem.types.utils.TypesUtil.createOptionalAttrDef;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.fail;
-
-/**
- * Integration test for types jersey resource.
- */
-public class TypesJerseyResourceIT extends BaseResourceIT {
-
- private List<HierarchicalTypeDefinition> typeDefinitions;
-
- @BeforeClass
- public void setUp() throws Exception {
- super.setUp();
-
- typeDefinitions = createHiveTypes();
- }
-
- @AfterClass
- public void tearDown() throws Exception {
- typeDefinitions.clear();
- }
-
- @Test
- public void testSubmit() throws Exception {
- for (HierarchicalTypeDefinition typeDefinition : typeDefinitions) {
- try{
- atlasClientV1.getType(typeDefinition.typeName);
- } catch (AtlasServiceException ase){
- String typesAsJSON = TypesSerialization.toJson(typeDefinition, false);
- System.out.println("typesAsJSON = " + typesAsJSON);
-
- JSONObject response = atlasClientV1.callAPIWithBody(AtlasClient.API.CREATE_TYPE, typesAsJSON);
- Assert.assertNotNull(response);
-
-
- JSONArray typesAdded = response.getJSONArray(AtlasClient.TYPES);
- assertEquals(typesAdded.length(), 1);
- assertEquals(typesAdded.getJSONObject(0).getString(NAME), typeDefinition.typeName);
- Assert.assertNotNull(response.get(AtlasClient.REQUEST_ID));}
- }
- }
-
- @Test
- public void testDuplicateSubmit() throws Exception {
- HierarchicalTypeDefinition<ClassType> type = TypesUtil.createClassTypeDef(randomString(),
- ImmutableSet.<String>of(), TypesUtil.createUniqueRequiredAttrDef(NAME, DataTypes.STRING_TYPE));
- TypesDef typesDef =
- TypesUtil.getTypesDef(ImmutableList.<EnumTypeDefinition>of(), ImmutableList.<StructTypeDefinition>of(),
- ImmutableList.<HierarchicalTypeDefinition<TraitType>>of(), ImmutableList.of(type));
- atlasClientV1.createType(typesDef);
-
- try {
- atlasClientV1.createType(typesDef);
- fail("Expected 409");
- } catch (AtlasServiceException e) {
- assertEquals(e.getStatus().getStatusCode(), Response.Status.CONFLICT.getStatusCode());
- }
- }
-
- @Test
- public void testUpdate() throws Exception {
- HierarchicalTypeDefinition<ClassType> typeDefinition = TypesUtil
- .createClassTypeDef(randomString(), ImmutableSet.<String>of(),
- TypesUtil.createUniqueRequiredAttrDef(NAME, DataTypes.STRING_TYPE));
- List<String> typesCreated = atlasClientV1.createType(TypesSerialization.toJson(typeDefinition, false));
- assertEquals(typesCreated.size(), 1);
- assertEquals(typesCreated.get(0), typeDefinition.typeName);
-
- //Add attribute description
- typeDefinition = TypesUtil.createClassTypeDef(typeDefinition.typeName,
- ImmutableSet.<String>of(),
- TypesUtil.createUniqueRequiredAttrDef(NAME, DataTypes.STRING_TYPE),
- createOptionalAttrDef(DESCRIPTION, DataTypes.STRING_TYPE));
- TypesDef typeDef = TypesUtil.getTypesDef(ImmutableList.<EnumTypeDefinition>of(),
- ImmutableList.<StructTypeDefinition>of(), ImmutableList.<HierarchicalTypeDefinition<TraitType>>of(),
- ImmutableList.of(typeDefinition));
- List<String> typesUpdated = atlasClientV1.updateType(typeDef);
- assertEquals(typesUpdated.size(), 1);
- Assert.assertTrue(typesUpdated.contains(typeDefinition.typeName));
-
- TypesDef updatedTypeDef = atlasClientV1.getType(typeDefinition.typeName);
- assertNotNull(updatedTypeDef);
-
- HierarchicalTypeDefinition<ClassType> updatedType = updatedTypeDef.classTypesAsJavaList().get(0);
- assertEquals(updatedType.attributeDefinitions.length, 2);
- }
-
- @Test(dependsOnMethods = "testSubmit")
- public void testGetDefinition() throws Exception {
- for (HierarchicalTypeDefinition typeDefinition : typeDefinitions) {
- System.out.println("typeName = " + typeDefinition.typeName);
-
- JSONObject response = atlasClientV1.callAPIWithBodyAndParams(AtlasClient.API.LIST_TYPES, null, typeDefinition.typeName);
-
- Assert.assertNotNull(response);
- 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);
- }
- }
- }
- }
- }
-
- @Test(expectedExceptions = AtlasServiceException.class)
- public void testGetDefinitionForNonexistentType() throws Exception {
- JSONObject response = atlasClientV1.callAPIWithBodyAndParams(AtlasClient.API.LIST_TYPES, null, "blah");
- }
-
- @Test(dependsOnMethods = "testSubmit")
- public void testGetTypeNames() throws Exception {
- JSONObject response = atlasClientV1.callAPIWithBodyAndParams(AtlasClient.API.LIST_TYPES, null, (String[]) null);
- Assert.assertNotNull(response);
-
- Assert.assertNotNull(response.get(AtlasClient.REQUEST_ID));
-
- final JSONArray list = response.getJSONArray(AtlasClient.RESULTS);
- Assert.assertNotNull(list);
-
- //Verify that primitive and core types are not returned
- String typesString = list.join(" ");
- Assert.assertFalse(typesString.contains(" \"__IdType\" "));
- Assert.assertFalse(typesString.contains(" \"string\" "));
- }
-
- @Test
- public void testGetTraitNames() throws Exception {
- String[] traitsAdded = addTraits();
-
- MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
- queryParams.add("type", DataTypes.TypeCategory.TRAIT.name());
-
- JSONObject response = atlasClientV1.callAPIWithQueryParams(AtlasClient.API.LIST_TYPES, queryParams);
- Assert.assertNotNull(response);
-
- Assert.assertNotNull(response.get(AtlasClient.REQUEST_ID));
-
- final JSONArray list = response.getJSONArray(AtlasClient.RESULTS);
- Assert.assertNotNull(list);
- Assert.assertTrue(list.length() >= traitsAdded.length);
- }
-
- @Test
- public void testListTypesByFilter() throws Exception {
- AttributeDefinition attr = TypesUtil.createOptionalAttrDef("attr", DataTypes.STRING_TYPE);
- String a = createType(TypesSerialization.toJson(
- TypesUtil.createClassTypeDef("A" + randomString(), ImmutableSet.<String>of(), attr), false)).get(0);
- String a1 = createType(TypesSerialization.toJson(
- TypesUtil.createClassTypeDef("A1" + randomString(), ImmutableSet.of(a), attr), false)).get(0);
- String b = createType(TypesSerialization.toJson(
- TypesUtil.createClassTypeDef("B" + randomString(), ImmutableSet.<String>of(), attr), false)).get(0);
- String c = createType(TypesSerialization.toJson(
- TypesUtil.createClassTypeDef("C" + randomString(), ImmutableSet.of(a, b), attr), false)).get(0);
-
- List<String> results = atlasClientV1.listTypes(DataTypes.TypeCategory.CLASS, a, b);
- assertEquals(results, Arrays.asList(a1), "Results: " + results);
- }
-
- private String[] addTraits() throws Exception {
- String[] traitNames = {"class_trait", "secure_trait", "pii_trait", "ssn_trait", "salary_trait", "sox_trait",};
-
- for (String traitName : traitNames) {
- HierarchicalTypeDefinition<TraitType> traitTypeDef =
- TypesUtil.createTraitTypeDef(traitName, ImmutableSet.<String>of());
- String json = TypesSerialization$.MODULE$.toJson(traitTypeDef, true);
- createType(json);
- }
-
- return traitNames;
- }
-
- private List<HierarchicalTypeDefinition> createHiveTypes() throws Exception {
- ArrayList<HierarchicalTypeDefinition> typeDefinitions = new ArrayList<>();
-
- HierarchicalTypeDefinition<ClassType> databaseTypeDefinition = TypesUtil
- .createClassTypeDef("database", ImmutableSet.<String>of(),
- TypesUtil.createUniqueRequiredAttrDef(NAME, DataTypes.STRING_TYPE),
- TypesUtil.createRequiredAttrDef(DESCRIPTION, DataTypes.STRING_TYPE),
- TypesUtil.createRequiredAttrDef(QUALIFIED_NAME, DataTypes.STRING_TYPE));
- typeDefinitions.add(databaseTypeDefinition);
-
- HierarchicalTypeDefinition<ClassType> tableTypeDefinition = TypesUtil
- .createClassTypeDef("table", ImmutableSet.<String>of(),
- TypesUtil.createUniqueRequiredAttrDef(NAME, DataTypes.STRING_TYPE),
- TypesUtil.createRequiredAttrDef(DESCRIPTION, DataTypes.STRING_TYPE),
- TypesUtil.createRequiredAttrDef(QUALIFIED_NAME, DataTypes.STRING_TYPE),
- createOptionalAttrDef("columnNames", DataTypes.arrayTypeName(DataTypes.STRING_TYPE)),
- createOptionalAttrDef("created", DataTypes.DATE_TYPE),
- createOptionalAttrDef("parameters",
- DataTypes.mapTypeName(DataTypes.STRING_TYPE, DataTypes.STRING_TYPE)),
- TypesUtil.createRequiredAttrDef("type", DataTypes.STRING_TYPE),
- new AttributeDefinition("database", "database", Multiplicity.REQUIRED, false, "database"));
- typeDefinitions.add(tableTypeDefinition);
-
- HierarchicalTypeDefinition<TraitType> fetlTypeDefinition = TypesUtil
- .createTraitTypeDef("fetl", ImmutableSet.<String>of(),
- TypesUtil.createRequiredAttrDef("level", DataTypes.INT_TYPE));
- typeDefinitions.add(fetlTypeDefinition);
-
- return typeDefinitions;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/35e5828f/webapp/src/test/java/org/apache/atlas/web/security/FileAuthenticationTest.java
----------------------------------------------------------------------
diff --git a/webapp/src/test/java/org/apache/atlas/web/security/FileAuthenticationTest.java b/webapp/src/test/java/org/apache/atlas/web/security/FileAuthenticationTest.java
index c5cd3f6..84346ce 100644
--- a/webapp/src/test/java/org/apache/atlas/web/security/FileAuthenticationTest.java
+++ b/webapp/src/test/java/org/apache/atlas/web/security/FileAuthenticationTest.java
@@ -18,14 +18,13 @@
package org.apache.atlas.web.security;
-import java.io.File;
-import java.util.Collection;
import org.apache.atlas.ApplicationProperties;
import org.apache.atlas.web.TestUtils;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.io.FileUtils;
import org.junit.Assert;
import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
@@ -33,12 +32,15 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-import org.mockito.MockitoAnnotations;
import org.testng.annotations.BeforeMethod;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.util.Collection;
+
import static org.mockito.Mockito.when;
public class FileAuthenticationTest {
@@ -69,7 +71,7 @@ public class FileAuthenticationTest {
System.setProperty("atlas.conf", persistDir);
applicationContext = new ClassPathXmlApplicationContext(
- "spring-security.xml");
+ "test-spring-security.xml");
authProvider = applicationContext
.getBean(org.apache.atlas.web.security.AtlasAuthenticationProvider.class);