Commit d0f2ce5e by Suma Shivaprasad

ATLAS-1657 Taxonomy term disassociation with assets fail

parent 0ed5e0aa
...@@ -20,33 +20,35 @@ package org.apache.atlas.catalog; ...@@ -20,33 +20,35 @@ package org.apache.atlas.catalog;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import org.apache.atlas.AtlasErrorCode;
import org.apache.atlas.AtlasException; import org.apache.atlas.AtlasException;
import org.apache.atlas.catalog.definition.ResourceDefinition; import org.apache.atlas.catalog.definition.ResourceDefinition;
import org.apache.atlas.catalog.exception.CatalogRuntimeException; import org.apache.atlas.catalog.exception.CatalogRuntimeException;
import org.apache.atlas.catalog.exception.ResourceAlreadyExistsException; import org.apache.atlas.catalog.exception.ResourceAlreadyExistsException;
import org.apache.atlas.catalog.exception.ResourceNotFoundException; import org.apache.atlas.catalog.exception.ResourceNotFoundException;
import org.apache.atlas.classification.InterfaceAudience; import org.apache.atlas.classification.InterfaceAudience;
import org.apache.atlas.exception.AtlasBaseException;
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.converters.TypeConverterUtil;
import org.apache.atlas.services.MetadataService; import org.apache.atlas.services.MetadataService;
import org.apache.atlas.store.AtlasTypeDefStore;
import org.apache.atlas.type.AtlasTypeUtil;
import org.apache.atlas.typesystem.ITypedReferenceableInstance; import org.apache.atlas.typesystem.ITypedReferenceableInstance;
import org.apache.atlas.typesystem.Referenceable; import org.apache.atlas.typesystem.Referenceable;
import org.apache.atlas.typesystem.Struct; import org.apache.atlas.typesystem.Struct;
import org.apache.atlas.typesystem.TypesDef;
import org.apache.atlas.typesystem.exception.EntityExistsException; import org.apache.atlas.typesystem.exception.EntityExistsException;
import org.apache.atlas.typesystem.exception.EntityNotFoundException; import org.apache.atlas.typesystem.exception.EntityNotFoundException;
import org.apache.atlas.typesystem.exception.TraitNotFoundException; import org.apache.atlas.typesystem.exception.TraitNotFoundException;
import org.apache.atlas.typesystem.exception.TypeExistsException;
import org.apache.atlas.typesystem.exception.TypeNotFoundException;
import org.apache.atlas.typesystem.json.TypesSerialization;
import org.apache.atlas.typesystem.types.AttributeDefinition; import org.apache.atlas.typesystem.types.AttributeDefinition;
import org.apache.atlas.typesystem.types.ClassType; 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.HierarchicalType; import org.apache.atlas.typesystem.types.HierarchicalType;
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.TraitType;
import org.apache.atlas.typesystem.types.utils.TypesUtil;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
...@@ -58,36 +60,43 @@ import java.util.Map; ...@@ -58,36 +60,43 @@ import java.util.Map;
public class DefaultTypeSystem implements AtlasTypeSystem { public class DefaultTypeSystem implements AtlasTypeSystem {
private final MetadataService metadataService; private final MetadataService metadataService;
private final AtlasTypeDefStore typeDefStore;
/** /**
* Constructor. * Constructor.
* *
* @param metadataService atlas metadata service * @param metadataService atlas metadata service
*/ */
public DefaultTypeSystem(MetadataService metadataService) throws AtlasException { public DefaultTypeSystem(MetadataService metadataService, AtlasTypeDefStore typeDefStore) throws AtlasBaseException {
this.metadataService = metadataService; this.metadataService = metadataService;
this.typeDefStore = typeDefStore;
//Create namespace //Create namespace
createSuperTypes(); createSuperTypes();
} }
@InterfaceAudience.Private @InterfaceAudience.Private
private void createSuperTypes() throws AtlasException { private void createSuperTypes() throws AtlasBaseException {
HierarchicalTypeDefinition<TraitType> termType = TypesUtil
.createTraitTypeDef(TaxonomyResourceProvider.TAXONOMY_TERM_TYPE, ImmutableSet.<String>of(), AtlasClassificationDef termClassification = AtlasTypeUtil.createTraitTypeDef(TaxonomyResourceProvider.TAXONOMY_TERM_TYPE, TaxonomyResourceProvider.TAXONOMY_TERM_TYPE,
TypesUtil.createOptionalAttrDef(TaxonomyResourceProvider.NAMESPACE_ATTRIBUTE_NAME, ImmutableSet.<String>of(), AtlasTypeUtil.createOptionalAttrDef(TaxonomyResourceProvider.NAMESPACE_ATTRIBUTE_NAME, "string"));
DataTypes.STRING_TYPE));
createTraitType(termType); createTraitType(termClassification);
} }
private void createTraitType(HierarchicalTypeDefinition<TraitType> type) throws AtlasException { private void createTraitType(AtlasClassificationDef classificationDef) throws AtlasBaseException {
try { try {
metadataService.getTypeDefinition(type.typeName); typeDefStore.getClassificationDefByName(classificationDef.getName());
} catch(TypeNotFoundException tne) { } catch (AtlasBaseException tne) {
//Type not found . Create //Type not found . Create
TypesDef typesDef = TypesUtil.getTypesDef(ImmutableList.<EnumTypeDefinition>of(), ImmutableList.<StructTypeDefinition>of(), if (tne.getAtlasErrorCode() == AtlasErrorCode.TYPE_NAME_NOT_FOUND) {
ImmutableList.of(type), AtlasTypesDef typesDef = new AtlasTypesDef(ImmutableList.<AtlasEnumDef>of(), ImmutableList.<AtlasStructDef>of(),
ImmutableList.<HierarchicalTypeDefinition<ClassType>>of()); ImmutableList.of(classificationDef),
metadataService.createType(TypesSerialization.toJson(typesDef)); ImmutableList.<AtlasEntityDef>of());
typeDefStore.createTypesDef(typesDef);
} else {
throw tne;
}
} }
} }
...@@ -194,24 +203,37 @@ public class DefaultTypeSystem implements AtlasTypeSystem { ...@@ -194,24 +203,37 @@ public class DefaultTypeSystem implements AtlasTypeSystem {
String name, String name,
String description, String description,
boolean isTrait) boolean isTrait)
throws ResourceAlreadyExistsException { throws ResourceAlreadyExistsException {
try { try {
HierarchicalTypeDefinition<T> definition = null; List<AtlasStructDef.AtlasAttributeDef> attrDefs = new ArrayList<>();
for (AttributeDefinition attrDefinition : attributes) {
attrDefs.add(TypeConverterUtil.toAtlasAttributeDef(attrDefinition));
}
if ( isTrait) { if ( isTrait) {
definition = new HierarchicalTypeDefinition<>(type, name, description, AtlasClassificationDef classificationDef = new AtlasClassificationDef(name, description, "1.0", attrDefs, ImmutableSet.of(TaxonomyResourceProvider.TAXONOMY_TERM_TYPE));
ImmutableSet.of(TaxonomyResourceProvider.TAXONOMY_TERM_TYPE), attributes.toArray(new AttributeDefinition[attributes.size()])); AtlasTypesDef typesDef = new AtlasTypesDef(ImmutableList.<AtlasEnumDef>of(), ImmutableList.<AtlasStructDef>of(),
ImmutableList.of(classificationDef),
ImmutableList.<AtlasEntityDef>of());
typeDefStore.createTypesDef(typesDef);
} else { } else {
definition = new HierarchicalTypeDefinition<>(type, name, description, AtlasEntityDef entityDef = new AtlasEntityDef(name, description, "1.0", attrDefs);
ImmutableSet.<String>of(), attributes.toArray(new AttributeDefinition[attributes.size()])); AtlasTypesDef typesDef = new AtlasTypesDef(ImmutableList.<AtlasEnumDef>of(), ImmutableList.<AtlasStructDef>of(),
ImmutableList.<AtlasClassificationDef>of(),
ImmutableList.of(entityDef));
typeDefStore.createTypesDef(typesDef);
} }
metadataService.createType(TypesSerialization.toJson(definition, isTrait)); } catch (AtlasBaseException e) {
} catch (TypeExistsException e) { if ( e.getAtlasErrorCode() == AtlasErrorCode.TYPE_ALREADY_EXISTS) {
throw new ResourceAlreadyExistsException(String.format("Type '%s' already exists", name)); throw new ResourceAlreadyExistsException(String.format("Type '%s' already exists", name));
} catch (AtlasException e) { } else {
throw new CatalogRuntimeException(String.format( throw new CatalogRuntimeException(String.format(
"Unable to create type '%s' in type system: %s", name, e), e); "Unable to create type '%s' in type system: %s", name, e), e);
}
} }
} }
} }
...@@ -121,10 +121,11 @@ public class AtlasTypeUtil { ...@@ -121,10 +121,11 @@ public class AtlasTypeUtil {
} }
public static void validateType(AtlasBaseTypeDef typeDef) throws AtlasBaseException { public static void validateType(AtlasBaseTypeDef typeDef) throws AtlasBaseException {
String typeName = typeDef.getName(); boolean isValidName = (typeDef instanceof AtlasClassificationDef) ? isValidTraitTypeName(typeDef.getName())
: isValidTypeName(typeDef.getName());
if (!isValidTypeName(typeName)) { if (!isValidName) {
throw new AtlasBaseException(AtlasErrorCode.TYPE_NAME_INVALID_FORMAT, typeName, typeDef.getCategory().name()); throw new AtlasBaseException(AtlasErrorCode.TYPE_NAME_INVALID_FORMAT, typeDef.getName(), typeDef.getCategory().name());
} }
} }
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.apache.atlas.util; package org.apache.atlas.repository.converters;
import static org.apache.atlas.AtlasErrorCode.INVALID_TYPE_DEFINITION; import static org.apache.atlas.AtlasErrorCode.INVALID_TYPE_DEFINITION;
import static org.apache.atlas.model.typedef.AtlasStructDef.AtlasConstraintDef.CONSTRAINT_TYPE_OWNED_REF; import static org.apache.atlas.model.typedef.AtlasStructDef.AtlasConstraintDef.CONSTRAINT_TYPE_OWNED_REF;
...@@ -30,7 +30,6 @@ import java.util.List; ...@@ -30,7 +30,6 @@ import java.util.List;
import java.util.Set; import java.util.Set;
import org.apache.atlas.exception.AtlasBaseException; import org.apache.atlas.exception.AtlasBaseException;
import org.apache.atlas.model.TypeCategory;
import org.apache.atlas.model.typedef.AtlasClassificationDef; import org.apache.atlas.model.typedef.AtlasClassificationDef;
import org.apache.atlas.model.typedef.AtlasEntityDef; import org.apache.atlas.model.typedef.AtlasEntityDef;
import org.apache.atlas.model.typedef.AtlasEnumDef; import org.apache.atlas.model.typedef.AtlasEnumDef;
...@@ -63,36 +62,28 @@ import org.apache.atlas.typesystem.types.TraitType; ...@@ -63,36 +62,28 @@ import org.apache.atlas.typesystem.types.TraitType;
import org.apache.atlas.typesystem.types.utils.TypesUtil; import org.apache.atlas.typesystem.types.utils.TypesUtil;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import static org.apache.atlas.AtlasErrorCode.INVALID_TYPE_DEFINITION;
import static org.apache.atlas.type.AtlasTypeUtil.isArrayType;
public final class RestUtils { public final class TypeConverterUtil {
private RestUtils() {} private TypeConverterUtil() {}
private static final Logger LOG = LoggerFactory.getLogger(RestUtils.class); private static final Logger LOG = LoggerFactory.getLogger(TypeConverterUtil.class);
public static TypesDef toTypesDef(AtlasType type, AtlasTypeRegistry typeRegistry) throws AtlasBaseException { public static TypesDef toTypesDef(AtlasType type, AtlasTypeRegistry typeRegistry) throws AtlasBaseException {
final TypesDef ret; final TypesDef ret;
if (type instanceof AtlasEnumType) { if (type instanceof AtlasEnumType) {
ret = RestUtils.enumToTypesDef((AtlasEnumType)type); ret = TypeConverterUtil.enumToTypesDef((AtlasEnumType) type);
} else if (type instanceof AtlasEntityType) { } else if (type instanceof AtlasEntityType) {
ret = RestUtils.entityToTypesDef((AtlasEntityType)type, typeRegistry); ret = TypeConverterUtil.entityToTypesDef((AtlasEntityType) type, typeRegistry);
} else if (type instanceof AtlasClassificationType) { } else if (type instanceof AtlasClassificationType) {
ret = RestUtils.classificationToTypesDef((AtlasClassificationType)type, typeRegistry); ret = TypeConverterUtil.classificationToTypesDef((AtlasClassificationType) type, typeRegistry);
} else if (type instanceof AtlasStructType) { } else if (type instanceof AtlasStructType) {
ret = RestUtils.structToTypesDef((AtlasStructType)type, typeRegistry); ret = TypeConverterUtil.structToTypesDef((AtlasStructType) type, typeRegistry);
} else { } else {
ret = new TypesDef(); ret = new TypesDef();
} }
...@@ -356,7 +347,7 @@ public final class RestUtils { ...@@ -356,7 +347,7 @@ public final class RestUtils {
return ret.toArray(new EnumValue[ret.size()]); return ret.toArray(new EnumValue[ret.size()]);
} }
private static AtlasAttributeDef toAtlasAttributeDef(final AttributeDefinition attrDefinition) { public static AtlasAttributeDef toAtlasAttributeDef(final AttributeDefinition attrDefinition) {
AtlasAttributeDef ret = new AtlasAttributeDef(); AtlasAttributeDef ret = new AtlasAttributeDef();
ret.setName(attrDefinition.name); ret.setName(attrDefinition.name);
......
...@@ -27,7 +27,9 @@ import org.apache.atlas.catalog.EntityTagResourceProvider; ...@@ -27,7 +27,9 @@ import org.apache.atlas.catalog.EntityTagResourceProvider;
import org.apache.atlas.catalog.InstanceRequest; import org.apache.atlas.catalog.InstanceRequest;
import org.apache.atlas.catalog.Result; import org.apache.atlas.catalog.Result;
import org.apache.atlas.catalog.exception.CatalogException; import org.apache.atlas.catalog.exception.CatalogException;
import org.apache.atlas.exception.AtlasBaseException;
import org.apache.atlas.services.MetadataService; import org.apache.atlas.services.MetadataService;
import org.apache.atlas.store.AtlasTypeDefStore;
import org.apache.atlas.utils.AtlasPerfTracer; import org.apache.atlas.utils.AtlasPerfTracer;
import org.apache.atlas.web.util.Servlets; import org.apache.atlas.web.util.Servlets;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -63,8 +65,8 @@ public class EntityService extends BaseService { ...@@ -63,8 +65,8 @@ public class EntityService extends BaseService {
private final EntityTagResourceProvider entityTagResourceProvider; private final EntityTagResourceProvider entityTagResourceProvider;
@Inject @Inject
public EntityService(MetadataService metadataService) throws AtlasException { public EntityService(MetadataService metadataService, AtlasTypeDefStore typeDefStore) throws AtlasBaseException {
DefaultTypeSystem typeSystem = new DefaultTypeSystem(metadataService); DefaultTypeSystem typeSystem = new DefaultTypeSystem(metadataService, typeDefStore);
entityResourceProvider = new EntityResourceProvider(typeSystem); entityResourceProvider = new EntityResourceProvider(typeSystem);
entityTagResourceProvider = new EntityTagResourceProvider(typeSystem); entityTagResourceProvider = new EntityTagResourceProvider(typeSystem);
} }
......
...@@ -22,7 +22,9 @@ import org.apache.atlas.AtlasException; ...@@ -22,7 +22,9 @@ import org.apache.atlas.AtlasException;
import org.apache.atlas.catalog.*; import org.apache.atlas.catalog.*;
import org.apache.atlas.catalog.exception.CatalogException; import org.apache.atlas.catalog.exception.CatalogException;
import org.apache.atlas.catalog.exception.InvalidPayloadException; import org.apache.atlas.catalog.exception.InvalidPayloadException;
import org.apache.atlas.exception.AtlasBaseException;
import org.apache.atlas.services.MetadataService; import org.apache.atlas.services.MetadataService;
import org.apache.atlas.store.AtlasTypeDefStore;
import org.apache.atlas.utils.AtlasPerfTracer; import org.apache.atlas.utils.AtlasPerfTracer;
import org.apache.atlas.web.util.Servlets; import org.apache.atlas.web.util.Servlets;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -58,8 +60,8 @@ public class TaxonomyService extends BaseService { ...@@ -58,8 +60,8 @@ public class TaxonomyService extends BaseService {
private ResourceProvider termResourceProvider; private ResourceProvider termResourceProvider;
@Inject @Inject
public void setMetadataService(MetadataService metadataService) throws AtlasException { public void setMetadataService(MetadataService metadataService, AtlasTypeDefStore typeDefStore) throws AtlasBaseException {
DefaultTypeSystem typeSystem = new DefaultTypeSystem(metadataService); DefaultTypeSystem typeSystem = new DefaultTypeSystem(metadataService, typeDefStore);
taxonomyResourceProvider = createTaxonomyResourceProvider(typeSystem); taxonomyResourceProvider = createTaxonomyResourceProvider(typeSystem);
termResourceProvider = createTermResourceProvider(typeSystem); termResourceProvider = createTermResourceProvider(typeSystem);
} }
......
...@@ -26,7 +26,7 @@ import org.apache.atlas.model.typedef.AtlasTypesDef; ...@@ -26,7 +26,7 @@ import org.apache.atlas.model.typedef.AtlasTypesDef;
import org.apache.atlas.type.AtlasTypeRegistry; import org.apache.atlas.type.AtlasTypeRegistry;
import org.apache.atlas.typesystem.TypesDef; import org.apache.atlas.typesystem.TypesDef;
import org.apache.atlas.typesystem.json.TypesSerialization; import org.apache.atlas.typesystem.json.TypesSerialization;
import org.apache.atlas.util.RestUtils; import org.apache.atlas.repository.converters.TypeConverterUtil;
import org.apache.atlas.utils.AtlasPerfTracer; import org.apache.atlas.utils.AtlasPerfTracer;
import org.apache.atlas.web.rest.TypesREST; import org.apache.atlas.web.rest.TypesREST;
import org.apache.atlas.web.util.Servlets; import org.apache.atlas.web.util.Servlets;
...@@ -105,9 +105,9 @@ public class TypesResource { ...@@ -105,9 +105,9 @@ public class TypesResource {
LOG.debug("Creating type with definition {} ", typeDefinition); LOG.debug("Creating type with definition {} ", typeDefinition);
} }
AtlasTypesDef createTypesDef = RestUtils.toAtlasTypesDef(typeDefinition, typeRegistry); AtlasTypesDef createTypesDef = TypeConverterUtil.toAtlasTypesDef(typeDefinition, typeRegistry);
AtlasTypesDef createdTypesDef = typesRest.createAtlasTypeDefs(createTypesDef); AtlasTypesDef createdTypesDef = typesRest.createAtlasTypeDefs(createTypesDef);
List<String> typeNames = RestUtils.getTypeNames(createdTypesDef); List<String> typeNames = TypeConverterUtil.getTypeNames(createdTypesDef);
for (int i = 0; i < typeNames.size(); i++) { for (int i = 0; i < typeNames.size(); i++) {
final String name = typeNames.get(i); final String name = typeNames.get(i);
...@@ -173,9 +173,9 @@ public class TypesResource { ...@@ -173,9 +173,9 @@ public class TypesResource {
LOG.debug("Updating type with definition {} ", typeDefinition); LOG.debug("Updating type with definition {} ", typeDefinition);
} }
AtlasTypesDef updateTypesDef = RestUtils.toAtlasTypesDef(typeDefinition, typeRegistry); AtlasTypesDef updateTypesDef = TypeConverterUtil.toAtlasTypesDef(typeDefinition, typeRegistry);
AtlasTypesDef updatedTypesDef = typesRest.updateAtlasTypeDefs(updateTypesDef); AtlasTypesDef updatedTypesDef = typesRest.updateAtlasTypeDefs(updateTypesDef);
List<String> typeNames = RestUtils.getTypeNames(updatedTypesDef); List<String> typeNames = TypeConverterUtil.getTypeNames(updatedTypesDef);
for (int i = 0; i < typeNames.size(); i++) { for (int i = 0; i < typeNames.size(); i++) {
final String name = typeNames.get(i); final String name = typeNames.get(i);
...@@ -231,7 +231,7 @@ public class TypesResource { ...@@ -231,7 +231,7 @@ public class TypesResource {
JSONObject response = new JSONObject(); JSONObject response = new JSONObject();
try { try {
TypesDef typesDef = RestUtils.toTypesDef(typeRegistry.getType(typeName), typeRegistry);; TypesDef typesDef = TypeConverterUtil.toTypesDef(typeRegistry.getType(typeName), typeRegistry);;
String typeDefinition = TypesSerialization.toJson(typesDef); String typeDefinition = TypesSerialization.toJson(typesDef);
response.put(AtlasClient.TYPENAME, typeName); response.put(AtlasClient.TYPENAME, typeName);
...@@ -290,7 +290,7 @@ public class TypesResource { ...@@ -290,7 +290,7 @@ public class TypesResource {
TypesREST typesRest = resourceContext.getResource(TypesREST.class); TypesREST typesRest = resourceContext.getResource(TypesREST.class);
JSONObject response = new JSONObject(); JSONObject response = new JSONObject();
try { try {
List<String> result = RestUtils.getTypeNames(typesRest.getTypeDefHeaders(request)); List<String> result = TypeConverterUtil.getTypeNames(typesRest.getTypeDefHeaders(request));
response.put(AtlasClient.RESULTS, new JSONArray(result)); response.put(AtlasClient.RESULTS, new JSONArray(result));
response.put(AtlasClient.COUNT, result.size()); response.put(AtlasClient.COUNT, result.size());
......
...@@ -28,12 +28,12 @@ import java.util.List; ...@@ -28,12 +28,12 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.atlas.exception.AtlasBaseException; import org.apache.atlas.exception.AtlasBaseException;
import org.apache.atlas.model.instance.AtlasEntity;
import org.apache.atlas.model.typedef.AtlasEntityDef; import org.apache.atlas.model.typedef.AtlasEntityDef;
import org.apache.atlas.model.typedef.AtlasStructDef; import org.apache.atlas.model.typedef.AtlasStructDef;
import org.apache.atlas.model.typedef.AtlasStructDef.AtlasAttributeDef; import org.apache.atlas.model.typedef.AtlasStructDef.AtlasAttributeDef;
import org.apache.atlas.model.typedef.AtlasTypesDef; import org.apache.atlas.model.typedef.AtlasTypesDef;
import org.apache.atlas.repository.Constants; import org.apache.atlas.repository.Constants;
import org.apache.atlas.repository.converters.TypeConverterUtil;
import org.apache.atlas.repository.graphdb.AtlasVertex; import org.apache.atlas.repository.graphdb.AtlasVertex;
import org.apache.atlas.repository.store.graph.v1.AtlasGraphUtilsV1; import org.apache.atlas.repository.store.graph.v1.AtlasGraphUtilsV1;
import org.apache.atlas.repository.store.graph.v1.AtlasStructDefStoreV1; import org.apache.atlas.repository.store.graph.v1.AtlasStructDefStoreV1;
...@@ -178,7 +178,7 @@ public class RestUtilsTest { ...@@ -178,7 +178,7 @@ public class RestUtilsTest {
for (int i = 0; i < toConvert.size(); i++) { for (int i = 0; i < toConvert.size(); i++) {
AtlasEntityDef entityDef = toConvert.get(i); AtlasEntityDef entityDef = toConvert.get(i);
AtlasEntityType entity = reg.getEntityTypeByName(entityDef.getName()); AtlasEntityType entity = reg.getEntityTypeByName(entityDef.getName());
HierarchicalTypeDefinition<ClassType> converted = RestUtils.toTypesDef(entity, reg) HierarchicalTypeDefinition<ClassType> converted = TypeConverterUtil.toTypesDef(entity, reg)
.classTypesAsJavaList().get(0); .classTypesAsJavaList().get(0);
result.add(converted); result.add(converted);
} }
...@@ -205,7 +205,7 @@ public class RestUtilsTest { ...@@ -205,7 +205,7 @@ public class RestUtilsTest {
String json = TypesSerialization.toJson(toConvert); String json = TypesSerialization.toJson(toConvert);
AtlasTypeRegistry emptyRegistry = new AtlasTypeRegistry(); AtlasTypeRegistry emptyRegistry = new AtlasTypeRegistry();
AtlasTypesDef converted = RestUtils.toAtlasTypesDef(json, emptyRegistry); AtlasTypesDef converted = TypeConverterUtil.toAtlasTypesDef(json, emptyRegistry);
List<AtlasEntityDef> convertedEntityDefs = converted.getEntityDefs(); List<AtlasEntityDef> convertedEntityDefs = converted.getEntityDefs();
return convertedEntityDefs; return convertedEntityDefs;
} }
......
...@@ -48,7 +48,9 @@ import org.apache.atlas.catalog.ResourceProvider; ...@@ -48,7 +48,9 @@ import org.apache.atlas.catalog.ResourceProvider;
import org.apache.atlas.catalog.Result; import org.apache.atlas.catalog.Result;
import org.apache.atlas.catalog.TaxonomyResourceProvider; import org.apache.atlas.catalog.TaxonomyResourceProvider;
import org.apache.atlas.catalog.TermPath; import org.apache.atlas.catalog.TermPath;
import org.apache.atlas.exception.AtlasBaseException;
import org.apache.atlas.services.MetadataService; import org.apache.atlas.services.MetadataService;
import org.apache.atlas.store.AtlasTypeDefStore;
import org.easymock.Capture; import org.easymock.Capture;
import org.testng.annotations.Test; import org.testng.annotations.Test;
...@@ -60,6 +62,7 @@ public class TaxonomyServiceTest { ...@@ -60,6 +62,7 @@ public class TaxonomyServiceTest {
public void testGetTaxonomy() throws Exception { public void testGetTaxonomy() throws Exception {
String taxonomyName = "testTaxonomy"; String taxonomyName = "testTaxonomy";
MetadataService metadataService = createStrictMock(MetadataService.class); MetadataService metadataService = createStrictMock(MetadataService.class);
AtlasTypeDefStore typeDefStore = createStrictMock(AtlasTypeDefStore.class);
ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class);
ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class);
UriInfo uriInfo = createNiceMock(UriInfo.class); UriInfo uriInfo = createNiceMock(UriInfo.class);
...@@ -78,7 +81,7 @@ public class TaxonomyServiceTest { ...@@ -78,7 +81,7 @@ public class TaxonomyServiceTest {
replay(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider, serializer); replay(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider, serializer);
TestTaxonomyService service = new TestTaxonomyService( TestTaxonomyService service = new TestTaxonomyService(
metadataService, taxonomyResourceProvider, termResourceProvider, serializer); metadataService, typeDefStore, taxonomyResourceProvider, termResourceProvider, serializer);
Response response = service.getTaxonomy(null, uriInfo, taxonomyName); Response response = service.getTaxonomy(null, uriInfo, taxonomyName);
Request request = requestCapture.getValue(); Request request = requestCapture.getValue();
...@@ -89,12 +92,13 @@ public class TaxonomyServiceTest { ...@@ -89,12 +92,13 @@ public class TaxonomyServiceTest {
assertEquals(response.getStatus(), 200); assertEquals(response.getStatus(), 200);
assertEquals(response.getEntity(), "Taxonomy Get Response"); assertEquals(response.getEntity(), "Taxonomy Get Response");
verify(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider, serializer); verify(uriInfo, taxonomyResourceProvider, termResourceProvider, serializer);
} }
@Test @Test
public void testGetTaxonomies() throws Exception { public void testGetTaxonomies() throws Exception {
MetadataService metadataService = createStrictMock(MetadataService.class); MetadataService metadataService = createStrictMock(MetadataService.class);
AtlasTypeDefStore typeDefStore = createStrictMock(AtlasTypeDefStore.class);
ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class);
ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class);
UriInfo uriInfo = createNiceMock(UriInfo.class); UriInfo uriInfo = createNiceMock(UriInfo.class);
...@@ -117,7 +121,7 @@ public class TaxonomyServiceTest { ...@@ -117,7 +121,7 @@ public class TaxonomyServiceTest {
// instantiate service and invoke method being tested // instantiate service and invoke method being tested
TestTaxonomyService service = new TestTaxonomyService( TestTaxonomyService service = new TestTaxonomyService(
metadataService, taxonomyResourceProvider, termResourceProvider, serializer); metadataService, typeDefStore, taxonomyResourceProvider, termResourceProvider, serializer);
Response response = service.getTaxonomies(null, uriInfo); Response response = service.getTaxonomies(null, uriInfo);
Request request = requestCapture.getValue(); Request request = requestCapture.getValue();
...@@ -127,12 +131,13 @@ public class TaxonomyServiceTest { ...@@ -127,12 +131,13 @@ public class TaxonomyServiceTest {
assertEquals(response.getStatus(), 200); assertEquals(response.getStatus(), 200);
assertEquals(response.getEntity(), "Taxonomy Get Response"); assertEquals(response.getEntity(), "Taxonomy Get Response");
verify(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider, serializer); verify(uriInfo, taxonomyResourceProvider, termResourceProvider, serializer);
} }
@Test @Test
public void testCreateTaxonomy() throws Exception { public void testCreateTaxonomy() throws Exception {
MetadataService metadataService = createStrictMock(MetadataService.class); MetadataService metadataService = createStrictMock(MetadataService.class);
AtlasTypeDefStore typeDefStore = createStrictMock(AtlasTypeDefStore.class);
ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class);
ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class);
UriInfo uriInfo = createNiceMock(UriInfo.class); UriInfo uriInfo = createNiceMock(UriInfo.class);
...@@ -148,7 +153,7 @@ public class TaxonomyServiceTest { ...@@ -148,7 +153,7 @@ public class TaxonomyServiceTest {
// instantiate service and invoke method being tested // instantiate service and invoke method being tested
TestTaxonomyService service = new TestTaxonomyService( TestTaxonomyService service = new TestTaxonomyService(
metadataService, taxonomyResourceProvider, termResourceProvider, null); metadataService, typeDefStore, taxonomyResourceProvider, termResourceProvider, null);
Response response = service.createTaxonomy(body, null, uriInfo, "testTaxonomy"); Response response = service.createTaxonomy(body, null, uriInfo, "testTaxonomy");
Request request = requestCapture.getValue(); Request request = requestCapture.getValue();
...@@ -162,12 +167,13 @@ public class TaxonomyServiceTest { ...@@ -162,12 +167,13 @@ public class TaxonomyServiceTest {
assertEquals(createResults.href, "http://localhost:21000/api/atlas/v1/taxonomies/testTaxonomy"); assertEquals(createResults.href, "http://localhost:21000/api/atlas/v1/taxonomies/testTaxonomy");
assertEquals(createResults.status, 201); assertEquals(createResults.status, 201);
verify(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider); verify(uriInfo, taxonomyResourceProvider, termResourceProvider);
} }
@Test @Test
public void testDeleteTaxonomy() throws Exception { public void testDeleteTaxonomy() throws Exception {
MetadataService metadataService = createStrictMock(MetadataService.class); MetadataService metadataService = createStrictMock(MetadataService.class);
AtlasTypeDefStore typeDefStore = createStrictMock(AtlasTypeDefStore.class);
ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class);
ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class);
UriInfo uriInfo = createNiceMock(UriInfo.class); UriInfo uriInfo = createNiceMock(UriInfo.class);
...@@ -182,7 +188,7 @@ public class TaxonomyServiceTest { ...@@ -182,7 +188,7 @@ public class TaxonomyServiceTest {
// instantiate service and invoke method being tested // instantiate service and invoke method being tested
TestTaxonomyService service = new TestTaxonomyService( TestTaxonomyService service = new TestTaxonomyService(
metadataService, taxonomyResourceProvider, termResourceProvider, null); metadataService, typeDefStore, taxonomyResourceProvider, termResourceProvider, null);
Response response = service.deleteTaxonomy(null, uriInfo, "testTaxonomy"); Response response = service.deleteTaxonomy(null, uriInfo, "testTaxonomy");
Request request = requestCapture.getValue(); Request request = requestCapture.getValue();
...@@ -195,7 +201,7 @@ public class TaxonomyServiceTest { ...@@ -195,7 +201,7 @@ public class TaxonomyServiceTest {
assertEquals(createResults.href, "http://localhost:21000/api/atlas/v1/taxonomies/testTaxonomy"); assertEquals(createResults.href, "http://localhost:21000/api/atlas/v1/taxonomies/testTaxonomy");
assertEquals(createResults.status, 200); assertEquals(createResults.status, 200);
verify(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider); verify(uriInfo, taxonomyResourceProvider, termResourceProvider);
} }
@Test @Test
...@@ -203,6 +209,7 @@ public class TaxonomyServiceTest { ...@@ -203,6 +209,7 @@ public class TaxonomyServiceTest {
String taxonomyName = "testTaxonomy"; String taxonomyName = "testTaxonomy";
String termName = "testTaxonomy.termName"; String termName = "testTaxonomy.termName";
MetadataService metadataService = createStrictMock(MetadataService.class); MetadataService metadataService = createStrictMock(MetadataService.class);
AtlasTypeDefStore typeDefStore = createStrictMock(AtlasTypeDefStore.class);
ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class);
ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class);
UriInfo uriInfo = createNiceMock(UriInfo.class); UriInfo uriInfo = createNiceMock(UriInfo.class);
...@@ -221,7 +228,7 @@ public class TaxonomyServiceTest { ...@@ -221,7 +228,7 @@ public class TaxonomyServiceTest {
replay(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider, serializer); replay(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider, serializer);
TestTaxonomyService service = new TestTaxonomyService( TestTaxonomyService service = new TestTaxonomyService(
metadataService, taxonomyResourceProvider, termResourceProvider, serializer); metadataService, typeDefStore, taxonomyResourceProvider, termResourceProvider, serializer);
Response response = service.getTaxonomyTerm(null, uriInfo, taxonomyName, termName); Response response = service.getTaxonomyTerm(null, uriInfo, taxonomyName, termName);
Request request = requestCapture.getValue(); Request request = requestCapture.getValue();
...@@ -233,12 +240,13 @@ public class TaxonomyServiceTest { ...@@ -233,12 +240,13 @@ public class TaxonomyServiceTest {
assertEquals(response.getStatus(), 200); assertEquals(response.getStatus(), 200);
assertEquals(response.getEntity(), "Taxonomy Term Get Response"); assertEquals(response.getEntity(), "Taxonomy Term Get Response");
verify(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider, serializer); verify(uriInfo, taxonomyResourceProvider, termResourceProvider, serializer);
} }
@Test @Test
public void testGetTaxonomyTerms() throws Exception { public void testGetTaxonomyTerms() throws Exception {
MetadataService metadataService = createStrictMock(MetadataService.class); MetadataService metadataService = createStrictMock(MetadataService.class);
AtlasTypeDefStore typeDefStore = createStrictMock(AtlasTypeDefStore.class);
ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class);
ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class);
UriInfo uriInfo = createNiceMock(UriInfo.class); UriInfo uriInfo = createNiceMock(UriInfo.class);
...@@ -261,7 +269,7 @@ public class TaxonomyServiceTest { ...@@ -261,7 +269,7 @@ public class TaxonomyServiceTest {
// instantiate service and invoke method being tested // instantiate service and invoke method being tested
TestTaxonomyService service = new TestTaxonomyService( TestTaxonomyService service = new TestTaxonomyService(
metadataService, taxonomyResourceProvider, termResourceProvider, serializer); metadataService, typeDefStore, taxonomyResourceProvider, termResourceProvider, serializer);
Response response = service.getTaxonomyTerms(null, uriInfo, "testTaxonomy"); Response response = service.getTaxonomyTerms(null, uriInfo, "testTaxonomy");
Request request = requestCapture.getValue(); Request request = requestCapture.getValue();
...@@ -273,12 +281,13 @@ public class TaxonomyServiceTest { ...@@ -273,12 +281,13 @@ public class TaxonomyServiceTest {
assertEquals(response.getStatus(), 200); assertEquals(response.getStatus(), 200);
assertEquals(response.getEntity(), "Taxonomy Term Get Response"); assertEquals(response.getEntity(), "Taxonomy Term Get Response");
verify(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider, serializer); verify(uriInfo, taxonomyResourceProvider, termResourceProvider, serializer);
} }
@Test @Test
public void testGetSubTerms_instance() throws Exception { public void testGetSubTerms_instance() throws Exception {
MetadataService metadataService = createStrictMock(MetadataService.class); MetadataService metadataService = createStrictMock(MetadataService.class);
AtlasTypeDefStore typeDefStore = createStrictMock(AtlasTypeDefStore.class);
ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class);
ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class);
UriInfo uriInfo = createNiceMock(UriInfo.class); UriInfo uriInfo = createNiceMock(UriInfo.class);
...@@ -308,7 +317,7 @@ public class TaxonomyServiceTest { ...@@ -308,7 +317,7 @@ public class TaxonomyServiceTest {
// instantiate service and invoke method being tested // instantiate service and invoke method being tested
TestTaxonomyService service = new TestTaxonomyService( TestTaxonomyService service = new TestTaxonomyService(
metadataService, taxonomyResourceProvider, termResourceProvider, serializer); metadataService, typeDefStore, taxonomyResourceProvider, termResourceProvider, serializer);
Response response = service.getSubTerms(null, uriInfo, "testTaxonomy", "testTerm", "/terms/testTerm2"); Response response = service.getSubTerms(null, uriInfo, "testTaxonomy", "testTerm", "/terms/testTerm2");
Request request = requestCapture.getValue(); Request request = requestCapture.getValue();
...@@ -320,13 +329,14 @@ public class TaxonomyServiceTest { ...@@ -320,13 +329,14 @@ public class TaxonomyServiceTest {
assertEquals(response.getStatus(), 200); assertEquals(response.getStatus(), 200);
assertEquals(response.getEntity(), "Taxonomy Term Get Response"); assertEquals(response.getEntity(), "Taxonomy Term Get Response");
verify(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider, serializer, verify(uriInfo, taxonomyResourceProvider, termResourceProvider, serializer,
segment1, segment2, segment3); segment1, segment2, segment3);
} }
@Test @Test
public void testGetSubTerms_collection() throws Exception { public void testGetSubTerms_collection() throws Exception {
MetadataService metadataService = createStrictMock(MetadataService.class); MetadataService metadataService = createStrictMock(MetadataService.class);
AtlasTypeDefStore typeDefStore = createStrictMock(AtlasTypeDefStore.class);
ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class);
ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class);
UriInfo uriInfo = createNiceMock(UriInfo.class); UriInfo uriInfo = createNiceMock(UriInfo.class);
...@@ -358,7 +368,7 @@ public class TaxonomyServiceTest { ...@@ -358,7 +368,7 @@ public class TaxonomyServiceTest {
// instantiate service and invoke method being tested // instantiate service and invoke method being tested
TestTaxonomyService service = new TestTaxonomyService( TestTaxonomyService service = new TestTaxonomyService(
metadataService, taxonomyResourceProvider, termResourceProvider, serializer); metadataService, typeDefStore, taxonomyResourceProvider, termResourceProvider, serializer);
Response response = service.getSubTerms(null, uriInfo, "testTaxonomy", "testTerm", "/terms/testTerm2/terms"); Response response = service.getSubTerms(null, uriInfo, "testTaxonomy", "testTerm", "/terms/testTerm2/terms");
Request request = requestCapture.getValue(); Request request = requestCapture.getValue();
...@@ -370,7 +380,7 @@ public class TaxonomyServiceTest { ...@@ -370,7 +380,7 @@ public class TaxonomyServiceTest {
assertEquals(response.getStatus(), 200); assertEquals(response.getStatus(), 200);
assertEquals(response.getEntity(), "Taxonomy Term Get Response"); assertEquals(response.getEntity(), "Taxonomy Term Get Response");
verify(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider, serializer, verify(uriInfo, taxonomyResourceProvider, termResourceProvider, serializer,
segment1, segment2, segment3); segment1, segment2, segment3);
} }
...@@ -379,6 +389,7 @@ public class TaxonomyServiceTest { ...@@ -379,6 +389,7 @@ public class TaxonomyServiceTest {
String taxonomyName = "testTaxonomy"; String taxonomyName = "testTaxonomy";
String termName = "testTerm"; String termName = "testTerm";
MetadataService metadataService = createStrictMock(MetadataService.class); MetadataService metadataService = createStrictMock(MetadataService.class);
AtlasTypeDefStore typeDefStore = createStrictMock(AtlasTypeDefStore.class);
ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class);
ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class);
UriInfo uriInfo = createNiceMock(UriInfo.class); UriInfo uriInfo = createNiceMock(UriInfo.class);
...@@ -394,7 +405,7 @@ public class TaxonomyServiceTest { ...@@ -394,7 +405,7 @@ public class TaxonomyServiceTest {
// instantiate service and invoke method being tested // instantiate service and invoke method being tested
TestTaxonomyService service = new TestTaxonomyService( TestTaxonomyService service = new TestTaxonomyService(
metadataService, taxonomyResourceProvider, termResourceProvider, null); metadataService, typeDefStore, taxonomyResourceProvider, termResourceProvider, null);
Response response = service.createTerm(body, null, uriInfo, taxonomyName, termName); Response response = service.createTerm(body, null, uriInfo, taxonomyName, termName);
Request request = requestCapture.getValue(); Request request = requestCapture.getValue();
...@@ -409,7 +420,7 @@ public class TaxonomyServiceTest { ...@@ -409,7 +420,7 @@ public class TaxonomyServiceTest {
assertEquals(createResults.href, "http://localhost:21000/api/atlas/v1/taxonomies/testTaxonomy/terms/testTerm"); assertEquals(createResults.href, "http://localhost:21000/api/atlas/v1/taxonomies/testTaxonomy/terms/testTerm");
assertEquals(createResults.status, 201); assertEquals(createResults.status, 201);
verify(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider); verify(uriInfo, taxonomyResourceProvider, termResourceProvider);
} }
@Test @Test
...@@ -417,6 +428,7 @@ public class TaxonomyServiceTest { ...@@ -417,6 +428,7 @@ public class TaxonomyServiceTest {
String taxonomyName = "testTaxonomy"; String taxonomyName = "testTaxonomy";
String termName = "testTerm"; String termName = "testTerm";
MetadataService metadataService = createStrictMock(MetadataService.class); MetadataService metadataService = createStrictMock(MetadataService.class);
AtlasTypeDefStore typeDefStore = createStrictMock(AtlasTypeDefStore.class);
ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class);
ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class);
UriInfo uriInfo = createNiceMock(UriInfo.class); UriInfo uriInfo = createNiceMock(UriInfo.class);
...@@ -432,7 +444,7 @@ public class TaxonomyServiceTest { ...@@ -432,7 +444,7 @@ public class TaxonomyServiceTest {
// instantiate service and invoke method being tested // instantiate service and invoke method being tested
TestTaxonomyService service = new TestTaxonomyService( TestTaxonomyService service = new TestTaxonomyService(
metadataService, taxonomyResourceProvider, termResourceProvider, null); metadataService, typeDefStore, taxonomyResourceProvider, termResourceProvider, null);
Response response = service.createSubTerm(body, null, uriInfo, taxonomyName, termName, "/terms/testTerm2"); Response response = service.createSubTerm(body, null, uriInfo, taxonomyName, termName, "/terms/testTerm2");
Request request = requestCapture.getValue(); Request request = requestCapture.getValue();
...@@ -447,12 +459,13 @@ public class TaxonomyServiceTest { ...@@ -447,12 +459,13 @@ public class TaxonomyServiceTest {
assertEquals(createResults.href, "http://localhost:21000/api/atlas/v1/taxonomies/testTaxonomy/terms/testTerm/terms/testTerm2"); assertEquals(createResults.href, "http://localhost:21000/api/atlas/v1/taxonomies/testTaxonomy/terms/testTerm/terms/testTerm2");
assertEquals(createResults.status, 201); assertEquals(createResults.status, 201);
verify(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider); verify(uriInfo, taxonomyResourceProvider, termResourceProvider);
} }
@Test @Test
public void testDeleteTerm() throws Exception { public void testDeleteTerm() throws Exception {
MetadataService metadataService = createStrictMock(MetadataService.class); MetadataService metadataService = createStrictMock(MetadataService.class);
AtlasTypeDefStore typeDefStore = createStrictMock(AtlasTypeDefStore.class);
ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class);
ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class);
UriInfo uriInfo = createNiceMock(UriInfo.class); UriInfo uriInfo = createNiceMock(UriInfo.class);
...@@ -467,7 +480,7 @@ public class TaxonomyServiceTest { ...@@ -467,7 +480,7 @@ public class TaxonomyServiceTest {
// instantiate service and invoke method being tested // instantiate service and invoke method being tested
TestTaxonomyService service = new TestTaxonomyService( TestTaxonomyService service = new TestTaxonomyService(
metadataService, taxonomyResourceProvider, termResourceProvider, null); metadataService, typeDefStore, taxonomyResourceProvider, termResourceProvider, null);
Response response = service.deleteTerm(null, uriInfo, "testTaxonomy", "testTerm"); Response response = service.deleteTerm(null, uriInfo, "testTaxonomy", "testTerm");
Request request = requestCapture.getValue(); Request request = requestCapture.getValue();
...@@ -481,12 +494,13 @@ public class TaxonomyServiceTest { ...@@ -481,12 +494,13 @@ public class TaxonomyServiceTest {
assertEquals(createResults.href, "http://localhost:21000/api/atlas/v1/taxonomies/testTaxonomy/terms/testTerm"); assertEquals(createResults.href, "http://localhost:21000/api/atlas/v1/taxonomies/testTaxonomy/terms/testTerm");
assertEquals(createResults.status, 200); assertEquals(createResults.status, 200);
verify(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider); verify(uriInfo, taxonomyResourceProvider, termResourceProvider);
} }
@Test @Test
public void testDeleteSubTerm() throws Exception { public void testDeleteSubTerm() throws Exception {
MetadataService metadataService = createStrictMock(MetadataService.class); MetadataService metadataService = createStrictMock(MetadataService.class);
AtlasTypeDefStore typeDefStore = createStrictMock(AtlasTypeDefStore.class);
ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class);
ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class); ResourceProvider termResourceProvider = createStrictMock(ResourceProvider.class);
UriInfo uriInfo = createNiceMock(UriInfo.class); UriInfo uriInfo = createNiceMock(UriInfo.class);
...@@ -501,7 +515,7 @@ public class TaxonomyServiceTest { ...@@ -501,7 +515,7 @@ public class TaxonomyServiceTest {
// instantiate service and invoke method being tested // instantiate service and invoke method being tested
TestTaxonomyService service = new TestTaxonomyService( TestTaxonomyService service = new TestTaxonomyService(
metadataService, taxonomyResourceProvider, termResourceProvider, null); metadataService, typeDefStore, taxonomyResourceProvider, termResourceProvider, null);
Response response = service.deleteSubTerm(null, uriInfo, "testTaxonomy", "testTerm", "terms/testTerm2"); Response response = service.deleteSubTerm(null, uriInfo, "testTaxonomy", "testTerm", "terms/testTerm2");
Request request = requestCapture.getValue(); Request request = requestCapture.getValue();
...@@ -515,7 +529,7 @@ public class TaxonomyServiceTest { ...@@ -515,7 +529,7 @@ public class TaxonomyServiceTest {
assertEquals(createResults.href, "http://localhost:21000/api/atlas/v1/taxonomies/testTaxonomy/terms/testTerm/terms/testTerm2"); assertEquals(createResults.href, "http://localhost:21000/api/atlas/v1/taxonomies/testTaxonomy/terms/testTerm/terms/testTerm2");
assertEquals(createResults.status, 200); assertEquals(createResults.status, 200);
verify(uriInfo, metadataService, taxonomyResourceProvider, termResourceProvider); verify(uriInfo, taxonomyResourceProvider, termResourceProvider);
} }
private static class TestTaxonomyService extends TaxonomyService { private static class TestTaxonomyService extends TaxonomyService {
...@@ -525,14 +539,15 @@ public class TaxonomyServiceTest { ...@@ -525,14 +539,15 @@ public class TaxonomyServiceTest {
private boolean transactionInitialized = false; private boolean transactionInitialized = false;
public TestTaxonomyService(MetadataService metadataService, public TestTaxonomyService(MetadataService metadataService,
AtlasTypeDefStore typeDefStore,
ResourceProvider taxonomyProvider, ResourceProvider taxonomyProvider,
ResourceProvider termResourceProvider, ResourceProvider termResourceProvider,
JsonSerializer serializer) throws AtlasException { JsonSerializer serializer) throws AtlasBaseException {
testTaxonomyResourceProvider = taxonomyProvider; testTaxonomyResourceProvider = taxonomyProvider;
testTermResourceProvider = termResourceProvider; testTermResourceProvider = termResourceProvider;
testSerializer = serializer; testSerializer = serializer;
setMetadataService(metadataService); setMetadataService(metadataService, typeDefStore);
} }
@Override @Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment