http://git-wip-us.apache.org/repos/asf/atlas/blob/0877e47c/repository/src/test/java/org/apache/atlas/repository/store/graph/v1/AtlasDeleteHandlerV1Test.java
----------------------------------------------------------------------
diff --git 
a/repository/src/test/java/org/apache/atlas/repository/store/graph/v1/AtlasDeleteHandlerV1Test.java
 
b/repository/src/test/java/org/apache/atlas/repository/store/graph/v1/AtlasDeleteHandlerV1Test.java
deleted file mode 100644
index 718538a..0000000
--- 
a/repository/src/test/java/org/apache/atlas/repository/store/graph/v1/AtlasDeleteHandlerV1Test.java
+++ /dev/null
@@ -1,1141 +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.repository.store.graph.v1;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import org.apache.atlas.AtlasException;
-import org.apache.atlas.RequestContextV1;
-import org.apache.atlas.TestUtils;
-import org.apache.atlas.TestUtilsV2;
-import org.apache.atlas.exception.AtlasBaseException;
-import org.apache.atlas.model.instance.AtlasEntity;
-import org.apache.atlas.model.instance.AtlasEntityHeader;
-import org.apache.atlas.model.instance.AtlasObjectId;
-import org.apache.atlas.model.instance.AtlasStruct;
-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.AtlasEnumDef;
-import org.apache.atlas.model.typedef.AtlasStructDef;
-import org.apache.atlas.model.typedef.AtlasTypesDef;
-import org.apache.atlas.repository.Constants;
-import org.apache.atlas.repository.graph.AtlasEdgeLabel;
-import org.apache.atlas.repository.graph.AtlasGraphProvider;
-import org.apache.atlas.repository.graph.GraphHelper;
-import org.apache.atlas.repository.graphdb.AtlasGraph;
-import org.apache.atlas.repository.graphdb.AtlasVertex;
-import 
org.apache.atlas.repository.store.bootstrap.AtlasTypeDefStoreInitializer;
-import org.apache.atlas.repository.store.graph.AtlasEntityStore;
-import org.apache.atlas.services.MetadataService;
-import org.apache.atlas.store.AtlasTypeDefStore;
-import org.apache.atlas.type.AtlasEntityType;
-import org.apache.atlas.type.AtlasTypeRegistry;
-import org.apache.atlas.type.AtlasTypeUtil;
-import org.apache.atlas.typesystem.IReferenceableInstance;
-import org.apache.atlas.typesystem.IStruct;
-import org.apache.atlas.typesystem.ITypedReferenceableInstance;
-import org.apache.atlas.typesystem.ITypedStruct;
-import org.apache.atlas.typesystem.Struct;
-import org.apache.atlas.typesystem.exception.EntityNotFoundException;
-import org.apache.atlas.typesystem.persistence.Id;
-import org.apache.atlas.typesystem.types.Multiplicity;
-import org.apache.atlas.typesystem.types.TraitType;
-import org.apache.atlas.typesystem.types.TypeSystem;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
-
-import javax.inject.Inject;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.apache.atlas.TestUtils.*;
-import static org.mockito.Mockito.mock;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotEquals;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.fail;
-
-public abstract class AtlasDeleteHandlerV1Test {
-
-    @Inject
-    AtlasTypeRegistry typeRegistry;
-
-    @Inject
-    AtlasTypeDefStore typeDefStore;
-
-    @Inject
-    AtlasEntityStore entityStore;
-
-    @Inject
-    MetadataService metadataService;
-
-    private AtlasEntityType compositeMapOwnerType;
-
-    private AtlasEntityType compositeMapValueType;
-
-    private TypeSystem typeSystem = TypeSystem.getInstance();
-
-    @BeforeClass
-    public void setUp() throws Exception {
-        RequestContextV1.clear();
-        RequestContextV1.get().setUser(TestUtilsV2.TEST_USER);
-
-        metadataService = TestUtils.addSessionCleanupWrapper(metadataService);
-        final AtlasTypesDef deptTypesDef = 
TestUtilsV2.defineDeptEmployeeTypes();
-        typeDefStore.createTypesDef(deptTypesDef);
-
-        final AtlasTypesDef hiveTypesDef = TestUtilsV2.defineHiveTypes();
-        typeDefStore.createTypesDef(hiveTypesDef);
-
-        // Define type for map value.
-        AtlasEntityDef mapValueDef = 
AtlasTypeUtil.createClassTypeDef("CompositeMapValue", "CompositeMapValue" + 
"_description", "1.0",
-            ImmutableSet.<String>of(),
-            AtlasTypeUtil.createUniqueRequiredAttrDef("name", "string")
-        );
-
-        // Define type with map where the value is a composite class reference 
to MapValue.
-        AtlasEntityDef mapOwnerDef = 
AtlasTypeUtil.createClassTypeDef("CompositeMapOwner", 
"CompositeMapOwner_description",
-            ImmutableSet.<String>of(),
-            AtlasTypeUtil.createUniqueRequiredAttrDef("name", "string"),
-            new AtlasStructDef.AtlasAttributeDef("map", 
"map<string,CompositeMapValue>", true,
-                AtlasStructDef.AtlasAttributeDef.Cardinality.SINGLE, 0, 1, 
false, false,
-                new ArrayList<AtlasStructDef.AtlasConstraintDef>() {{
-                    add(new 
AtlasStructDef.AtlasConstraintDef(AtlasStructDef.AtlasConstraintDef.CONSTRAINT_TYPE_OWNED_REF));
-                }})
-        );
-
-        final AtlasTypesDef typesDef = 
AtlasTypeUtil.getTypesDef(ImmutableList.<AtlasEnumDef>of(),
-            ImmutableList.<AtlasStructDef>of(),
-            ImmutableList.<AtlasClassificationDef>of(),
-            ImmutableList.of(mapValueDef, mapOwnerDef));
-
-        AtlasTypesDef typesToCreate = 
AtlasTypeDefStoreInitializer.getTypesToCreate(typesDef, typeRegistry);
-
-        if (!typesToCreate.isEmpty()) {
-            typeDefStore.createTypesDef(typesToCreate);
-        }
-
-        compositeMapOwnerType = 
typeRegistry.getEntityTypeByName("CompositeMapOwner");
-        compositeMapValueType = 
typeRegistry.getEntityTypeByName("CompositeMapValue");
-    }
-
-    @BeforeTest
-    public void init() throws Exception {
-        RequestContextV1.clear();
-        RequestContextV1.get().setUser(TestUtilsV2.TEST_USER);
-    }
-
-    @AfterClass
-    public void clear() {
-        AtlasGraphProvider.cleanup();
-    }
-
-    @Test
-    public void testDeleteAndCreate() throws Exception {
-        init();
-        final AtlasEntity dbEntity = TestUtilsV2.createDBEntity();
-        EntityMutationResponse response = entityStore.createOrUpdate(new 
AtlasEntityStream(dbEntity), false);
-
-        init();
-        //delete entity should mark it as deleted
-        EntityMutationResponse deleteResponse = 
entityStore.deleteById(response.getFirstEntityCreated().getGuid());
-        AtlasEntityHeader dbEntityCreated = response.getFirstEntityCreated();
-        
assertEquals(deleteResponse.getEntitiesByOperation(EntityMutations.EntityOperation.DELETE).get(0).getGuid(),
 dbEntityCreated.getGuid());
-
-        //get entity by unique attribute should throw EntityNotFoundException
-        try {
-            metadataService.getEntityDefinition(TestUtils.DATABASE_TYPE, 
"name", (String) response.getFirstEntityCreated().getAttribute("name"));
-            fail("Expected EntityNotFoundException");
-        } catch(EntityNotFoundException e) {
-            //expected
-        }
-
-        init();
-        //Create the same entity again, should create new entity
-        AtlasEntity newDBEntity = TestUtilsV2.createDBEntity((String) 
dbEntity.getAttribute(NAME));
-        EntityMutationResponse newCreationResponse = 
entityStore.createOrUpdate(new AtlasEntityStream(newDBEntity), false);
-        assertNotEquals(newCreationResponse.getFirstEntityCreated().getGuid(), 
response.getFirstEntityCreated().getGuid());
-
-        //get by unique attribute should return the new entity
-        ITypedReferenceableInstance instance = 
metadataService.getEntityDefinitionReference(TestUtils.DATABASE_TYPE, "name", 
(String) dbEntity.getAttribute("name"));
-        assertEquals(instance.getId()._getId(), 
newCreationResponse.getFirstEntityCreated().getGuid());
-    }
-
-    @Test
-    public void testDeleteReference() throws Exception {
-        //Deleting column should update table
-        final AtlasEntity dbEntity = TestUtilsV2.createDBEntity();
-
-        init();
-        EntityMutationResponse dbCreationResponse = 
entityStore.createOrUpdate(new AtlasEntityStream(dbEntity), false);
-
-        final AtlasEntity tableEntity = 
TestUtilsV2.createTableEntity(dbEntity);
-        final AtlasEntity columnEntity = 
TestUtilsV2.createColumnEntity(tableEntity);
-        tableEntity.setAttribute(COLUMNS_ATTR_NAME, 
Arrays.asList(AtlasTypeUtil.getAtlasObjectId(columnEntity)));
-
-        AtlasEntity.AtlasEntityWithExtInfo input = new 
AtlasEntity.AtlasEntityWithExtInfo(tableEntity);
-        input.addReferredEntity(columnEntity);
-
-        init();
-        EntityMutationResponse tblCreationResponse = 
entityStore.createOrUpdate(new AtlasEntityStream(input), false);
-        final AtlasEntityHeader columnCreated = 
tblCreationResponse.getFirstCreatedEntityByTypeName(COLUMN_TYPE);
-        final AtlasEntityHeader tableCreated = 
tblCreationResponse.getFirstCreatedEntityByTypeName(TABLE_TYPE);
-
-        init();
-        EntityMutationResponse deletionResponse = 
entityStore.deleteById(columnCreated.getGuid());
-        assertEquals(deletionResponse.getDeletedEntities().size(), 1);
-        assertEquals(deletionResponse.getDeletedEntities().get(0).getGuid(), 
columnCreated.getGuid());
-        assertEquals(deletionResponse.getUpdatedEntities().size(), 1);
-        assertEquals(deletionResponse.getUpdatedEntities().get(0).getGuid(), 
tableCreated.getGuid());
-
-        assertEntityDeleted(columnCreated.getGuid());
-
-        
assertColumnForTestDeleteReference(entityStore.getById(tableCreated.getGuid()));
-
-        //Deleting table should update process
-        AtlasEntity process = TestUtilsV2.createProcessEntity(null, 
Arrays.asList(AtlasTypeUtil.getAtlasObjectId(tableCreated)));
-        init();
-        final EntityMutationResponse processCreationResponse = 
entityStore.createOrUpdate(new AtlasEntityStream(process), false);
-
-        init();
-        entityStore.deleteById(tableCreated.getGuid());
-        assertEntityDeleted(tableCreated.getGuid());
-
-        assertTableForTestDeleteReference(tableCreated.getGuid());
-        
assertProcessForTestDeleteReference(processCreationResponse.getFirstEntityCreated());
-    }
-
-    @Test
-    public void testDeleteEntities() throws Exception {
-        // Create a table entity, with 3 composite column entities
-        init();
-        final AtlasEntity dbEntity = TestUtilsV2.createDBEntity();
-        EntityMutationResponse dbCreationResponse = 
entityStore.createOrUpdate(new AtlasEntityStream(dbEntity), false);
-
-        final AtlasEntity tableEntity = 
TestUtilsV2.createTableEntity(dbEntity);
-        AtlasEntity.AtlasEntitiesWithExtInfo entitiesInfo = new 
AtlasEntity.AtlasEntitiesWithExtInfo(tableEntity);
-
-        final AtlasEntity columnEntity1 = 
TestUtilsV2.createColumnEntity(tableEntity);
-        entitiesInfo.addReferredEntity(columnEntity1);
-        final AtlasEntity columnEntity2 = 
TestUtilsV2.createColumnEntity(tableEntity);
-        entitiesInfo.addReferredEntity(columnEntity2);
-        final AtlasEntity columnEntity3 = 
TestUtilsV2.createColumnEntity(tableEntity);
-        entitiesInfo.addReferredEntity(columnEntity3);
-
-        tableEntity.setAttribute(COLUMNS_ATTR_NAME, 
Arrays.asList(AtlasTypeUtil.getAtlasObjectId(columnEntity1),
-                                                                  
AtlasTypeUtil.getAtlasObjectId(columnEntity2),
-                                                                  
AtlasTypeUtil.getAtlasObjectId(columnEntity3)));
-
-        init();
-
-        final EntityMutationResponse tblCreationResponse = 
entityStore.createOrUpdate(new AtlasEntityStream(entitiesInfo), false);
-
-        final AtlasEntityHeader column1Created = 
tblCreationResponse.getCreatedEntityByTypeNameAndAttribute(COLUMN_TYPE, NAME, 
(String) columnEntity1.getAttribute(NAME));
-        final AtlasEntityHeader column2Created = 
tblCreationResponse.getCreatedEntityByTypeNameAndAttribute(COLUMN_TYPE, NAME, 
(String) columnEntity2.getAttribute(NAME));
-        final AtlasEntityHeader column3Created = 
tblCreationResponse.getCreatedEntityByTypeNameAndAttribute(COLUMN_TYPE, NAME, 
(String) columnEntity3.getAttribute(NAME));
-
-        // Retrieve the table entities from the Repository, to get their guids 
and the composite column guids.
-        ITypedReferenceableInstance tableInstance = 
metadataService.getEntityDefinitionReference(TestUtils.TABLE_TYPE, NAME, 
(String) tableEntity.getAttribute(NAME));
-        List<IReferenceableInstance> columns = (List<IReferenceableInstance>) 
tableInstance.get(COLUMNS_ATTR_NAME);
-
-        //Delete column
-        String colId = columns.get(0).getId()._getId();
-        String tableId = tableInstance.getId()._getId();
-
-        init();
-
-        EntityMutationResponse deletionResponse = 
entityStore.deleteById(colId);
-        assertEquals(deletionResponse.getDeletedEntities().size(), 1);
-        assertEquals(deletionResponse.getDeletedEntities().get(0).getGuid(), 
colId);
-        assertEquals(deletionResponse.getUpdatedEntities().size(), 1);
-        assertEquals(deletionResponse.getUpdatedEntities().get(0).getGuid(), 
tableId);
-        assertEntityDeleted(colId);
-
-        final AtlasEntity.AtlasEntityWithExtInfo tableEntityCreated = 
entityStore.getById(tableId);
-        assertDeletedColumn(tableEntityCreated);
-
-        assertTestDisconnectUnidirectionalArrayReferenceFromClassType(
-            (List<AtlasObjectId>) 
tableEntityCreated.getEntity().getAttribute(COLUMNS_ATTR_NAME), colId);
-
-        //update by removing a column - col1
-        final AtlasEntity tableEntity1 = 
TestUtilsV2.createTableEntity(dbEntity, (String) 
tableEntity.getAttribute(NAME));
-
-        AtlasEntity.AtlasEntitiesWithExtInfo entitiesInfo1 = new 
AtlasEntity.AtlasEntitiesWithExtInfo(tableEntity1);
-        final AtlasEntity columnEntity3New = 
TestUtilsV2.createColumnEntity(tableEntity1, (String) 
column3Created.getAttribute(NAME));
-        tableEntity1.setAttribute(COLUMNS_ATTR_NAME, 
Arrays.asList(AtlasTypeUtil.getAtlasObjectId(columnEntity3New)));
-        entitiesInfo1.addReferredEntity(columnEntity3New);
-
-        init();
-        deletionResponse = entityStore.createOrUpdate(new 
AtlasEntityStream(entitiesInfo1), false);
-
-        assertEquals(deletionResponse.getDeletedEntities().size(), 1);
-        assertEquals(deletionResponse.getDeletedEntities().get(0).getGuid(), 
column2Created.getGuid());
-        assertEntityDeleted(colId);
-
-        // Delete the table entities.  The deletion should cascade to their 
composite columns.
-        tableInstance = 
metadataService.getEntityDefinitionReference(TestUtils.TABLE_TYPE, NAME, 
(String) tableEntity.getAttribute(NAME));
-
-        init();
-        EntityMutationResponse tblDeletionResponse = 
entityStore.deleteById(tableInstance.getId()._getId());
-        assertEquals(tblDeletionResponse.getDeletedEntities().size(), 2);
-
-        final AtlasEntityHeader tableDeleted = 
tblDeletionResponse.getFirstDeletedEntityByTypeName(TABLE_TYPE);
-        final AtlasEntityHeader colDeleted = 
tblDeletionResponse.getFirstDeletedEntityByTypeName(COLUMN_TYPE);
-
-        // Verify that deleteEntities() response has guids for tables and 
their composite columns.
-        
Assert.assertTrue(tableDeleted.getGuid().equals(tableInstance.getId()._getId()));
-        
Assert.assertTrue(colDeleted.getGuid().equals(column3Created.getGuid()));
-
-        // Verify that tables and their composite columns have been deleted 
from the graph Repository.
-        assertEntityDeleted(tableDeleted.getGuid());
-        assertEntityDeleted(colDeleted.getGuid());
-
-    }
-
-    protected abstract void 
assertDeletedColumn(AtlasEntity.AtlasEntityWithExtInfo tableInstance) throws 
AtlasException, AtlasBaseException;
-
-    protected abstract void 
assertTestDeleteEntities(AtlasEntity.AtlasEntityWithExtInfo tableInstance) 
throws Exception;
-
-    protected abstract void assertTableForTestDeleteReference(String tableId) 
throws Exception;
-
-    protected abstract void 
assertColumnForTestDeleteReference(AtlasEntity.AtlasEntityWithExtInfo 
tableInstance)
-        throws AtlasBaseException;
-
-    protected abstract void 
assertProcessForTestDeleteReference(AtlasEntityHeader processInstance) throws 
Exception;
-
-    protected abstract void assertEntityDeleted(String id) throws Exception;
-
-    String getFirstGuid(Map<String, AtlasEntity> entityMap) {
-        return entityMap.keySet().iterator().next();
-    }
-
-    @Test
-    public void testUpdateEntity_MultiplicityOneNonCompositeReference() throws 
Exception {
-        AtlasEntity.AtlasEntitiesWithExtInfo hrDept = 
TestUtilsV2.createDeptEg2();
-        init();
-
-        final EntityMutationResponse hrDeptCreationResponse = 
entityStore.createOrUpdate(new AtlasEntityStream(hrDept), false);
-        final AtlasEntityHeader deptCreated = 
hrDeptCreationResponse.getFirstUpdatedEntityByTypeName(DEPARTMENT_TYPE);
-        final AtlasEntityHeader maxEmployeeCreated = 
hrDeptCreationResponse.getCreatedEntityByTypeNameAndAttribute(TestUtilsV2.EMPLOYEE_TYPE,
 NAME, "Max");
-        final AtlasEntityHeader johnEmployeeCreated = 
hrDeptCreationResponse.getUpdatedEntityByTypeNameAndAttribute(TestUtilsV2.EMPLOYEE_TYPE,
 NAME, "John");
-        final AtlasEntityHeader janeEmployeeCreated = 
hrDeptCreationResponse.getCreatedEntityByTypeNameAndAttribute(TestUtilsV2.MANAGER_TYPE,
 NAME, "Jane");
-        final AtlasEntityHeader juliusEmployeeCreated = 
hrDeptCreationResponse.getUpdatedEntityByTypeNameAndAttribute(TestUtilsV2.MANAGER_TYPE,
 NAME, "Julius");
-
-        ITypedReferenceableInstance max = 
metadataService.getEntityDefinition(maxEmployeeCreated.getGuid());
-        String maxGuid = max.getId()._getId();
-        AtlasVertex vertex = 
GraphHelper.getInstance().getVertexForGUID(maxGuid);
-        Long creationTimestamp = GraphHelper.getSingleValuedProperty(vertex, 
Constants.TIMESTAMP_PROPERTY_KEY, Long.class);
-        Assert.assertNotNull(creationTimestamp);
-
-        Long modificationTimestampPreUpdate = 
GraphHelper.getSingleValuedProperty(vertex, 
Constants.MODIFICATION_TIMESTAMP_PROPERTY_KEY, Long.class);
-        Assert.assertNotNull(modificationTimestampPreUpdate);
-
-        AtlasEntity maxEmployee = getEmployeeByName(hrDept, "Max");
-        maxEmployee.setAttribute("mentor", 
AtlasTypeUtil.getAtlasObjectId(johnEmployeeCreated));
-        maxEmployee.setAttribute("department", 
AtlasTypeUtil.getAtlasObjectId(deptCreated));
-        maxEmployee.setAttribute("manager", 
AtlasTypeUtil.getAtlasObjectId(janeEmployeeCreated));
-
-        init();
-        EntityMutationResponse entityResult = entityStore.createOrUpdate(new 
AtlasEntityStream(maxEmployee), false);
-
-        assertEquals(entityResult.getUpdatedEntities().size(), 1);
-        
assertTrue(extractGuids(entityResult.getUpdatedEntities()).contains(maxGuid));
-
-        // Verify the update was applied correctly - john should now be max's 
mentor.
-        max = metadataService.getEntityDefinition(maxGuid);
-        ITypedReferenceableInstance refTarget = (ITypedReferenceableInstance) 
max.get("mentor");
-        Assert.assertEquals(refTarget.getId()._getId(), 
johnEmployeeCreated.getGuid());
-
-        // Verify modification timestamp was updated.
-        vertex = GraphHelper.getInstance().getVertexForGUID(maxGuid);
-        Long modificationTimestampPostUpdate = 
GraphHelper.getSingleValuedProperty(vertex, 
Constants.MODIFICATION_TIMESTAMP_PROPERTY_KEY, Long.class);
-        Assert.assertNotNull(modificationTimestampPostUpdate);
-        Assert.assertTrue(creationTimestamp < modificationTimestampPostUpdate);
-
-        // Update max's mentor reference to jane.
-        maxEmployee.setAttribute("mentor", 
AtlasTypeUtil.getAtlasObjectId(janeEmployeeCreated));
-        init();
-        entityResult = entityStore.createOrUpdate(new 
AtlasEntityStream(maxEmployee), false);
-        assertEquals(entityResult.getUpdatedEntities().size(), 1);
-        
assertTrue(extractGuids(entityResult.getUpdatedEntities()).contains(maxGuid));
-
-        // Verify the update was applied correctly - jane should now be max's 
mentor.
-        max = metadataService.getEntityDefinition(maxGuid);
-        refTarget = (ITypedReferenceableInstance) max.get("mentor");
-        Assert.assertEquals(refTarget.getId()._getId(), 
janeEmployeeCreated.getGuid());
-
-        // Verify modification timestamp was updated.
-        vertex = GraphHelper.getInstance().getVertexForGUID(maxGuid);
-        Long modificationTimestampPost2ndUpdate = 
GraphHelper.getSingleValuedProperty(vertex, 
Constants.MODIFICATION_TIMESTAMP_PROPERTY_KEY, Long.class);
-        Assert.assertNotNull(modificationTimestampPost2ndUpdate);
-        Assert.assertTrue(modificationTimestampPostUpdate < 
modificationTimestampPost2ndUpdate);
-
-        ITypedReferenceableInstance julius = 
metadataService.getEntityDefinition(juliusEmployeeCreated.getGuid());
-        Id juliusId = julius.getId();
-
-        init();
-        maxEmployee.setAttribute("manager", 
AtlasTypeUtil.getAtlasObjectId(juliusEmployeeCreated));
-        entityResult = entityStore.createOrUpdate(new 
AtlasEntityStream(maxEmployee), false);
-        assertEquals(entityResult.getUpdatedEntities().size(), 3);
-        List<String> updatedGuids = 
extractGuids(entityResult.getUpdatedEntities());
-        assertTrue(updatedGuids.contains(maxGuid));
-        assertTrue(updatedGuids.contains(janeEmployeeCreated.getGuid()));
-        // Should have updated julius to add max in subordinates list.
-        assertTrue(updatedGuids.contains(juliusEmployeeCreated.getGuid()));
-
-        // Verify the update was applied correctly - julius should now be 
max's manager and max should be julius' subordinate.
-        max = metadataService.getEntityDefinition(maxGuid);
-        refTarget = (ITypedReferenceableInstance) max.get("manager");
-        Assert.assertEquals(refTarget.getId()._getId(), juliusId._getId());
-        julius = metadataService.getEntityDefinition(juliusId._getId());
-        Object value = julius.get("subordinates");
-        Assert.assertTrue(value instanceof List);
-        List<ITypedReferenceableInstance> refList = 
(List<ITypedReferenceableInstance>) value;
-        Assert.assertEquals(refList.size(), 1);
-        Assert.assertEquals(refList.get(0).getId()._getId(), maxGuid);
-
-        
assertTestUpdateEntity_MultiplicityOneNonCompositeReference(janeEmployeeCreated.getGuid());
-    }
-
-    private Map<String, String> getEmployeeNameGuidMap(final 
ITypedReferenceableInstance hrDept) throws AtlasException {
-        Object refValue = hrDept.get("employees");
-        Assert.assertTrue(refValue instanceof List);
-        List<Object> employees = (List<Object>)refValue;
-        Assert.assertEquals(employees.size(), 4);
-        Map<String, String> nameGuidMap = new HashMap<String, String>() {{
-            put("hr", hrDept.getId()._getId());
-        }};
-
-        for (Object listValue : employees) {
-            Assert.assertTrue(listValue instanceof 
ITypedReferenceableInstance);
-            ITypedReferenceableInstance employee = 
(ITypedReferenceableInstance) listValue;
-            nameGuidMap.put((String)employee.get("name"), 
employee.getId()._getId());
-        }
-        return nameGuidMap;
-    }
-
-
-    private AtlasEntity getEmployeeByName(AtlasEntity.AtlasEntitiesWithExtInfo 
hrDept, String name) {
-        for (AtlasEntity entity : hrDept.getEntities()) {
-            if ( name.equals(entity.getAttribute(NAME))) {
-                return entity;
-            }
-        }
-        return null;
-    }
-
-    protected abstract void 
assertTestUpdateEntity_MultiplicityOneNonCompositeReference(String janeGuid) 
throws Exception;
-
-    /**
-     * Verify deleting an entity which is contained by another
-     * entity through a bi-directional composite reference.
-     *
-     * @throws Exception
-     */
-    @Test
-    public void testDisconnectBidirectionalReferences() throws Exception {
-        AtlasEntity.AtlasEntitiesWithExtInfo hrDept = 
TestUtilsV2.createDeptEg2();
-        init();
-        final EntityMutationResponse hrDeptCreationResponse = 
entityStore.createOrUpdate(new AtlasEntityStream(hrDept), false);
-
-        final AtlasEntityHeader deptCreated = 
hrDeptCreationResponse.getFirstCreatedEntityByTypeName(DEPARTMENT_TYPE);
-        final AtlasEntityHeader maxEmployee = 
hrDeptCreationResponse.getCreatedEntityByTypeNameAndAttribute(TestUtilsV2.EMPLOYEE_TYPE,
 NAME, "Max");
-        final AtlasEntityHeader johnEmployee = 
hrDeptCreationResponse.getCreatedEntityByTypeNameAndAttribute(TestUtilsV2.EMPLOYEE_TYPE,
 NAME, "John");
-        final AtlasEntityHeader janeEmployee = 
hrDeptCreationResponse.getCreatedEntityByTypeNameAndAttribute(TestUtilsV2.MANAGER_TYPE,
 NAME, "Jane");
-        final AtlasEntityHeader juliusEmployee = 
hrDeptCreationResponse.getCreatedEntityByTypeNameAndAttribute(TestUtilsV2.MANAGER_TYPE,
 NAME, "Julius");
-
-        ITypedReferenceableInstance hrDeptInstance = 
metadataService.getEntityDefinition(deptCreated.getGuid());
-        Map<String, String> nameGuidMap = 
getEmployeeNameGuidMap(hrDeptInstance);
-
-        // Verify that Max is one of Jane's subordinates.
-        ITypedReferenceableInstance jane = 
metadataService.getEntityDefinition(janeEmployee.getGuid());
-        Object refValue = jane.get("subordinates");
-        Assert.assertTrue(refValue instanceof List);
-        List<Object> subordinates = (List<Object>)refValue;
-        Assert.assertEquals(subordinates.size(), 2);
-        List<String> subordinateIds = new ArrayList<>(2);
-        for (Object listValue : subordinates) {
-            Assert.assertTrue(listValue instanceof 
ITypedReferenceableInstance);
-            ITypedReferenceableInstance employee = 
(ITypedReferenceableInstance) listValue;
-            subordinateIds.add(employee.getId()._getId());
-        }
-        Assert.assertTrue(subordinateIds.contains(maxEmployee.getGuid()));
-
-        init();
-        EntityMutationResponse entityResult = 
entityStore.deleteById(maxEmployee.getGuid());
-        ITypedReferenceableInstance john = 
metadataService.getEntityDefinitionReference(TestUtilsV2.EMPLOYEE_TYPE, NAME, 
"John");
-
-        assertEquals(entityResult.getDeletedEntities().size(), 1);
-        assertEquals(entityResult.getDeletedEntities().get(0).getGuid(), 
maxEmployee.getGuid());
-        assertEquals(entityResult.getUpdatedEntities().size(), 3);
-
-        assertEquals(extractGuids(entityResult.getUpdatedEntities()), 
Arrays.asList(janeEmployee.getGuid(), deptCreated.getGuid(), 
johnEmployee.getGuid()));
-        assertEntityDeleted(maxEmployee.getGuid());
-
-        assertMaxForTestDisconnectBidirectionalReferences(nameGuidMap);
-
-        // Now delete jane - this should disconnect the manager reference from 
her
-        // subordinate.
-        init();
-        entityResult = entityStore.deleteById(janeEmployee.getGuid());
-        assertEquals(entityResult.getDeletedEntities().size(), 1);
-        assertEquals(entityResult.getDeletedEntities().get(0).getGuid(), 
janeEmployee.getGuid());
-        assertEquals(entityResult.getUpdatedEntities().size(), 2);
-        assertEquals(extractGuids(entityResult.getUpdatedEntities()), 
Arrays.asList(deptCreated.getGuid(), johnEmployee.getGuid()));
-
-        assertEntityDeleted(janeEmployee.getGuid());
-
-        final AtlasEntity.AtlasEntityWithExtInfo johnUpdated = 
entityStore.getById(johnEmployee.getGuid());
-        assertJohnForTestDisconnectBidirectionalReferences(johnUpdated, 
janeEmployee.getGuid());
-    }
-
-    protected List<String> extractGuids(final List<AtlasEntityHeader> 
updatedEntities) {
-        List<String> guids = new ArrayList<>();
-        for (AtlasEntityHeader header : updatedEntities ) {
-            guids.add(header.getGuid());
-        }
-        return guids;
-    }
-
-    protected abstract void 
assertJohnForTestDisconnectBidirectionalReferences(AtlasEntity.AtlasEntityWithExtInfo
 john,
-        String janeGuid) throws Exception;
-
-    protected abstract void 
assertMaxForTestDisconnectBidirectionalReferences(Map<String, String> 
nameGuidMap)
-        throws Exception;
-
-    protected abstract void 
assertTestDisconnectUnidirectionalArrayReferenceFromClassType(
-        List<AtlasObjectId> columns, String columnGuid) throws 
AtlasBaseException;
-
-    /**
-     * Verify deleting entities that are the target of a unidirectional class 
array reference
-     * from a struct or trait instance.
-     */
-    @Test
-    public void 
testDisconnectUnidirectionalArrayReferenceFromStructAndTraitTypes() throws 
Exception {
-        // Define class types.
-        AtlasStructDef.AtlasAttributeDef[] structTargetAttributes = new 
AtlasStructDef.AtlasAttributeDef[]{
-            new AtlasStructDef.AtlasAttributeDef("attr1", "string",
-                true,
-                AtlasStructDef.AtlasAttributeDef.Cardinality.SINGLE, 0, 1,
-                false, false,
-                Collections.<AtlasStructDef.AtlasConstraintDef>emptyList())};
-
-        AtlasEntityDef structTargetDef =
-            new AtlasEntityDef("StructTarget", "StructTarget_description", 
"1.0",
-                Arrays.asList(structTargetAttributes), 
Collections.<String>emptySet());
-
-
-        AtlasStructDef.AtlasAttributeDef[] traitTargetAttributes = new 
AtlasStructDef.AtlasAttributeDef[]{
-            new AtlasStructDef.AtlasAttributeDef("attr1", "string",
-                true,
-                AtlasStructDef.AtlasAttributeDef.Cardinality.SINGLE, 0, 1,
-                false, false,
-                Collections.<AtlasStructDef.AtlasConstraintDef>emptyList())};
-
-        AtlasEntityDef traitTargetDef =
-            new AtlasEntityDef("TraitTarget", "TraitTarget_description", "1.0",
-                Arrays.asList(traitTargetAttributes), 
Collections.<String>emptySet());
-
-        AtlasStructDef.AtlasAttributeDef[] structContainerAttributes = new 
AtlasStructDef.AtlasAttributeDef[]{
-            new AtlasStructDef.AtlasAttributeDef("struct", "TestStruct",
-                true,
-                AtlasStructDef.AtlasAttributeDef.Cardinality.SINGLE, 0, 1,
-                false, false,
-                Collections.<AtlasStructDef.AtlasConstraintDef>emptyList())};
-
-        AtlasEntityDef structContainerDef =
-            new AtlasEntityDef("StructContainer", 
"StructContainer_description", "1.0",
-                Arrays.asList(structContainerAttributes), 
Collections.<String>emptySet());
-
-        // Define struct and trait types which have a unidirectional array 
reference
-        // to a class type.
-        AtlasStructDef.AtlasAttributeDef[] structDefAttributes = new 
AtlasStructDef.AtlasAttributeDef[] {
-            new AtlasStructDef.AtlasAttributeDef("target", 
"array<StructTarget>",
-            true,
-            AtlasStructDef.AtlasAttributeDef.Cardinality.SINGLE, 0, 1,
-            false, false,
-            Collections.<AtlasStructDef.AtlasConstraintDef>emptyList()),
-
-            new AtlasStructDef.AtlasAttributeDef("nestedStructs", 
"array<NestedStruct>",
-            true,
-            AtlasStructDef.AtlasAttributeDef.Cardinality.SINGLE, 0, 1,
-            false, false,
-            Collections.<AtlasStructDef.AtlasConstraintDef>emptyList()) };
-
-        AtlasStructDef structDef = new AtlasStructDef("TestStruct", 
"TestStruct_desc", "1.0", Arrays.asList(structDefAttributes));
-
-
-        // Define struct and trait types which have a unidirectional array 
reference
-        // to a class type.
-        AtlasStructDef.AtlasAttributeDef[] nestedStructDefAttributes = new 
AtlasStructDef.AtlasAttributeDef[] {
-            new AtlasStructDef.AtlasAttributeDef("attr1", "string",
-                true,
-                AtlasStructDef.AtlasAttributeDef.Cardinality.SINGLE, 0, 1,
-                false, false,
-                Collections.<AtlasStructDef.AtlasConstraintDef>emptyList()),
-
-            new AtlasStructDef.AtlasAttributeDef("target", 
"array<TraitTarget>",
-                true,
-                AtlasStructDef.AtlasAttributeDef.Cardinality.SINGLE, 0, 1,
-                false, false,
-                Collections.<AtlasStructDef.AtlasConstraintDef>emptyList()) };
-
-        AtlasStructDef nestedStructDef = new AtlasStructDef("NestedStruct", 
"NestedStruct_desc", "1.0", Arrays.asList(nestedStructDefAttributes));
-
-        AtlasStructDef.AtlasAttributeDef[] traitDefAttributes = new 
AtlasStructDef.AtlasAttributeDef[] {
-            new AtlasStructDef.AtlasAttributeDef("target", 
"array<TraitTarget>",
-                true,
-                AtlasStructDef.AtlasAttributeDef.Cardinality.SINGLE, 0, 1,
-                false, false,
-                Collections.<AtlasStructDef.AtlasConstraintDef>emptyList())
-        };
-
-        AtlasClassificationDef traitDef = new 
AtlasClassificationDef("TestTrait", "TestTrait_desc", "1.0", 
Arrays.asList(traitDefAttributes));
-
-        AtlasTypesDef typesDef = 
AtlasTypeUtil.getTypesDef(ImmutableList.<AtlasEnumDef>of(),
-            ImmutableList.<AtlasStructDef>of(structDef, nestedStructDef),
-            ImmutableList.<AtlasClassificationDef>of(traitDef),
-            ImmutableList.<AtlasEntityDef>of(structTargetDef, traitTargetDef, 
structContainerDef));
-
-        typeDefStore.createTypesDef(typesDef);
-
-        // Create instances of class, struct, and trait types.
-        final AtlasEntity structTargetEntity = new AtlasEntity("StructTarget");
-        final AtlasEntity traitTargetEntity = new AtlasEntity("TraitTarget");
-        final AtlasEntity structContainerEntity = new 
AtlasEntity("StructContainer");
-        AtlasStruct structInstance = new AtlasStruct("TestStruct");
-        AtlasStruct nestedStructInstance = new AtlasStruct("NestedStruct");
-        Struct traitInstance = new Struct("TestTrait");
-        structContainerEntity.setAttribute("struct", structInstance);
-        structInstance.setAttribute("target", 
ImmutableList.of(AtlasTypeUtil.getAtlasObjectId(structTargetEntity)));
-        structInstance.setAttribute("nestedStructs", 
ImmutableList.of(nestedStructInstance));
-
-        AtlasEntity.AtlasEntitiesWithExtInfo structCreationObj = new 
AtlasEntity.AtlasEntitiesWithExtInfo();
-        structCreationObj.addEntity(structContainerEntity);
-        structCreationObj.addEntity(traitTargetEntity);
-        structCreationObj.addReferredEntity(structTargetEntity);
-
-        init();
-
-        AtlasEntityStream entityStream = new 
AtlasEntityStream(structCreationObj);
-
-        EntityMutationResponse response = 
entityStore.createOrUpdate(entityStream, false);
-        Assert.assertEquals(response.getCreatedEntities().size(), 3);
-
-        final List<String> structTarget = 
metadataService.getEntityList("StructTarget");
-        Assert.assertEquals(structTarget.size(), 1);
-        final String structTargetGuid = structTarget.get(0);
-
-        final List<String> traitTarget = 
metadataService.getEntityList("TraitTarget");
-        Assert.assertEquals(traitTarget.size(), 1);
-        final String traitTargetGuid = traitTarget.get(0);
-
-        final List<String> structContainerTarget = 
metadataService.getEntityList("StructContainer");
-        Assert.assertEquals(structContainerTarget.size(), 1);
-        String structContainerGuid = structContainerTarget.get(0);
-
-        // Add TestTrait to StructContainer instance
-        traitInstance.set("target", ImmutableList.of(new Id(traitTargetGuid, 
0, "TraitTarget")));
-        TraitType traitType = typeSystem.getDataType(TraitType.class, 
"TestTrait");
-        ITypedStruct convertedTrait = traitType.convert(traitInstance, 
Multiplicity.REQUIRED);
-        metadataService.addTrait(structContainerGuid, convertedTrait);
-
-        // Verify that the unidirectional references from the struct and trait 
instances
-        // are pointing at the target entities.
-        final ITypedReferenceableInstance structContainerConvertedEntity = 
metadataService.getEntityDefinition(structContainerGuid);
-        Object object = structContainerConvertedEntity.get("struct");
-        Assert.assertNotNull(object);
-        Assert.assertTrue(object instanceof ITypedStruct);
-        ITypedStruct struct = (ITypedStruct) object;
-        object = struct.get("target");
-        Assert.assertNotNull(object);
-        Assert.assertTrue(object instanceof List);
-        List<ITypedReferenceableInstance> refList = 
(List<ITypedReferenceableInstance>)object;
-        Assert.assertEquals(refList.size(), 1);
-        Assert.assertEquals(refList.get(0).getId()._getId(), structTargetGuid);
-
-        IStruct trait = structContainerConvertedEntity.getTrait("TestTrait");
-        Assert.assertNotNull(trait);
-        object = trait.get("target");
-        Assert.assertNotNull(object);
-        Assert.assertTrue(object instanceof List);
-        refList = (List<ITypedReferenceableInstance>)object;
-        Assert.assertEquals(refList.size(), 1);
-        Assert.assertEquals(refList.get(0).getId()._getId(), traitTargetGuid);
-
-        init();
-        // Delete the entities that are targets of the struct and trait 
instances.
-        EntityMutationResponse entityResult = entityStore.deleteByIds(new 
ArrayList<String>() {{
-            add(structTargetGuid);
-            add(traitTargetGuid);
-        }});
-        Assert.assertEquals(entityResult.getDeletedEntities().size(), 2);
-        
Assert.assertTrue(extractGuids(entityResult.getDeletedEntities()).containsAll(Arrays.asList(structTargetGuid,
 traitTargetGuid)));
-        assertEntityDeleted(structTargetGuid);
-        assertEntityDeleted(traitTargetGuid);
-
-        
assertTestDisconnectUnidirectionalArrayReferenceFromStructAndTraitTypes(structContainerGuid);
-
-        init();
-        // Delete the entity which contains nested structs and has the 
TestTrait trait.
-        entityResult = entityStore.deleteById(structContainerGuid);
-        Assert.assertEquals(entityResult.getDeletedEntities().size(), 1);
-        
Assert.assertTrue(extractGuids(entityResult.getDeletedEntities()).contains(structContainerGuid));
-        assertEntityDeleted(structContainerGuid);
-
-        // Verify all TestStruct struct vertices were removed.
-        assertVerticesDeleted(getVertices(Constants.ENTITY_TYPE_PROPERTY_KEY, 
"TestStruct"));
-
-        // Verify all NestedStruct struct vertices were removed.
-        assertVerticesDeleted(getVertices(Constants.ENTITY_TYPE_PROPERTY_KEY, 
"NestedStruct"));
-
-        // Verify all TestTrait trait vertices were removed.
-        assertVerticesDeleted(getVertices(Constants.ENTITY_TYPE_PROPERTY_KEY, 
"TestTrait"));
-    }
-
-
-    /**
-     * Verify deleting entities that are the target of class map references.
-     */
-    @Test
-    public void testDisconnectMapReferenceFromClassType() throws Exception {
-        // Define type for map value.
-        AtlasStructDef.AtlasAttributeDef[] mapValueAttributes = new 
AtlasStructDef.AtlasAttributeDef[]{
-            new AtlasStructDef.AtlasAttributeDef("biMapOwner", "MapOwner",
-                true,
-                AtlasStructDef.AtlasAttributeDef.Cardinality.SINGLE, 0, 1,
-                false, false,
-                new ArrayList<AtlasStructDef.AtlasConstraintDef>() {{
-                    add(new AtlasStructDef.AtlasConstraintDef(
-                        
AtlasStructDef.AtlasConstraintDef.CONSTRAINT_TYPE_INVERSE_REF, new 
HashMap<String, Object>() {{
-                        
put(AtlasStructDef.AtlasConstraintDef.CONSTRAINT_PARAM_ATTRIBUTE, "biMap");
-                    }}));
-                }})};
-
-        AtlasEntityDef mapValueContainerDef =
-            new AtlasEntityDef("MapValue", "MapValue_desc", "1.0",
-                Arrays.asList(mapValueAttributes), 
Collections.<String>emptySet());
-
-        // Define type with unidirectional and bidirectional map references,
-        // where the map value is a class reference to MapValue.
-
-        AtlasStructDef.AtlasAttributeDef[] mapOwnerAttributes = new 
AtlasStructDef.AtlasAttributeDef[]{
-            new AtlasStructDef.AtlasAttributeDef("map", "map<string,MapValue>",
-                true,
-                AtlasStructDef.AtlasAttributeDef.Cardinality.SINGLE, 0, 1,
-                false, false,
-                Collections.<AtlasStructDef.AtlasConstraintDef>emptyList()),
-            new AtlasStructDef.AtlasAttributeDef("biMap", 
"map<string,MapValue>",
-                true,
-                AtlasStructDef.AtlasAttributeDef.Cardinality.SINGLE, 0, 1,
-                false, false,
-                new ArrayList<AtlasStructDef.AtlasConstraintDef>() {{
-                    add(new AtlasStructDef.AtlasConstraintDef(
-                        
AtlasStructDef.AtlasConstraintDef.CONSTRAINT_TYPE_INVERSE_REF, new 
HashMap<String, Object>() {{
-                        
put(AtlasStructDef.AtlasConstraintDef.CONSTRAINT_PARAM_ATTRIBUTE, "biMapOwner");
-                    }}));
-                }})};
-
-        AtlasEntityDef mapOwnerContainerDef =
-            new AtlasEntityDef("MapOwner", "MapOwner_desc", "1.0",
-                Arrays.asList(mapOwnerAttributes), 
Collections.<String>emptySet());
-
-        AtlasTypesDef typesDef = 
AtlasTypeUtil.getTypesDef(ImmutableList.<AtlasEnumDef>of(),
-            ImmutableList.<AtlasStructDef>of(),
-            ImmutableList.<AtlasClassificationDef>of(),
-            ImmutableList.<AtlasEntityDef>of(mapValueContainerDef, 
mapOwnerContainerDef));
-
-        typeDefStore.createTypesDef(typesDef);
-
-        // Create instances of MapOwner and MapValue.
-        // Set MapOwner.map and MapOwner.biMap with one entry that references 
MapValue instance.
-        AtlasEntity mapOwnerInstance = new AtlasEntity("MapOwner");
-        AtlasEntity mapValueInstance = new AtlasEntity("MapValue");
-
-        mapOwnerInstance.setAttribute("map", 
Collections.singletonMap("value1", 
AtlasTypeUtil.getAtlasObjectId(mapValueInstance)));
-        mapOwnerInstance.setAttribute("biMap", 
Collections.singletonMap("value1", 
AtlasTypeUtil.getAtlasObjectId(mapValueInstance)));
-        // Set biMapOwner reverse reference on MapValue.
-        mapValueInstance.setAttribute("biMapOwner", 
AtlasTypeUtil.getAtlasObjectId(mapOwnerInstance));
-
-        AtlasEntity.AtlasEntitiesWithExtInfo entities = new 
AtlasEntity.AtlasEntitiesWithExtInfo();
-        entities.addReferredEntity(mapValueInstance);
-        entities.addEntity(mapOwnerInstance);
-
-        final EntityMutationResponse response = entityStore.createOrUpdate(new 
AtlasEntityStream(entities), false);
-        Assert.assertEquals(response.getCreatedEntities().size(), 2);
-        final List<AtlasEntityHeader> mapOwnerCreated = 
response.getCreatedEntitiesByTypeName("MapOwner");
-        AtlasEntity.AtlasEntityWithExtInfo mapOwnerEntity = 
entityStore.getById(mapOwnerCreated.get(0).getGuid());
-
-        String edgeLabel = 
AtlasGraphUtilsV1.getAttributeEdgeLabel(typeRegistry.getEntityTypeByName("MapOwner"),
 "map");
-        String mapEntryLabel = edgeLabel + "." + "value1";
-        AtlasEdgeLabel atlasEdgeLabel = new AtlasEdgeLabel(mapEntryLabel);
-
-        // Verify MapOwner.map attribute has expected value.
-        String mapValueGuid = null;
-        AtlasVertex mapOwnerVertex = null;
-        for (String mapAttrName : Arrays.asList("map", "biMap")) {
-            Object object = 
mapOwnerEntity.getEntity().getAttribute(mapAttrName);
-            Assert.assertNotNull(object);
-            Assert.assertTrue(object instanceof Map);
-            Map<String, AtlasObjectId> map = (Map<String, 
AtlasObjectId>)object;
-            Assert.assertEquals(map.size(), 1);
-            AtlasObjectId value1Id = map.get("value1");
-            Assert.assertNotNull(value1Id);
-            mapValueGuid = value1Id.getGuid();
-            mapOwnerVertex = 
GraphHelper.getInstance().getVertexForGUID(mapOwnerEntity.getEntity().getGuid());
-            object = 
mapOwnerVertex.getProperty(atlasEdgeLabel.getQualifiedMapKey(), Object.class);
-            Assert.assertNotNull(object);
-        }
-
-        // Delete the map value instance.
-        // This should disconnect the references from the map owner instance.
-        entityStore.deleteById(mapValueGuid);
-        assertEntityDeleted(mapValueGuid);
-        
assertTestDisconnectMapReferenceFromClassType(mapOwnerEntity.getEntity().getGuid());
-    }
-
-    protected abstract void 
assertTestDisconnectMapReferenceFromClassType(String mapOwnerGuid) throws 
Exception;
-
-    @Test
-    public void testDeleteByUniqueAttribute() throws Exception {
-        // Create a table entity, with 3 composite column entities
-        init();
-        final AtlasEntity dbEntity = TestUtilsV2.createDBEntity();
-        EntityMutationResponse dbCreationResponse = 
entityStore.createOrUpdate(new AtlasEntityStream(dbEntity), false);
-
-        final AtlasEntity tableEntity = 
TestUtilsV2.createTableEntity(dbEntity);
-        AtlasEntity.AtlasEntitiesWithExtInfo entitiesInfo = new 
AtlasEntity.AtlasEntitiesWithExtInfo(tableEntity);
-
-        final AtlasEntity columnEntity1 = 
TestUtilsV2.createColumnEntity(tableEntity);
-        entitiesInfo.addReferredEntity(columnEntity1);
-        final AtlasEntity columnEntity2 = 
TestUtilsV2.createColumnEntity(tableEntity);
-        entitiesInfo.addReferredEntity(columnEntity2);
-        final AtlasEntity columnEntity3 = 
TestUtilsV2.createColumnEntity(tableEntity);
-        entitiesInfo.addReferredEntity(columnEntity3);
-
-        tableEntity.setAttribute(COLUMNS_ATTR_NAME, 
Arrays.asList(AtlasTypeUtil.getAtlasObjectId(columnEntity1),
-                                                                  
AtlasTypeUtil.getAtlasObjectId(columnEntity2),
-                                                                  
AtlasTypeUtil.getAtlasObjectId(columnEntity3)));
-
-        init();
-
-        final EntityMutationResponse tblCreationResponse = 
entityStore.createOrUpdate(new AtlasEntityStream(entitiesInfo), false);
-
-        final AtlasEntityHeader column1Created = 
tblCreationResponse.getCreatedEntityByTypeNameAndAttribute(COLUMN_TYPE, NAME, 
(String) columnEntity1.getAttribute(NAME));
-        final AtlasEntityHeader column2Created = 
tblCreationResponse.getCreatedEntityByTypeNameAndAttribute(COLUMN_TYPE, NAME, 
(String) columnEntity2.getAttribute(NAME));
-        final AtlasEntityHeader column3Created = 
tblCreationResponse.getCreatedEntityByTypeNameAndAttribute(COLUMN_TYPE, NAME, 
(String) columnEntity3.getAttribute(NAME));
-
-        // Retrieve the table entities from the Repository, to get their guids 
and the composite column guids.
-        ITypedReferenceableInstance tableInstance = 
metadataService.getEntityDefinitionReference(TestUtils.TABLE_TYPE, NAME, 
(String) tableEntity.getAttribute(NAME));
-        List<IReferenceableInstance> columns = (List<IReferenceableInstance>) 
tableInstance.get(COLUMNS_ATTR_NAME);
-
-        //Delete column
-        String colId = columns.get(0).getId()._getId();
-        String tableId = tableInstance.getId()._getId();
-
-        init();
-
-        Map<String, Object> uniqueAttrs = new HashMap<>();
-        uniqueAttrs.put(NAME, column1Created.getAttribute(NAME));
-
-        AtlasEntityType columnType = 
typeRegistry.getEntityTypeByName(COLUMN_TYPE);
-        EntityMutationResponse deletionResponse = 
entityStore.deleteByUniqueAttributes(columnType, uniqueAttrs);
-        assertEquals(deletionResponse.getDeletedEntities().size(), 1);
-        assertEquals(deletionResponse.getDeletedEntities().get(0).getGuid(), 
colId);
-        assertEquals(deletionResponse.getUpdatedEntities().size(), 1);
-        assertEquals(deletionResponse.getUpdatedEntities().get(0).getGuid(), 
tableId);
-        assertEntityDeleted(colId);
-    }
-
-    @Test
-    public void testDeleteEntitiesWithCompositeMapReference() throws Exception 
{
-        // Create instances of MapOwner and MapValue.
-        // Set MapOwner.map with one entry that references MapValue instance.
-        AtlasEntity.AtlasEntityWithExtInfo entityDefinition = 
createMapOwnerAndValueEntities();
-        String mapOwnerGuid = entityDefinition.getEntity().getGuid();
-
-        // Verify MapOwner.map attribute has expected value.
-        AtlasEntity.AtlasEntityWithExtInfo mapOwnerInstance = 
entityStore.getById(mapOwnerGuid);
-        Object object = mapOwnerInstance.getEntity().getAttribute("map");
-        Assert.assertNotNull(object);
-        Assert.assertTrue(object instanceof Map);
-        Map<String, AtlasObjectId> map = (Map<String, AtlasObjectId>)object;
-        Assert.assertEquals(map.size(), 1);
-        AtlasObjectId mapValueInstance = map.get("value1");
-        Assert.assertNotNull(mapValueInstance);
-        String mapValueGuid = mapValueInstance.getGuid();
-        String edgeLabel = 
AtlasGraphUtilsV1.getAttributeEdgeLabel(compositeMapOwnerType, "map");
-        String mapEntryLabel = edgeLabel + "." + "value1";
-        AtlasEdgeLabel atlasEdgeLabel = new AtlasEdgeLabel(mapEntryLabel);
-        AtlasVertex mapOwnerVertex = 
GraphHelper.getInstance().getVertexForGUID(mapOwnerGuid);
-        object = 
mapOwnerVertex.getProperty(atlasEdgeLabel.getQualifiedMapKey(), Object.class);
-        Assert.assertNotNull(object);
-
-        init();
-        List<AtlasEntityHeader> deletedEntities = 
entityStore.deleteById(mapOwnerGuid).getDeletedEntities();
-        Assert.assertEquals(deletedEntities.size(), 2);
-        
Assert.assertTrue(extractGuids(deletedEntities).contains(mapOwnerGuid));
-        
Assert.assertTrue(extractGuids(deletedEntities).contains(mapValueGuid));
-
-        assertEntityDeleted(mapOwnerGuid);
-        assertEntityDeleted(mapValueGuid);
-    }
-
-    @Test
-    public void testDeleteTargetOfRequiredMapReference() throws Exception {
-        // Define type for map value.
-        AtlasEntityDef mapValueDef =
-            new AtlasEntityDef("RequiredMapValue", 
"RequiredMapValue_description", "1.0",
-                Collections.<AtlasStructDef.AtlasAttributeDef>emptyList(), 
Collections.<String>emptySet());
-
-        AtlasStructDef.AtlasAttributeDef[] mapOwnerAttributes = new 
AtlasStructDef.AtlasAttributeDef[]{
-            new AtlasStructDef.AtlasAttributeDef("map", 
"map<string,RequiredMapValue>",
-                false,
-                AtlasStructDef.AtlasAttributeDef.Cardinality.SINGLE, 1, 1,
-                false, false,
-                Collections.<AtlasStructDef.AtlasConstraintDef>emptyList())
-                };
-
-        AtlasEntityDef mapOwnerDef =
-            new AtlasEntityDef("RequiredMapOwner", 
"RequiredMapOwner_description", "1.0",
-                Arrays.asList(mapOwnerAttributes), 
Collections.<String>emptySet());
-
-        AtlasTypesDef typesDef = 
AtlasTypeUtil.getTypesDef(ImmutableList.<AtlasEnumDef>of(),
-            ImmutableList.<AtlasStructDef>of(),
-            ImmutableList.<AtlasClassificationDef>of(),
-            ImmutableList.<AtlasEntityDef>of(mapValueDef, mapOwnerDef));
-
-        TestUtilsV2.populateSystemAttributes(typesDef);
-
-        typeDefStore.createTypesDef(typesDef);
-
-        AtlasEntityType mapOwnerType = 
typeRegistry.getEntityTypeByName("RequiredMapOwner");
-        AtlasEntityType mapValueType = 
typeRegistry.getEntityTypeByName("RequiredMapValue");
-
-        // Create instances of RequiredMapOwner and RequiredMapValue.
-        // Set RequiredMapOwner.map with one entry that references 
RequiredMapValue instance.
-        AtlasEntity mapOwnerInstance = new 
AtlasEntity(mapOwnerType.getTypeName());
-        AtlasEntity mapValueInstance = new 
AtlasEntity(mapValueType.getTypeName());
-        mapOwnerInstance.setAttribute("map", 
Collections.singletonMap("value1", 
AtlasTypeUtil.getAtlasObjectId(mapValueInstance)));
-
-        AtlasEntity.AtlasEntitiesWithExtInfo entities = new 
AtlasEntity.AtlasEntitiesWithExtInfo();
-        entities.addReferredEntity(mapValueInstance);
-        entities.addEntity(mapOwnerInstance);
-
-        List<AtlasEntityHeader> createEntitiesResult = 
entityStore.createOrUpdate(new AtlasEntityStream(entities), 
false).getCreatedEntities();
-        Assert.assertEquals(createEntitiesResult.size(), 2);
-        List<String> guids = metadataService.getEntityList("RequiredMapOwner");
-        Assert.assertEquals(guids.size(), 1);
-        String mapOwnerGuid = guids.get(0);
-        guids = metadataService.getEntityList("RequiredMapValue");
-        Assert.assertEquals(guids.size(), 1);
-        String mapValueGuid = guids.get(0);
-
-        // Verify MapOwner.map attribute has expected value.
-        final AtlasEntity.AtlasEntityWithExtInfo mapOwnerInstance1 = 
entityStore.getById(mapOwnerGuid);
-        Object object = mapOwnerInstance1.getEntity().getAttribute("map");
-        Assert.assertNotNull(object);
-        Assert.assertTrue(object instanceof Map);
-        Map<String, AtlasObjectId> map = (Map<String, AtlasObjectId>)object;
-        Assert.assertEquals(map.size(), 1);
-        AtlasObjectId mapValueInstance1 = map.get("value1");
-        Assert.assertNotNull(mapValueInstance1);
-        Assert.assertEquals(mapValueInstance1.getGuid(), mapValueGuid);
-        String edgeLabel = 
AtlasGraphUtilsV1.getAttributeEdgeLabel(mapOwnerType, "map");
-        String mapEntryLabel = edgeLabel + "." + "value1";
-        AtlasEdgeLabel atlasEdgeLabel = new AtlasEdgeLabel(mapEntryLabel);
-        AtlasVertex mapOwnerVertex = 
GraphHelper.getInstance().getVertexForGUID(mapOwnerGuid);
-        object = 
mapOwnerVertex.getProperty(atlasEdgeLabel.getQualifiedMapKey(), Object.class);
-        Assert.assertNotNull(object);
-
-        // Verify deleting the target of required map attribute throws a 
AtlasBaseException.
-        try {
-            entityStore.deleteById(mapValueGuid);
-            Assert.fail(AtlasBaseException.class.getSimpleName() + " was 
expected but none thrown.");
-        }
-        catch (Exception e) {
-            verifyExceptionThrown(e, AtlasBaseException.class);
-        }
-    }
-
-    @Test
-    public void testLowerBoundsIgnoredWhenDeletingCompositeEntitesOwnedByMap() 
throws Exception {
-        // Define MapValueReferencer type with required reference to 
CompositeMapValue.
-        AtlasStructDef.AtlasAttributeDef[] mapValueAttributes = new 
AtlasStructDef.AtlasAttributeDef[]{
-            new AtlasStructDef.AtlasAttributeDef("refToMapValue", 
"CompositeMapValue",
-                false,
-                AtlasStructDef.AtlasAttributeDef.Cardinality.SINGLE, 1, 1,
-                false, false,
-                Collections.<AtlasStructDef.AtlasConstraintDef>emptyList())
-        };
-
-        AtlasEntityDef mapValueDef =
-            new AtlasEntityDef("MapValueReferencer", 
"RequiredMapValue_description", "1.0",
-                Arrays.asList(mapValueAttributes), 
Collections.<String>emptySet());
-
-
-        AtlasStructDef.AtlasAttributeDef[] mapContainerAttributes = new 
AtlasStructDef.AtlasAttributeDef[]{
-            new AtlasStructDef.AtlasAttributeDef("requiredMap", 
"map<string,MapValueReferencer>",
-                false,
-                AtlasStructDef.AtlasAttributeDef.Cardinality.SINGLE, 1, 1,
-                false, false,
-                new ArrayList<AtlasStructDef.AtlasConstraintDef>() {{
-                    add(new 
AtlasStructDef.AtlasConstraintDef(AtlasStructDef.AtlasConstraintDef.CONSTRAINT_TYPE_OWNED_REF));
-                }})
-        };
-
-        AtlasEntityDef mapContainerDef =
-            new AtlasEntityDef("MapValueReferencerContainer", 
"MapValueReferencerContainer_description", "1.0",
-                Arrays.asList(mapContainerAttributes), 
Collections.<String>emptySet());
-
-
-        AtlasTypesDef typesDef = 
AtlasTypeUtil.getTypesDef(ImmutableList.<AtlasEnumDef>of(),
-            ImmutableList.<AtlasStructDef>of(),
-            ImmutableList.<AtlasClassificationDef>of(),
-            ImmutableList.<AtlasEntityDef>of(mapValueDef, mapContainerDef));
-
-        typeDefStore.createTypesDef(typesDef);
-
-        // Create instances of CompositeMapOwner and CompositeMapValue.
-        // Set MapOwner.map with one entry that references MapValue instance.
-        AtlasEntity.AtlasEntityWithExtInfo entityDefinition = 
createMapOwnerAndValueEntities();
-        String mapOwnerGuid = entityDefinition.getEntity().getGuid();
-
-        // Verify MapOwner.map attribute has expected value.
-        ITypedReferenceableInstance mapOwnerInstance = 
metadataService.getEntityDefinition(mapOwnerGuid);
-        Object object = mapOwnerInstance.get("map");
-        Assert.assertNotNull(object);
-        Assert.assertTrue(object instanceof Map);
-        Map<String, ITypedReferenceableInstance> map = (Map<String, 
ITypedReferenceableInstance>)object;
-        Assert.assertEquals(map.size(), 1);
-        ITypedReferenceableInstance mapValueInstance = map.get("value1");
-        Assert.assertNotNull(mapValueInstance);
-        String mapValueGuid = mapValueInstance.getId()._getId();
-
-        // Create instance of MapValueReferencerContainer
-        init();
-        AtlasEntity mapValueReferencer = new 
AtlasEntity(mapValueDef.getName());
-        mapValueReferencer.setAttribute("refToMapValue", new 
AtlasObjectId(mapValueInstance.getId()._getId(), 
mapValueInstance.getTypeName()));
-        AtlasEntity.AtlasEntitiesWithExtInfo entities = new 
AtlasEntity.AtlasEntitiesWithExtInfo();
-        entities.addEntity(mapValueReferencer);
-
-        List<AtlasEntityHeader> createEntitiesResult = 
entityStore.createOrUpdate(new AtlasEntityStream(entities), 
false).getCreatedEntities();
-        Assert.assertEquals(createEntitiesResult.size(), 1);
-
-        // Create instance of MapValueReferencer, and update 
mapValueReferencerContainer
-        // to reference it.
-        AtlasEntity mapValueReferenceContainer = new 
AtlasEntity(mapContainerDef.getName());
-        entities = new AtlasEntity.AtlasEntitiesWithExtInfo();
-        entities.addEntity(mapValueReferenceContainer);
-        entities.addReferredEntity(mapValueReferencer);
-        mapValueReferenceContainer.setAttribute("requiredMap", 
Collections.singletonMap("value1", 
AtlasTypeUtil.getAtlasObjectId(mapValueReferencer)));
-
-
-        init();
-        EntityMutationResponse updateEntitiesResult = 
entityStore.createOrUpdate(new AtlasEntityStream(entities), false);
-
-        String mapValueReferencerContainerGuid = 
updateEntitiesResult.getCreatedEntitiesByTypeName("MapValueReferencerContainer").get(0).getGuid();
-        String mapValueReferencerGuid = 
updateEntitiesResult.getUpdatedEntitiesByTypeName("MapValueReferencer").get(0).getGuid();
-
-        Assert.assertEquals(updateEntitiesResult.getCreatedEntities().size(), 
1);
-        Assert.assertEquals(updateEntitiesResult.getUpdatedEntities().size(), 
1);
-        
Assert.assertEquals(updateEntitiesResult.getUpdatedEntities().get(0).getGuid(), 
mapValueReferencerGuid);
-
-
-        // Delete map owner and map referencer container.  A total of 4 
entities should be deleted,
-        // including the composite entities.  The lower bound constraint on 
MapValueReferencer.refToMapValue
-        // should not be enforced on the composite MapValueReferencer since it 
is being deleted.
-        EntityMutationResponse deleteEntitiesResult = 
entityStore.deleteByIds(Arrays.asList(mapOwnerGuid, 
mapValueReferencerContainerGuid));
-        Assert.assertEquals(deleteEntitiesResult.getDeletedEntities().size(), 
4);
-        
Assert.assertTrue(extractGuids(deleteEntitiesResult.getDeletedEntities()).containsAll(
-            Arrays.asList(mapOwnerGuid, mapValueGuid, 
mapValueReferencerContainerGuid, mapValueReferencerGuid)));
-    }
-
-    private AtlasEntity.AtlasEntityWithExtInfo createMapOwnerAndValueEntities()
-        throws AtlasException, AtlasBaseException {
-
-        final AtlasEntity mapOwnerInstance = new 
AtlasEntity(compositeMapOwnerType.getTypeName());
-        mapOwnerInstance.setAttribute(NAME, TestUtils.randomString());
-        AtlasEntity mapValueInstance = new 
AtlasEntity(compositeMapValueType.getTypeName());
-        mapValueInstance.setAttribute(NAME, TestUtils.randomString());
-        mapOwnerInstance.setAttribute("map", 
Collections.singletonMap("value1", 
AtlasTypeUtil.getAtlasObjectId(mapValueInstance)));
-
-        AtlasEntity.AtlasEntitiesWithExtInfo entities = new 
AtlasEntity.AtlasEntitiesWithExtInfo();
-        entities.addReferredEntity(mapValueInstance);
-        entities.addEntity(mapOwnerInstance);
-
-        List<AtlasEntityHeader> createEntitiesResult = 
entityStore.createOrUpdate(new AtlasEntityStream(entities), 
false).getCreatedEntities();
-        Assert.assertEquals(createEntitiesResult.size(), 2);
-        AtlasEntity.AtlasEntityWithExtInfo entityDefinition = 
entityStore.getByUniqueAttributes(compositeMapOwnerType,
-            new HashMap<String, Object>() {{
-                put(NAME, mapOwnerInstance.getAttribute(NAME));
-            }});
-        return entityDefinition;
-    }
-
-
-    protected abstract void 
assertTestDisconnectUnidirectionalArrayReferenceFromStructAndTraitTypes(
-        String structContainerGuid) throws Exception;
-
-    protected abstract void assertVerticesDeleted(List<AtlasVertex> vertices);
-
-    protected List<AtlasVertex> getVertices(String propertyName, Object value) 
{
-        AtlasGraph graph = TestUtils.getGraph();
-        Iterable<AtlasVertex> vertices = graph.getVertices(propertyName, 
value);
-        List<AtlasVertex> list = new ArrayList<>();
-        for (AtlasVertex vertex : vertices) {
-            list.add(vertex);
-        }
-        return list;
-    }
-
-    /**
-     * Search exception cause chain for specified exception.
-     *
-     * @param thrown root of thrown exception chain
-     * @param expected  class of expected exception
-     */
-    private void verifyExceptionThrown(Exception thrown, Class expected) {
-
-        boolean exceptionFound = false;
-        Throwable cause = thrown;
-        while (cause != null) {
-            if (expected.isInstance(cause)) {
-                // good
-                exceptionFound = true;
-                break;
-            }
-            else {
-                cause = cause.getCause();
-            }
-        }
-        if (!exceptionFound) {
-            Assert.fail(expected.getSimpleName() + " was expected but not 
thrown", thrown);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/0877e47c/repository/src/test/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityDefStoreV1Test.java
----------------------------------------------------------------------
diff --git 
a/repository/src/test/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityDefStoreV1Test.java
 
b/repository/src/test/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityDefStoreV1Test.java
deleted file mode 100644
index 95b5761..0000000
--- 
a/repository/src/test/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityDefStoreV1Test.java
+++ /dev/null
@@ -1,72 +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.repository.store.graph.v1;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Inject;
-import org.apache.atlas.ApplicationProperties;
-import org.apache.atlas.AtlasErrorCode;
-import org.apache.atlas.AtlasException;
-import org.apache.atlas.TestModules;
-import org.apache.atlas.exception.AtlasBaseException;
-import org.apache.atlas.model.typedef.AtlasEntityDef;
-import org.apache.atlas.repository.graph.AtlasGraphProvider;
-import org.apache.atlas.type.AtlasTypeUtil;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Guice;
-import org.testng.annotations.Test;
-
-/**
- * Tests for AtlasEntityStoreV1
- */
-@Guice(modules = TestModules.TestOnlyModule.class)
-public class AtlasEntityDefStoreV1Test {
-
-    @Inject
-    private
-    AtlasEntityDefStoreV1 entityDefStore;
-
-    @DataProvider
-    public Object[][] invalidAttributeNameWithReservedKeywords(){
-        AtlasEntityDef invalidAttrNameType =
-            AtlasTypeUtil.createClassTypeDef("Invalid_Attribute_Type", 
"description", ImmutableSet.<String>of(),
-                AtlasTypeUtil.createRequiredAttrDef("order", "string"),
-                AtlasTypeUtil.createRequiredAttrDef("limit", "string"));
-
-        return new Object[][] {{
-            invalidAttrNameType
-        }};
-    }
-
-    @Test(dataProvider = "invalidAttributeNameWithReservedKeywords")
-    public void testCreateTypeWithReservedKeywords(AtlasEntityDef 
atlasEntityDef) throws AtlasException {
-        try {
-            
ApplicationProperties.get().setProperty(AtlasAbstractDefStoreV1.ALLOW_RESERVED_KEYWORDS,
 false);
-            entityDefStore.create(atlasEntityDef, null);
-        } catch (AtlasBaseException e) {
-            Assert.assertEquals(e.getAtlasErrorCode(), 
AtlasErrorCode.ATTRIBUTE_NAME_INVALID);
-        }
-    }
-
-    @AfterClass
-    public void clear(){
-        AtlasGraphProvider.cleanup();
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/0877e47c/repository/src/test/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStoreV1BulkImportPercentTest.java
----------------------------------------------------------------------
diff --git 
a/repository/src/test/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStoreV1BulkImportPercentTest.java
 
b/repository/src/test/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStoreV1BulkImportPercentTest.java
deleted file mode 100644
index 73dfe37..0000000
--- 
a/repository/src/test/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStoreV1BulkImportPercentTest.java
+++ /dev/null
@@ -1,167 +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.repository.store.graph.v1;
-
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-import org.slf4j.Logger;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.mockito.Matchers.*;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.mock;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-public class AtlasEntityStoreV1BulkImportPercentTest {
-
-    private final int MAX_PERCENT = 100;
-    private List<Integer> percentHolder;
-    private Logger log;
-
-    public void setupPercentHolder(int max) {
-        percentHolder = new ArrayList<>();
-    }
-
-    @BeforeClass
-    void mockLog() {
-        log = mock(Logger.class);
-
-        doAnswer(new Answer() {
-            @Override
-            public Object answer(InvocationOnMock invocationOnMock) throws 
Throwable {
-                Object[] args = invocationOnMock.getArguments();
-                Integer d = (Integer) args[1];
-                percentHolder.add(d.intValue());
-                return null;
-            }
-        }).when(log).info(anyString(), anyFloat(), anyInt(), anyString());
-    }
-
-    @Test
-    public void percentTest_Equal4() throws Exception {
-        runWithSize(4);
-        assertEqualsForPercentHolder(25.0, 50.0, 75.0, 100.0);
-    }
-
-    @Test
-    public void percentTest_Equal10() throws Exception {
-        runWithSize(10);
-
-        assertEqualsForPercentHolder(10.0, 20.0, 30.0, 40.0, 50, 60, 70, 80, 
90, 100);
-    }
-
-    private void assertEqualsForPercentHolder(double... expected) {
-        assertEquals(percentHolder.size(), expected.length);
-        Object actual[] = percentHolder.toArray();
-        for (int i = 0; i < expected.length; i++) {
-            assertTrue((int) Double.compare((int) actual[i], expected[i]) == 
0);
-        }
-    }
-
-    @Test
-    public void bulkImportPercentageTestLessThan100() throws Exception {
-        int streamSize = 20;
-
-        runWithSize(streamSize);
-        assertEqualsForPercentHolder(5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 
55, 60, 65, 70, 75, 80, 85, 90, 95, 100);
-    }
-
-    @Test
-    public void percentTest_Equal101() throws Exception {
-        int streamSize = 101;
-
-        double[] expected = fillPercentHolderWith100();
-
-        runWithSize(streamSize);
-        assertEqualsForPercentHolder(expected);
-    }
-
-    @Test
-    public void percentTest_Equal200() throws Exception {
-        int streamSize = 200;
-
-        double[] expected = fillPercentHolderWith100();
-
-        runWithSize(streamSize);
-        assertEqualsForPercentHolder(expected);
-    }
-
-    @Test
-    public void percentTest_Equal202() throws Exception {
-        int streamSize = 202;
-
-        double[] expected = fillPercentHolderWith100();
-
-        runWithSize(streamSize);
-        assertEqualsForPercentHolder(expected);
-    }
-
-    @Test
-    public void percentTest_Equal1001() throws Exception {
-        int streamSize = 1001;
-        double[] expected = fillPercentHolderWith100();
-
-        runWithSize(streamSize);
-        assertEqualsForPercentHolder(expected);
-    }
-
-    @Test
-    public void percentTest_Equal4323() throws Exception {
-        int streamSize = 4323;
-
-        double[] expected = fillPercentHolderWith100();
-        runWithSize(streamSize);
-        assertEqualsForPercentHolder(expected);
-    }
-
-    @Test
-    public void percentTest_Equal269() throws Exception {
-        int streamSize = 269;
-
-        double[] expected = fillPercentHolderWith100();
-        runWithSize(streamSize);
-        assertEqualsForPercentHolder(expected);
-    }
-
-    private void runWithSize(int streamSize) throws Exception {
-        float currentPercent = 0;
-        setupPercentHolder(streamSize);
-        for (int currentIndex = 0; currentIndex < streamSize; currentIndex++) {
-            currentPercent = invokeBulkImportProgress(currentIndex + 1, 
streamSize, currentPercent);
-        }
-    }
-
-    private float invokeBulkImportProgress(int currentIndex, int streamSize, 
float currentPercent) throws Exception {
-        return BulkImporterImpl.updateImportProgress(log, currentIndex, 
streamSize, currentPercent, "additional info");
-    }
-
-    private double[] fillPercentHolderWith100() {
-        double start = 1;
-        double expected[] = new double[MAX_PERCENT];
-        for (int i = 0; i < expected.length; i++) {
-            expected[i] = start;
-            start ++;
-        }
-        return expected;
-    }
-}

Reply via email to