http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/test/java/org/apache/atlas/catalog/TermResourceProviderTest.java ---------------------------------------------------------------------- diff --git a/catalog/src/test/java/org/apache/atlas/catalog/TermResourceProviderTest.java b/catalog/src/test/java/org/apache/atlas/catalog/TermResourceProviderTest.java deleted file mode 100644 index 7d61579..0000000 --- a/catalog/src/test/java/org/apache/atlas/catalog/TermResourceProviderTest.java +++ /dev/null @@ -1,558 +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.catalog; - -import org.apache.atlas.catalog.definition.ResourceDefinition; -import org.apache.atlas.catalog.exception.InvalidPayloadException; -import org.apache.atlas.catalog.exception.ResourceAlreadyExistsException; -import org.apache.atlas.catalog.exception.ResourceNotFoundException; -import org.apache.atlas.catalog.query.AtlasQuery; -import org.apache.atlas.catalog.query.QueryFactory; -import org.easymock.Capture; -import org.easymock.EasyMock; -import org.testng.annotations.Test; - -import java.util.*; - -import static org.easymock.EasyMock.*; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; - -/** - * Unit tests for TermResourceProvider. - */ -public class TermResourceProviderTest { - @Test - public void testGetResourceById() throws Exception { - AtlasTypeSystem typeSystem = createStrictMock(AtlasTypeSystem.class); - QueryFactory queryFactory = createStrictMock(QueryFactory.class); - AtlasQuery query = createStrictMock(AtlasQuery.class); - Capture<Request> requestCapture = newCapture(); - - TermPath termPath = new TermPath("testTaxonomy", "termName"); - - Collection<Map<String, Object>> queryResult = new ArrayList<>(); - Map<String, Object> queryResultRow = new HashMap<>(); - queryResult.add(queryResultRow); - queryResultRow.put("name", "testTaxonomy.termName"); - queryResultRow.put("description", "test term description"); - queryResultRow.put("creation_time", "04/20/2016"); - queryResultRow.put("acceptable_use", "anything"); - queryResultRow.put("available_as_tag", true); - Map<String, Object> hierarchyMap = new HashMap<>(); - queryResultRow.put("hierarchy", hierarchyMap); - hierarchyMap.put("path", "/"); - hierarchyMap.put("short_name", "termName"); - hierarchyMap.put("taxonomy", "testTaxonomy"); - - // mock expectations - expect(queryFactory.createTermQuery(capture(requestCapture))).andReturn(query); - expect(query.execute()).andReturn(queryResult); - replay(typeSystem, queryFactory, query); - - TermResourceProvider provider = new TermResourceProvider(typeSystem); - provider.setQueryFactory(queryFactory); - - Map<String, Object> requestProperties = new HashMap<>(); - requestProperties.put("termPath", termPath); - Request userRequest = new InstanceRequest(requestProperties); - - Result result = provider.getResourceById(userRequest); - - assertEquals(result.getPropertyMaps().size(), 1); - assertEquals(result.getPropertyMaps().iterator().next(), queryResultRow); - - Request request = requestCapture.getValue(); - assertNull(request.getQueryString()); - assertEquals(request.getAdditionalSelectProperties().size(), 0); - assertEquals(request.getQueryProperties().size(), 2); - assertEquals(request.getQueryProperties().get("termPath"), termPath); - assertEquals(request.getQueryProperties().get("name"), termPath.getFullyQualifiedName()); - - verify(typeSystem, queryFactory, query); - } - - @Test(expectedExceptions = ResourceNotFoundException.class) - public void testGetResourceById_404() throws Exception { - AtlasTypeSystem typeSystem = createStrictMock(AtlasTypeSystem.class); - QueryFactory queryFactory = createStrictMock(QueryFactory.class); - AtlasQuery query = createStrictMock(AtlasQuery.class); - Capture<Request> requestCapture = newCapture(); - - // empty response should result in a ResourceNotFoundException - Collection<Map<String, Object>> emptyResponse = new ArrayList<>(); - - // mock expectations - expect(queryFactory.createTermQuery(capture(requestCapture))).andReturn(query); - expect(query.execute()).andReturn(emptyResponse); - replay(typeSystem, queryFactory, query); - - TermResourceProvider provider = new TermResourceProvider(typeSystem); - provider.setQueryFactory(queryFactory); - - Map<String, Object> requestProperties = new HashMap<>(); - requestProperties.put("termPath", new TermPath("taxonomyName.badTermName")); - Request request = new InstanceRequest(requestProperties); - - provider.getResourceById(request); - } - - @Test - public void testGetResources() throws Exception { - AtlasTypeSystem typeSystem = createStrictMock(AtlasTypeSystem.class); - QueryFactory queryFactory = createStrictMock(QueryFactory.class); - AtlasQuery query = createStrictMock(AtlasQuery.class); - Capture<Request> requestCapture = newCapture(); - - TermPath termPath = new TermPath("testTaxonomy", null); - - Collection<Map<String, Object>> queryResult = new ArrayList<>(); - Map<String, Object> queryResultRow1 = new HashMap<>(); - queryResult.add(queryResultRow1); - queryResultRow1.put("name", "testTaxonomy.termName"); - queryResultRow1.put("description", "test term description"); - queryResultRow1.put("creation_time", "04/20/2016"); - queryResultRow1.put("acceptable_use", "anything"); - queryResultRow1.put("available_as_tag", true); - Map<String, Object> hierarchyMap = new HashMap<>(); - queryResultRow1.put("hierarchy", hierarchyMap); - hierarchyMap.put("path", "/"); - hierarchyMap.put("short_name", "termName"); - hierarchyMap.put("taxonomy", "testTaxonomy"); - - Map<String, Object> queryResultRow2 = new HashMap<>(); - queryResult.add(queryResultRow2); - queryResultRow2.put("name", "testTaxonomy.termName2"); - queryResultRow2.put("description", "test term 2 description"); - queryResultRow2.put("creation_time", "04/21/2016"); - queryResultRow2.put("acceptable_use", "anything"); - queryResultRow2.put("available_as_tag", true); - Map<String, Object> hierarchyMap2 = new HashMap<>(); - queryResultRow2.put("hierarchy", hierarchyMap2); - hierarchyMap2.put("path", "/"); - hierarchyMap2.put("short_name", "termName2"); - hierarchyMap2.put("taxonomy", "testTaxonomy"); - - // mock expectations - expect(queryFactory.createTermQuery(capture(requestCapture))).andReturn(query); - expect(query.execute()).andReturn(queryResult); - replay(typeSystem, queryFactory, query); - - TermResourceProvider provider = new TermResourceProvider(typeSystem); - provider.setQueryFactory(queryFactory); - - Map<String, Object> requestProperties = new HashMap<>(); - requestProperties.put("termPath", termPath); - Request userRequest = new CollectionRequest(requestProperties, "name:taxonomy*"); - // invoke test method - Result result = provider.getResources(userRequest); - - assertEquals(result.getPropertyMaps().size(), 2); - assertTrue(result.getPropertyMaps().contains(queryResultRow1)); - assertTrue(result.getPropertyMaps().contains(queryResultRow2)); - - Request request = requestCapture.getValue(); - assertEquals(request.getQueryString(), "name:taxonomy*"); - assertEquals(request.getAdditionalSelectProperties().size(), 0); - assertEquals(request.getQueryProperties().size(), 1); - - verify(typeSystem, queryFactory, query); - } - - @Test - public void testGetResources_noResults() throws Exception { - AtlasTypeSystem typeSystem = createStrictMock(AtlasTypeSystem.class); - QueryFactory queryFactory = createStrictMock(QueryFactory.class); - AtlasQuery query = createStrictMock(AtlasQuery.class); - Capture<Request> requestCapture = newCapture(); - - TermPath termPath = new TermPath("testTaxonomy", "termName"); - - // empty result shouldn't result in exception for collection query - Collection<Map<String, Object>> queryResult = new ArrayList<>(); - - // mock expectations - expect(queryFactory.createTermQuery(capture(requestCapture))).andReturn(query); - expect(query.execute()).andReturn(queryResult); - replay(typeSystem, queryFactory, query); - - TermResourceProvider provider = new TermResourceProvider(typeSystem); - provider.setQueryFactory(queryFactory); - - Map<String, Object> requestProperties = new HashMap<>(); - requestProperties.put("termPath", termPath); - Request userRequest = new CollectionRequest(requestProperties, "name:taxonomy*"); - // invoke test method - Result result = provider.getResources(userRequest); - - assertEquals(0, result.getPropertyMaps().size()); - - Request request = requestCapture.getValue(); - assertEquals(request.getQueryString(), "name:taxonomy*"); - assertEquals(request.getAdditionalSelectProperties().size(), 0); - assertEquals(request.getQueryProperties().size(), 1); - - verify(typeSystem, queryFactory, query); - } - - @Test(expectedExceptions = InvalidPayloadException.class) - public void testCreateResource_invalidRequest__noName() throws Exception { - AtlasTypeSystem typeSystem = createStrictMock(AtlasTypeSystem.class); - QueryFactory queryFactory = createStrictMock(QueryFactory.class); - AtlasQuery query = createStrictMock(AtlasQuery.class); - - // null term name should result in InvalidPayloadException - TermPath termPath = new TermPath("testTaxonomy", null); - - // mock expectations - replay(typeSystem, queryFactory, query); - - Map<String, Object> requestProperties = new HashMap<>(); - requestProperties.put("termPath", termPath); - Request userRequest = new InstanceRequest(requestProperties); - - TermResourceProvider provider = new TermResourceProvider(typeSystem); - provider.setQueryFactory(queryFactory); - - provider.createResource(userRequest); - } - - @Test - public void testCreateResource() throws Exception { - AtlasTypeSystem typeSystem = createStrictMock(AtlasTypeSystem.class); - QueryFactory queryFactory = createStrictMock(QueryFactory.class); - AtlasQuery query = createStrictMock(AtlasQuery.class); - Capture<ResourceDefinition> resourceDefinitionCapture = newCapture(); - ResourceProvider taxonomyResourceProvider = createStrictMock(TaxonomyResourceProvider.class); - Capture<Request> taxonomyRequestCapture = newCapture(); - - Collection<Map<String, Object>> taxonomyQueryResult = new ArrayList<>(); - Map<String, Object> taxonomyQueryResultRow = new HashMap<>(); - taxonomyQueryResult.add(taxonomyQueryResultRow); - taxonomyQueryResultRow.put("name", "testTaxonomy"); - taxonomyQueryResultRow.put("id", "11-22-33"); - Result taxonomyResult = new Result(taxonomyQueryResult); - - Map<String, Object> expectedRequestProps = new HashMap<>(); - expectedRequestProps.put("name", "testTaxonomy.termName"); - // when not specified, the default value of 'true' should be set - expectedRequestProps.put("available_as_tag", true); - - // mock expectations - expect(taxonomyResourceProvider.getResourceById(capture(taxonomyRequestCapture))).andReturn(taxonomyResult); - typeSystem.createTraitType(capture(resourceDefinitionCapture), eq("testTaxonomy.termName"), EasyMock.<String>isNull()); - typeSystem.createTraitInstance("11-22-33", "testTaxonomy.termName", expectedRequestProps); - replay(typeSystem, queryFactory, query, taxonomyResourceProvider); - - TermResourceProvider provider = new TestTermResourceProvider(typeSystem, taxonomyResourceProvider); - provider.setQueryFactory(queryFactory); - - TermPath termPath = new TermPath("testTaxonomy", "termName"); - Map<String, Object> requestProperties = new HashMap<>(); - requestProperties.put("termPath", termPath); - Request userRequest = new InstanceRequest(requestProperties); - - provider.createResource(userRequest); - - Request taxonomyRequest = taxonomyRequestCapture.getValue(); - Map<String, Object> taxonomyRequestProps = taxonomyRequest.getQueryProperties(); - assertEquals(taxonomyRequestProps.size(), 1); - assertEquals(taxonomyRequestProps.get("name"), "testTaxonomy"); - assertEquals(taxonomyRequest.getAdditionalSelectProperties().size(), 1); - assertEquals(taxonomyRequest.getAdditionalSelectProperties().iterator().next(), "id"); - assertNull(taxonomyRequest.getQueryString()); - - ResourceDefinition resourceDefinition = resourceDefinitionCapture.getValue(); - assertEquals(resourceDefinition.getTypeName(), "Term"); - - verify(typeSystem, queryFactory, query, taxonomyResourceProvider); - } - - @Test(expectedExceptions = ResourceAlreadyExistsException.class) - public void testCreateResource_invalidRequest__alreadyExists() throws Exception { - AtlasTypeSystem typeSystem = createStrictMock(AtlasTypeSystem.class); - QueryFactory queryFactory = createStrictMock(QueryFactory.class); - AtlasQuery query = createStrictMock(AtlasQuery.class); - Capture<ResourceDefinition> resourceDefinitionCapture = newCapture(); - ResourceProvider taxonomyResourceProvider = createStrictMock(TaxonomyResourceProvider.class); - Capture<Request> taxonomyRequestCapture = newCapture(); - - Collection<Map<String, Object>> taxonomyQueryResult = new ArrayList<>(); - Map<String, Object> taxonomyQueryResultRow = new HashMap<>(); - taxonomyQueryResult.add(taxonomyQueryResultRow); - taxonomyQueryResultRow.put("name", "testTaxonomy"); - taxonomyQueryResultRow.put("id", "11-22-33"); - Result taxonomyResult = new Result(taxonomyQueryResult); - - // mock expectations - expect(taxonomyResourceProvider.getResourceById(capture(taxonomyRequestCapture))).andReturn(taxonomyResult); - typeSystem.createTraitType(capture(resourceDefinitionCapture), eq("testTaxonomy.termName"), EasyMock.<String>isNull()); - expectLastCall().andThrow(new ResourceAlreadyExistsException("")); - - replay(typeSystem, queryFactory, query, taxonomyResourceProvider); - - TermResourceProvider provider = new TestTermResourceProvider(typeSystem, taxonomyResourceProvider); - provider.setQueryFactory(queryFactory); - - TermPath termPath = new TermPath("testTaxonomy", "termName"); - Map<String, Object> requestProperties = new HashMap<>(); - requestProperties.put("termPath", termPath); - Request userRequest = new InstanceRequest(requestProperties); - - provider.createResource(userRequest); - } - - @Test(expectedExceptions = UnsupportedOperationException.class) - public void testCreateResources() throws Exception { - AtlasTypeSystem typeSystem = createStrictMock(AtlasTypeSystem.class); - QueryFactory queryFactory = createStrictMock(QueryFactory.class); - - // mock expectations - replay(typeSystem, queryFactory); - - TermPath termPath = new TermPath("testTaxonomy", "termName"); - Map<String, Object> requestProperties = new HashMap<>(); - requestProperties.put("termPath", termPath); - Request userRequest = new InstanceRequest(requestProperties); - - TermResourceProvider provider = new TermResourceProvider(typeSystem); - provider.setQueryFactory(queryFactory); - - provider.createResources(userRequest); - } - - @Test - public void testDeleteResourceById() throws Exception { - ResourceProvider taxonomyResourceProvider = createStrictMock(ResourceProvider.class); - ResourceProvider entityResourceProvider = createStrictMock(ResourceProvider.class); - ResourceProvider entityTagResourceProvider = createStrictMock(ResourceProvider.class); - AtlasTypeSystem typeSystem = createStrictMock(AtlasTypeSystem.class); - QueryFactory queryFactory = createStrictMock(QueryFactory.class); - AtlasQuery query = createStrictMock(AtlasQuery.class); - Capture<Request> taxonomyRequestCapture = newCapture(); - Capture<Request> termRequestCapture = newCapture(); - - // root term being deleted - TermPath termPath = new TermPath("testTaxonomy.termName"); - - // entity requests to get id's of entities tagged with terms - Request entityRequest1 = new CollectionRequest(Collections.<String, Object>emptyMap(), - "tags/name:testTaxonomy.termName.child1"); - Request entityRequest2 = new CollectionRequest(Collections.<String, Object>emptyMap(), - "tags/name:testTaxonomy.termName.child2"); - Request entityRequest3 = new CollectionRequest(Collections.<String, Object>emptyMap(), - "tags/name:testTaxonomy.termName"); - - // entity tag requests to delete entity tags - Map<String, Object> entityTagRequestMap1 = new HashMap<>(); - entityTagRequestMap1.put("id", "111"); - entityTagRequestMap1.put("name", "testTaxonomy.termName.child1"); - Request entityTagRequest1 = new InstanceRequest(entityTagRequestMap1); - Map<String, Object> entityTagRequestMap2 = new HashMap<>(); - entityTagRequestMap2.put("id", "222"); - entityTagRequestMap2.put("name", "testTaxonomy.termName.child1"); - Request entityTagRequest2 = new InstanceRequest(entityTagRequestMap2); - Map<String, Object> entityTagRequestMap3 = new HashMap<>(); - entityTagRequestMap3.put("id", "333"); - entityTagRequestMap3.put("name", "testTaxonomy.termName.child2"); - Request entityTagRequest3 = new InstanceRequest(entityTagRequestMap3); - - Map<String, Object> requestProperties = new HashMap<>(); - requestProperties.put("termPath", termPath); - Request userRequest = new InstanceRequest(requestProperties); - - Collection<Map<String, Object>> queryResult = new ArrayList<>(); - Map<String, Object> queryResultRow = new HashMap<>(); - queryResult.add(queryResultRow); - queryResultRow.put("name", "testTaxonomy.termName"); - queryResultRow.put("id", "111-222-333"); - - Collection<Map<String, Object>> taxonomyResultMaps = new ArrayList<>(); - Map<String, Object> taxonomyResultMap = new HashMap<>(); - taxonomyResultMap.put("name", "testTaxonomy"); - taxonomyResultMap.put("id", "12345"); - taxonomyResultMaps.add(taxonomyResultMap); - Result taxonomyResult = new Result(taxonomyResultMaps); - - Collection<Map<String, Object>> childResult = new ArrayList<>(); - Map<String, Object> childResultRow = new HashMap<>(); - childResult.add(childResultRow); - childResultRow.put("name", "testTaxonomy.termName.child1"); - childResultRow.put("id", "1-1-1"); - Map<String, Object> childResultRow2 = new HashMap<>(); - childResult.add(childResultRow2); - childResultRow2.put("name", "testTaxonomy.termName.child2"); - childResultRow2.put("id", "2-2-2"); - - Collection<Map<String, Object>> entityResults1 = new ArrayList<>(); - Map<String, Object> entityResult1Map1 = new HashMap<>(); - entityResult1Map1.put("name", "entity1"); - entityResult1Map1.put("id", "111"); - entityResults1.add(entityResult1Map1); - Map<String, Object> entityResult1Map2 = new HashMap<>(); - entityResult1Map2.put("name", "entity2"); - entityResult1Map2.put("id", "222"); - entityResults1.add(entityResult1Map2); - Result entityResult1 = new Result(entityResults1); - - Collection<Map<String, Object>> entityResults2 = new ArrayList<>(); - Map<String, Object> entityResult2Map = new HashMap<>(); - entityResult2Map.put("name", "entity3"); - entityResult2Map.put("id", "333"); - entityResults2.add(entityResult2Map); - Result entityResult2 = new Result(entityResults2); - - // mock expectations - // ensure term exists - expect(queryFactory.createTermQuery(userRequest)).andReturn(query); - expect(query.execute()).andReturn(queryResult); - // taxonomy query - expect(taxonomyResourceProvider.getResourceById(capture(taxonomyRequestCapture))).andReturn(taxonomyResult); - // get term children - expect(queryFactory.createTermQuery(capture(termRequestCapture))).andReturn(query); - expect(query.execute()).andReturn(childResult); - // entities with child1 tag - expect(entityResourceProvider.getResources(eq(entityRequest1))).andReturn(entityResult1); -// typeSystem.deleteTag("111", "testTaxonomy.termName.child1"); -// typeSystem.deleteTag("222", "testTaxonomy.termName.child1"); - entityTagResourceProvider.deleteResourceById(entityTagRequest1); - entityTagResourceProvider.deleteResourceById(entityTagRequest2); - // delete child1 from taxonomy - typeSystem.deleteTag("12345", "testTaxonomy.termName.child1"); - // entities with child2 tag - expect(entityResourceProvider.getResources(eq(entityRequest2))).andReturn(entityResult2); - //typeSystem.deleteTag("333", "testTaxonomy.termName.child2"); - entityTagResourceProvider.deleteResourceById(entityTagRequest3); - // delete child2 from taxonomy - typeSystem.deleteTag("12345", "testTaxonomy.termName.child2"); - // root term being deleted which has no associated tags - expect(entityResourceProvider.getResources(eq(entityRequest3))).andReturn( - new Result(Collections.<Map<String, Object>>emptyList())); - // delete root term from taxonomy - typeSystem.deleteTag("12345", "testTaxonomy.termName"); - - replay(taxonomyResourceProvider, entityResourceProvider, entityTagResourceProvider, typeSystem, queryFactory, query); - - TermResourceProvider provider = new TestTermResourceProvider( - typeSystem, taxonomyResourceProvider, entityResourceProvider, entityTagResourceProvider); - provider.setQueryFactory(queryFactory); - - // invoke method being tested - provider.deleteResourceById(userRequest); - - Request taxonomyRequest = taxonomyRequestCapture.getValue(); - assertEquals(taxonomyRequest.getQueryProperties().get("name"), "testTaxonomy"); - assertEquals(taxonomyRequest.getAdditionalSelectProperties().size(), 1); - assertTrue(taxonomyRequest.getAdditionalSelectProperties().contains("id")); - - Request childTermRequest = termRequestCapture.getValue(); - assertEquals(childTermRequest.<TermPath>getProperty("termPath").getFullyQualifiedName(), "testTaxonomy.termName."); - verify(taxonomyResourceProvider, entityResourceProvider, entityTagResourceProvider, typeSystem, queryFactory, query); - } - - @Test - public void testUpdateResourceById() throws Exception { - AtlasTypeSystem typeSystem = createStrictMock(AtlasTypeSystem.class); - QueryFactory queryFactory = createStrictMock(QueryFactory.class); - AtlasQuery query = createStrictMock(AtlasQuery.class); - Capture<Request> termRequestCapture = newCapture(); - Capture<Request> tagRequestCapture = newCapture(); - - TermPath termPath = new TermPath("testTaxonomy", "termName"); - - Map<String, Object> requestProperties = new HashMap<>(); - requestProperties.put("termPath", termPath); - Map<String, Object> requestUpdateProperties = new HashMap<>(); - requestUpdateProperties.put("description", "updatedValue"); - Request userRequest = new InstanceRequest(requestProperties, requestUpdateProperties); - - Collection<Map<String, Object>> queryResult = new ArrayList<>(); - Map<String, Object> queryResultRow = new HashMap<>(); - queryResult.add(queryResultRow); - queryResultRow.put("name", "testTaxonomy.termName"); - - // mock expectations - // term update - expect(queryFactory.createTermQuery(capture(termRequestCapture))).andReturn(query); - expect(query.execute(requestUpdateProperties)).andReturn(queryResult); - // tag updates - expect(queryFactory.createEntityTagQuery(capture(tagRequestCapture))).andReturn(query); - // query response isn't used so just returning null - expect(query.execute(requestUpdateProperties)).andReturn(null); - replay(typeSystem, queryFactory, query); - - TermResourceProvider provider = new TermResourceProvider(typeSystem); - provider.setQueryFactory(queryFactory); - - provider.updateResourceById(userRequest); - - Request request = termRequestCapture.getValue(); - assertNull(request.getQueryString()); - assertTrue(request.getAdditionalSelectProperties().isEmpty()); - assertEquals(request.getQueryProperties().size(), 2); - assertEquals(request.getQueryProperties().get("termPath"), termPath); - assertEquals(request.getQueryProperties().get("name"), termPath.getFullyQualifiedName()); - - Request tagRequest = tagRequestCapture.getValue(); - assertEquals(tagRequest.getQueryString(), "name:testTaxonomy.termName"); - assertEquals(tagRequest.getQueryProperties().size(), 1); - assertEquals(tagRequest.getQueryProperties().get("id"), "*"); - - verify(typeSystem, queryFactory, query); - } - - private static class TestTermResourceProvider extends TermResourceProvider { - - private ResourceProvider testTaxonomyResourceProvider; - private ResourceProvider testEntityResourceProvider; - private ResourceProvider testEntityTagResourceProvider; - - public TestTermResourceProvider(AtlasTypeSystem typeSystem, - ResourceProvider taxonomyResourceProvider) { - super(typeSystem); - testTaxonomyResourceProvider = taxonomyResourceProvider; - } - - public TestTermResourceProvider(AtlasTypeSystem typeSystem, - ResourceProvider taxonomyResourceProvider, - ResourceProvider entityResourceProvider, - ResourceProvider entityTagResourceProvider) { - super(typeSystem); - testTaxonomyResourceProvider = taxonomyResourceProvider; - testEntityResourceProvider = entityResourceProvider; - testEntityTagResourceProvider = entityTagResourceProvider; - } - - @Override - protected synchronized ResourceProvider getTaxonomyResourceProvider() { - return testTaxonomyResourceProvider; - } - - @Override - protected synchronized ResourceProvider getEntityResourceProvider() { - return testEntityResourceProvider; - } - - @Override - protected synchronized ResourceProvider getEntityTagResourceProvider() { - return testEntityTagResourceProvider; - } - } -}
http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/test/java/org/apache/atlas/catalog/VertexWrapperTest.java ---------------------------------------------------------------------- diff --git a/catalog/src/test/java/org/apache/atlas/catalog/VertexWrapperTest.java b/catalog/src/test/java/org/apache/atlas/catalog/VertexWrapperTest.java deleted file mode 100644 index 41d934f..0000000 --- a/catalog/src/test/java/org/apache/atlas/catalog/VertexWrapperTest.java +++ /dev/null @@ -1,332 +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.catalog; - -import com.tinkerpop.blueprints.Vertex; -import org.apache.atlas.catalog.definition.ResourceDefinition; -import org.apache.atlas.repository.Constants; -import org.testng.annotations.Test; - -import java.util.*; - -import static org.easymock.EasyMock.*; -import static org.testng.Assert.*; - -/** - * Unit tests for VertexWrapper. - */ -public class VertexWrapperTest { - @Test - public void testGetVertex() { - Vertex v = createStrictMock(Vertex.class); - ResourceDefinition resourceDefinition = createStrictMock(ResourceDefinition.class); - - // just return null for these because they aren't used in this test - expect(resourceDefinition.getPropertyMapper()).andReturn(null); - expect(resourceDefinition.getPropertyValueFormatters()).andReturn(null); - expect(v.<String>getProperty(Constants.ENTITY_TYPE_PROPERTY_KEY)).andReturn("testType"); - replay(v, resourceDefinition); - - VertexWrapper vWrapper = new VertexWrapper(v, resourceDefinition); - - assertEquals(vWrapper.getVertex(), v); - verify(v, resourceDefinition); - } - - @SuppressWarnings("unchecked") - @Test - public void testGetProperty() { - String testType = "testType"; - String propName = "propName"; - String qualifiedPropName = "Prefix.propName"; - String propValue = "val"; - String formattedValue = "value"; - Vertex v = createStrictMock(Vertex.class); - PropertyMapper propertyMapper = createStrictMock(PropertyMapper.class); - PropertyValueFormatter formatter = createStrictMock(PropertyValueFormatter.class); - - // mock expectations - expect(v.<String>getProperty(Constants.ENTITY_TYPE_PROPERTY_KEY)).andReturn(testType); - expect(propertyMapper.toFullyQualifiedName(propName, testType)).andReturn(qualifiedPropName); - expect(v.getProperty(qualifiedPropName)).andReturn(propValue); - expect(formatter.format(propValue)).andReturn((formattedValue)); - replay(v, propertyMapper, formatter); - - VertexWrapper vWrapper = new VertexWrapper(v, propertyMapper, Collections.singletonMap(propName, formatter)); - assertEquals(vWrapper.getProperty(propName), formattedValue); - - // now remove prop - vWrapper.removeProperty(propName); - assertNull(vWrapper.getProperty(propName)); - - verify(v, propertyMapper, formatter); - } - - @SuppressWarnings("unchecked") - @Test - public void testGetProperty2() { - String testType = "testType"; - String propName = "propName"; - String qualifiedPropName = "Prefix.propName"; - String propValue = "val"; - String formattedValue = "value"; - Vertex v = createStrictMock(Vertex.class); - ResourceDefinition resourceDefinition = createStrictMock(ResourceDefinition.class); - PropertyMapper propertyMapper = createStrictMock(PropertyMapper.class); - PropertyValueFormatter formatter = createStrictMock(PropertyValueFormatter.class); - - // mock expectations - expect(v.<String>getProperty(Constants.ENTITY_TYPE_PROPERTY_KEY)).andReturn(testType); - expect(resourceDefinition.getPropertyMapper()).andReturn(propertyMapper); - expect(resourceDefinition.getPropertyValueFormatters()).andReturn(Collections.singletonMap(propName, formatter)); - expect(propertyMapper.toFullyQualifiedName(propName, testType)).andReturn(qualifiedPropName); - expect(v.getProperty(qualifiedPropName)).andReturn(propValue); - expect(formatter.format(propValue)).andReturn((formattedValue)); - replay(v, resourceDefinition, propertyMapper, formatter); - - VertexWrapper vWrapper = new VertexWrapper(v, resourceDefinition); - assertEquals(vWrapper.getProperty(propName), formattedValue); - - // now remove prop - vWrapper.removeProperty(propName); - assertNull(vWrapper.getProperty(propName)); - - verify(v, resourceDefinition, propertyMapper, formatter); - } - - @Test - public void testGetProperty_removed() { - String testType = "testType"; - String propName = "propName"; - Vertex v = createStrictMock(Vertex.class); - expect(v.<String>getProperty(Constants.ENTITY_TYPE_PROPERTY_KEY)).andReturn(testType); - // vertex shouldn't be asked for the removed property - replay(v); - - VertexWrapper vWrapper = new VertexWrapper(v, null, Collections.<String, PropertyValueFormatter>emptyMap()); - vWrapper.removeProperty(propName); - - assertNull(vWrapper.getProperty(propName)); - verify(v); - } - - @Test - public void testGetPropertyKeys() { - String testType = "testType"; - // vertex returns unordered set - Set<String> propertyKeys = new HashSet<>(); - propertyKeys.add("foobar"); - propertyKeys.add("Prefix.foo"); - propertyKeys.add("Prefix.bar"); - - Vertex v = createStrictMock(Vertex.class); - PropertyMapper propertyMapper = createMock(PropertyMapper.class); - - // mock expectations - expect(v.<String>getProperty(Constants.ENTITY_TYPE_PROPERTY_KEY)).andReturn(testType); - expect(v.getPropertyKeys()).andReturn(propertyKeys); - expect(propertyMapper.toCleanName("Prefix.bar", testType)).andReturn("bar"); - expect(propertyMapper.toCleanName("Prefix.foo", testType)).andReturn("foo"); - expect(propertyMapper.toCleanName("foobar", testType)).andReturn("foobar"); - - replay(v, propertyMapper); - - VertexWrapper vWrapper = new VertexWrapper(v, propertyMapper, - Collections.<String, PropertyValueFormatter>emptyMap()); - - Collection<String> resultKeys = vWrapper.getPropertyKeys(); - Iterator<String> propIterator = resultKeys.iterator(); - assertEquals(resultKeys.size(), 3); - // natural ordering is applied in vertex wrapper - assertEquals(propIterator.next(), "bar"); - assertEquals(propIterator.next(), "foo"); - assertEquals(propIterator.next(), "foobar"); - - verify(v, propertyMapper); - } - - @Test - public void testGetPropertyKeys_removed() { - String testType = "testType"; - Set<String> propertyKeys = new TreeSet<>(); - propertyKeys.add("Prefix.foo"); - propertyKeys.add("Prefix.bar"); - propertyKeys.add("foobar"); - - Vertex v = createStrictMock(Vertex.class); - PropertyMapper propertyMapper = createStrictMock(PropertyMapper.class); - - // mock expectations - expect(v.<String>getProperty(Constants.ENTITY_TYPE_PROPERTY_KEY)).andReturn(testType); - expect(v.getPropertyKeys()).andReturn(propertyKeys); - // natural ordering provided by TreeSet - expect(propertyMapper.toCleanName("Prefix.bar", testType)).andReturn("bar"); - expect(propertyMapper.toCleanName("Prefix.foo", testType)).andReturn("foo"); - expect(propertyMapper.toCleanName("foobar", testType)).andReturn("foobar"); - - replay(v, propertyMapper); - - VertexWrapper vWrapper = new VertexWrapper(v, propertyMapper, - Collections.<String, PropertyValueFormatter>emptyMap()); - - // remove props - vWrapper.removeProperty("foo"); - vWrapper.removeProperty("foobar"); - - Collection<String> resultKeys = vWrapper.getPropertyKeys(); - assertEquals(resultKeys.size(), 1); - assertTrue(resultKeys.contains("bar")); - - verify(v, propertyMapper); - } - - @Test - public void testGetPropertyMap() { - String testType = "testType"; - Set<String> propertyKeys = new HashSet<>(); - propertyKeys.add("Prefix.foo"); - propertyKeys.add("Prefix.bar"); - propertyKeys.add("foobar"); - - Vertex v = createMock(Vertex.class); - PropertyMapper propertyMapper = createMock(PropertyMapper.class); - PropertyValueFormatter formatter = createMock(PropertyValueFormatter.class); - - Map<String, PropertyValueFormatter> valueFormatters = new HashMap<>(); - valueFormatters.put("foo", formatter); - valueFormatters.put("bar", formatter); - - // mock expectations - expect(v.<String>getProperty(Constants.ENTITY_TYPE_PROPERTY_KEY)).andReturn(testType); - expect(v.getPropertyKeys()).andReturn(propertyKeys); - expect(v.getProperty("Prefix.foo")).andReturn("Prefix.foo:Value"); - expect(v.getProperty("Prefix.bar")).andReturn("Prefix.bar:Value"); - expect(v.getProperty("foobar")).andReturn("foobarValue"); - - expect(propertyMapper.toCleanName("Prefix.bar", testType)).andReturn("bar"); - expect(propertyMapper.toCleanName("Prefix.foo", testType)).andReturn("foo"); - expect(propertyMapper.toCleanName("foobar", testType)).andReturn("foobar"); - - expect(formatter.format("Prefix.foo:Value")).andReturn("fooValue"); - expect(formatter.format("Prefix.bar:Value")).andReturn("barValue"); - - replay(v, propertyMapper, formatter); - - VertexWrapper vWrapper = new VertexWrapper(v, propertyMapper, valueFormatters); - Map<String, Object> resultMap = vWrapper.getPropertyMap(); - - assertEquals(resultMap.size(), 3); - Iterator<Map.Entry<String, Object>> iter = resultMap.entrySet().iterator(); - Map.Entry<String, Object> entry1 = iter.next(); - assertEquals(entry1.getKey(), "bar"); - assertEquals(entry1.getValue(), "barValue"); - Map.Entry<String, Object> entry2 = iter.next(); - assertEquals(entry2.getKey(), "foo"); - assertEquals(entry2.getValue(), "fooValue"); - Map.Entry<String, Object> entry3 = iter.next(); - assertEquals(entry3.getKey(), "foobar"); - assertEquals(entry3.getValue(), "foobarValue"); - - verify(v, propertyMapper, formatter); - } - - @Test - public void testGetPropertyMap_removed() { - String testType = "testType"; - Set<String> propertyKeys = new HashSet<>(); - propertyKeys.add("Prefix.foo"); - propertyKeys.add("Prefix.bar"); - propertyKeys.add("foobar"); - - Vertex v = createMock(Vertex.class); - PropertyMapper propertyMapper = createMock(PropertyMapper.class); - PropertyValueFormatter formatter = createMock(PropertyValueFormatter.class); - - Map<String, PropertyValueFormatter> valueFormatters = new HashMap<>(); - valueFormatters.put("foo", formatter); - valueFormatters.put("bar", formatter); - - // mock expectations - expect(v.<String>getProperty(Constants.ENTITY_TYPE_PROPERTY_KEY)).andReturn(testType); - expect(v.getPropertyKeys()).andReturn(propertyKeys); - expect(v.getProperty("Prefix.bar")).andReturn("Prefix.bar:Value"); - expect(v.getProperty("foobar")).andReturn("foobarValue"); - - expect(propertyMapper.toCleanName("Prefix.bar", testType)).andReturn("bar"); - expect(propertyMapper.toCleanName("Prefix.foo", testType)).andReturn("foo"); - expect(propertyMapper.toCleanName("foobar", testType)).andReturn("foobar"); - - expect(formatter.format("Prefix.bar:Value")).andReturn("barValue"); - - replay(v, propertyMapper, formatter); - - VertexWrapper vWrapper = new VertexWrapper(v, propertyMapper, valueFormatters); - //remove "foo" property - vWrapper.removeProperty("foo"); - - Map<String, Object> resultMap = vWrapper.getPropertyMap(); - assertEquals(resultMap.size(), 2); - - Iterator<Map.Entry<String, Object>> iter = resultMap.entrySet().iterator(); - Map.Entry<String, Object> entry1 = iter.next(); - assertEquals(entry1.getKey(), "bar"); - assertEquals(entry1.getValue(), "barValue"); - Map.Entry<String, Object> entry2 = iter.next(); - assertEquals(entry2.getKey(), "foobar"); - assertEquals(entry2.getValue(), "foobarValue"); - - verify(v, propertyMapper, formatter); - } - - @Test - public void testIsPropertyRemoved() { - String testType = "testType"; - Vertex v = createMock(Vertex.class); - expect(v.<String>getProperty(Constants.ENTITY_TYPE_PROPERTY_KEY)).andReturn(testType); - replay(v); - - VertexWrapper vWrapper = new VertexWrapper(v, null, - Collections.<String, PropertyValueFormatter>emptyMap()); - - vWrapper.removeProperty("foo"); - assertTrue(vWrapper.isPropertyRemoved("foo")); - assertFalse(vWrapper.isPropertyRemoved("bar")); - } - - @Test - public void testSetProperty() { - String testType = "testType"; - String cleanPropName = "prop1"; - String qualifiedPropName = "test.prop1"; - String propValue = "newValue"; - Vertex v = createStrictMock(Vertex.class); - PropertyMapper propertyMapper = createStrictMock(PropertyMapper.class); - - expect(v.<String>getProperty(Constants.ENTITY_TYPE_PROPERTY_KEY)).andReturn(testType); - expect(propertyMapper.toFullyQualifiedName(cleanPropName, testType)).andReturn(qualifiedPropName); - v.setProperty(qualifiedPropName, propValue); - replay(v, propertyMapper); - - VertexWrapper vWrapper = new VertexWrapper( - v, propertyMapper, Collections.<String, PropertyValueFormatter>emptyMap()); - vWrapper.setProperty(cleanPropName, propValue); - verify(v, propertyMapper); - - } -} http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/test/java/org/apache/atlas/catalog/definition/EntityResourceDefinitionTest.java ---------------------------------------------------------------------- diff --git a/catalog/src/test/java/org/apache/atlas/catalog/definition/EntityResourceDefinitionTest.java b/catalog/src/test/java/org/apache/atlas/catalog/definition/EntityResourceDefinitionTest.java deleted file mode 100644 index 5e56e84..0000000 --- a/catalog/src/test/java/org/apache/atlas/catalog/definition/EntityResourceDefinitionTest.java +++ /dev/null @@ -1,140 +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.catalog.definition; - -import org.apache.atlas.catalog.CollectionRequest; -import org.apache.atlas.catalog.InstanceRequest; -import org.apache.atlas.catalog.Request; -import org.apache.atlas.catalog.projection.Projection; -import org.apache.atlas.catalog.projection.Relation; -import org.testng.annotations.Test; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; - -/** - * Unit tests for EntityResourceDefinition. - */ -public class EntityResourceDefinitionTest { - @Test - public void testGetIdPropertyName() { - ResourceDefinition entityDefinition = new EntityResourceDefinition(); - assertEquals(entityDefinition.getIdPropertyName(), "id"); - } - - @Test - public void testGetTypeName() { - ResourceDefinition entityDefinition = new EntityResourceDefinition(); - assertNull(entityDefinition.getTypeName()); - } - - @Test - public void testResolveHref() { - Map<String, Object> resourceProps = new HashMap<>(); - resourceProps.put("id", "111-222-333"); - resourceProps.put("name", "foo"); - - ResourceDefinition entityDefinition = new EntityResourceDefinition(); - String href = entityDefinition.resolveHref(resourceProps); - assertEquals(href, "v1/entities/111-222-333"); - } - - // Because we don't currently support entity creation, this method is basically a no-op. - @Test - public void testValidate() throws Exception { - Request request = new InstanceRequest(Collections.<String, Object>emptyMap()); - - ResourceDefinition entityDefinition = new EntityResourceDefinition(); - entityDefinition.validateCreatePayload(request); - } - - // Because we don't currently support entity creation, no properties are registered - @Test - public void testGetPropertyDefinitions() { - ResourceDefinition entityDefinition = new EntityResourceDefinition(); - assertTrue(entityDefinition.getPropertyDefinitions().isEmpty()); - } - - @Test - public void testFilterProperties_Instance() { - Map<String, Object> resourceProps = new HashMap<>(); - resourceProps.put("id", "111-222-333"); - resourceProps.put("name", "nameVal"); - resourceProps.put("type", "someType"); - resourceProps.put("foo", "fooVal"); - resourceProps.put("bar", "barVal"); - resourceProps.put("fooBar", "fooBarVal"); - resourceProps.put("other", "otherVal"); - - Request request = new InstanceRequest(resourceProps); - ResourceDefinition entityDefinition = new EntityResourceDefinition(); - // no filtering should occur for entity instances - assertEquals(entityDefinition.filterProperties(request, resourceProps), resourceProps); - } - - @Test - public void testFilterProperties_Collection() { - Map<String, Object> resourceProps = new HashMap<>(); - resourceProps.put("id", "111-222-333"); - resourceProps.put("name", "nameVal"); - resourceProps.put("type", "someType"); - resourceProps.put("foo", "fooVal"); - resourceProps.put("bar", "barVal"); - resourceProps.put("fooBar", "fooBarVal"); - resourceProps.put("other", "otherVal"); - - Request request = new CollectionRequest(resourceProps, "someProperty:someValue"); - request.addAdditionalSelectProperties(Collections.singleton("foo")); - ResourceDefinition entityDefinition = new EntityResourceDefinition(); - // no filtering should occur for entity instances - Map<String, Object> filteredProps = entityDefinition.filterProperties(request, resourceProps); - assertEquals(filteredProps.size(), 4); - // registered collection props - assertTrue(filteredProps.containsKey("name")); - assertTrue(filteredProps.containsKey("id")); - assertTrue(filteredProps.containsKey("type")); - - // added prop - assertTrue(filteredProps.containsKey("foo")); - } - - @Test - public void testGetProjections() { - ResourceDefinition entityDefinition = new EntityResourceDefinition(); - Map<String, Projection> projections = entityDefinition.getProjections(); - assertEquals(projections.size(), 3); - assertTrue(projections.containsKey("tags")); - assertTrue(projections.containsKey("traits")); - assertTrue(projections.containsKey("default")); - } - - @Test - public void testGetRelations() { - ResourceDefinition entityDefinition = new EntityResourceDefinition(); - Map<String, Relation> relations = entityDefinition.getRelations(); - assertEquals(relations.size(), 2); - assertTrue(relations.containsKey("tags")); - assertTrue(relations.containsKey("traits")); - } -} http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/test/java/org/apache/atlas/catalog/definition/EntityTagResourceDefinitionTest.java ---------------------------------------------------------------------- diff --git a/catalog/src/test/java/org/apache/atlas/catalog/definition/EntityTagResourceDefinitionTest.java b/catalog/src/test/java/org/apache/atlas/catalog/definition/EntityTagResourceDefinitionTest.java deleted file mode 100644 index 41f50c7..0000000 --- a/catalog/src/test/java/org/apache/atlas/catalog/definition/EntityTagResourceDefinitionTest.java +++ /dev/null @@ -1,177 +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.catalog.definition; - -import org.apache.atlas.catalog.CollectionRequest; -import org.apache.atlas.catalog.InstanceRequest; -import org.apache.atlas.catalog.Request; -import org.apache.atlas.catalog.exception.InvalidPayloadException; -import org.apache.atlas.catalog.projection.Projection; -import org.apache.atlas.catalog.projection.Relation; -import org.apache.atlas.typesystem.types.AttributeDefinition; -import org.testng.annotations.Test; - -import java.util.*; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; - -/** - * Unit tests for EntityTagResourceDefinition. - */ -public class EntityTagResourceDefinitionTest { - @Test - public void testGetIdPropertyName() { - ResourceDefinition entityTagDefinition = new EntityTagResourceDefinition(); - assertEquals(entityTagDefinition.getIdPropertyName(), "name"); - } - - @Test - public void testGetTypeName() { - ResourceDefinition entityTagDefinition = new EntityTagResourceDefinition(); - assertNull(entityTagDefinition.getTypeName()); - } - - @Test - public void testResolveHref() { - Map<String, Object> resourceProps = new HashMap<>(); - resourceProps.put("name", "taxonomy1.term1.term11"); - resourceProps.put(EntityTagResourceDefinition.ENTITY_GUID_PROPERTY, "11-22-33"); - - ResourceDefinition entityTagDefinition = new EntityTagResourceDefinition(); - String href = entityTagDefinition.resolveHref(resourceProps); - assertEquals(href, "v1/entities/11-22-33/tags/taxonomy1.term1.term11"); - } - - @Test - public void testValidate() throws Exception { - Map<String, Object> properties = new HashMap<>(); - properties.put("name", "taxonomy1.termName"); - - Request request = new InstanceRequest(properties); - - ResourceDefinition entityTagDefinition = new EntityTagResourceDefinition(); - entityTagDefinition.validateCreatePayload(request); - } - - @Test(expectedExceptions = InvalidPayloadException.class) - public void testValidate_missingName() throws Exception { - Map<String, Object> properties = new HashMap<>(); - - Request request = new InstanceRequest(properties); - ResourceDefinition entityTagDefinition = new EntityTagResourceDefinition(); - entityTagDefinition.validateCreatePayload(request); - } - - @Test(expectedExceptions = InvalidPayloadException.class) - public void testValidate_invalidProperty() throws Exception { - Map<String, Object> properties = new HashMap<>(); - properties.put("name", "foo"); - properties.put("description", "desc"); - - Request request = new InstanceRequest(properties); - - ResourceDefinition entityTagDefinition = new EntityTagResourceDefinition(); - entityTagDefinition.validateCreatePayload(request); - } - - @Test - public void testGetPropertyDefinitions() { - ResourceDefinition entityTagDefinition = new EntityTagResourceDefinition(); - Collection<AttributeDefinition> propertyDefinitions = entityTagDefinition.getPropertyDefinitions(); - - assertEquals(propertyDefinitions.size(), 1); - Set<String> defNames = new HashSet<>(); - for (AttributeDefinition def : propertyDefinitions) { - defNames.add(def.name); - } - assertTrue(defNames.contains("name")); - } - - @Test - public void testFilterProperties_Instance() { - Map<String, Object> resourceProps = new HashMap<>(); - resourceProps.put("id", "111-222-333"); - resourceProps.put("name", "nameVal"); - resourceProps.put("type", "someType"); - resourceProps.put("foo", "fooVal"); - resourceProps.put("bar", "barVal"); - resourceProps.put("description", "desc"); - resourceProps.put("creation_time", "2016:10:10"); - resourceProps.put("acceptable_use", "something"); - resourceProps.put("available_as_tag", true); - resourceProps.put("other", "otherVal"); - - Request request = new InstanceRequest(resourceProps); - request.addAdditionalSelectProperties(Collections.singleton("foo")); - ResourceDefinition entityTagDefinition = new EntityTagResourceDefinition(); - - Map<String, Object> filteredProperties = entityTagDefinition.filterProperties(request, resourceProps); - assertEquals(filteredProperties.size(), 4); - // registered collection props - assertTrue(filteredProperties.containsKey("name")); - assertTrue(filteredProperties.containsKey("description")); - assertTrue(filteredProperties.containsKey("creation_time")); - // added prop - assertTrue(filteredProperties.containsKey("foo")); - } - - @Test - public void testFilterProperties_Collection() { - Map<String, Object> resourceProps = new HashMap<>(); - resourceProps.put("id", "111-222-333"); - resourceProps.put("name", "nameVal"); - resourceProps.put("type", "someType"); - resourceProps.put("foo", "fooVal"); - resourceProps.put("bar", "barVal"); - resourceProps.put("description", "desc"); - resourceProps.put("creation_time", "2016:10:10"); - resourceProps.put("acceptable_use", "something"); - resourceProps.put("available_as_tag", true); - resourceProps.put("other", "otherVal"); - - Request request = new CollectionRequest(resourceProps, "someProperty:someValue"); - request.addAdditionalSelectProperties(Collections.singleton("foo")); - ResourceDefinition entityTagDefinition = new EntityTagResourceDefinition(); - - Map<String, Object> filteredProps = entityTagDefinition.filterProperties(request, resourceProps); - assertEquals(filteredProps.size(), 3); - // registered collection props - assertTrue(filteredProps.containsKey("name")); - assertTrue(filteredProps.containsKey("description")); - // added prop - assertTrue(filteredProps.containsKey("foo")); - } - - @Test - public void testGetProjections() { - ResourceDefinition entityTagDefinition = new EntityTagResourceDefinition(); - Map<String, Projection> projections = entityTagDefinition.getProjections(); - assertEquals(projections.size(), 1); - assertTrue(projections.containsKey("terms")); - } - - @Test - public void testGetRelations() { - ResourceDefinition entityTagDefinition = new EntityTagResourceDefinition(); - Map<String, Relation> relations = entityTagDefinition.getRelations(); - assertTrue(relations.isEmpty()); - } -} http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/test/java/org/apache/atlas/catalog/definition/TaxonomyResourceDefinitionTest.java ---------------------------------------------------------------------- diff --git a/catalog/src/test/java/org/apache/atlas/catalog/definition/TaxonomyResourceDefinitionTest.java b/catalog/src/test/java/org/apache/atlas/catalog/definition/TaxonomyResourceDefinitionTest.java deleted file mode 100644 index 1af8d14..0000000 --- a/catalog/src/test/java/org/apache/atlas/catalog/definition/TaxonomyResourceDefinitionTest.java +++ /dev/null @@ -1,174 +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.catalog.definition; - -import org.apache.atlas.catalog.CollectionRequest; -import org.apache.atlas.catalog.InstanceRequest; -import org.apache.atlas.catalog.Request; -import org.apache.atlas.catalog.exception.InvalidPayloadException; -import org.apache.atlas.catalog.projection.Projection; -import org.apache.atlas.catalog.projection.Relation; -import org.apache.atlas.typesystem.types.AttributeDefinition; -import org.testng.annotations.Test; - -import java.util.*; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; - -/** - * Unit tests for TaxonomyResourceDefinition. - */ -public class TaxonomyResourceDefinitionTest { - @Test - public void testGetIdPropertyName() { - ResourceDefinition taxonomyDefinition = new TaxonomyResourceDefinition(); - assertEquals(taxonomyDefinition.getIdPropertyName(), "name"); - } - - @Test - public void testGetTypeName() { - ResourceDefinition taxonomyDefinition = new TaxonomyResourceDefinition(); - assertEquals(taxonomyDefinition.getTypeName(), "Taxonomy"); - } - - @Test - public void testResolveHref() { - Map<String, Object> resourceProps = new HashMap<>(); - resourceProps.put("id", "111-222-333"); - resourceProps.put("name", "foo"); - - ResourceDefinition taxonomyDefinition = new TaxonomyResourceDefinition(); - String href = taxonomyDefinition.resolveHref(resourceProps); - assertEquals(href, "v1/taxonomies/foo"); - } - - @Test - public void testValidate() throws Exception { - Map<String, Object> properties = new HashMap<>(); - properties.put("name", "taxonomyName"); - properties.put("description", "foo"); - - Request request = new InstanceRequest(properties); - - ResourceDefinition taxonomyDefinition = new TaxonomyResourceDefinition(); - taxonomyDefinition.validateCreatePayload(request); - } - - @Test(expectedExceptions = InvalidPayloadException.class) - public void testValidate_missingName() throws Exception { - Map<String, Object> properties = new HashMap<>(); - properties.put("description", "foo"); - - Request request = new InstanceRequest(properties); - - ResourceDefinition taxonomyDefinition = new TaxonomyResourceDefinition(); - taxonomyDefinition.validateCreatePayload(request); - } - - @Test(expectedExceptions = InvalidPayloadException.class) - public void testValidate_invalidProperty() throws Exception { - Map<String, Object> properties = new HashMap<>(); - properties.put("name", "foo"); - properties.put("unknownProperty", "value"); - - Request request = new InstanceRequest(properties); - - ResourceDefinition taxonomyDefinition = new TaxonomyResourceDefinition(); - taxonomyDefinition.validateCreatePayload(request); - } - - @Test - public void testGetPropertyDefinitions() { - ResourceDefinition taxonomyDefinition = new TaxonomyResourceDefinition(); - Collection<AttributeDefinition> propertyDefinitions = taxonomyDefinition.getPropertyDefinitions(); - - assertEquals(propertyDefinitions.size(), 3); - Set<String> defNames = new HashSet<>(); - for (AttributeDefinition def : propertyDefinitions) { - defNames.add(def.name); - } - assertTrue(defNames.contains("name")); - assertTrue(defNames.contains("description")); - } - - @Test - public void testFilterProperties_Instance() { - Map<String, Object> resourceProps = new HashMap<>(); - resourceProps.put("id", "111-222-333"); - resourceProps.put("name", "nameVal"); - resourceProps.put("type", "someType"); - resourceProps.put("foo", "fooVal"); - resourceProps.put("bar", "barVal"); - resourceProps.put("description", "desc"); - resourceProps.put("creation_time", "2016:10:10"); - - Request request = new InstanceRequest(resourceProps); - request.addAdditionalSelectProperties(Collections.singleton("foo")); - ResourceDefinition taxonomyDefinition = new TaxonomyResourceDefinition(); - - Map<String, Object> filteredProperties = taxonomyDefinition.filterProperties(request, resourceProps); - assertEquals(filteredProperties.size(), 4); - // registered collection props - assertTrue(filteredProperties.containsKey("name")); - assertTrue(filteredProperties.containsKey("description")); - assertTrue(filteredProperties.containsKey("creation_time")); - // added prop - assertTrue(filteredProperties.containsKey("foo")); - } - - @Test - public void testFilterProperties_Collection() { - Map<String, Object> resourceProps = new HashMap<>(); - resourceProps.put("id", "111-222-333"); - resourceProps.put("name", "nameVal"); - resourceProps.put("type", "someType"); - resourceProps.put("foo", "fooVal"); - resourceProps.put("bar", "barVal"); - resourceProps.put("description", "desc"); - resourceProps.put("creation_time", "2016:10:10"); - - Request request = new CollectionRequest(resourceProps, "someProperty:someValue"); - request.addAdditionalSelectProperties(Collections.singleton("foo")); - ResourceDefinition taxonomyDefinition = new TaxonomyResourceDefinition(); - - Map<String, Object> filteredProps = taxonomyDefinition.filterProperties(request, resourceProps); - assertEquals(filteredProps.size(), 3); - // registered collection props - assertTrue(filteredProps.containsKey("name")); - assertTrue(filteredProps.containsKey("description")); - // added prop - assertTrue(filteredProps.containsKey("foo")); - } - - @Test - public void testGetProjections() { - ResourceDefinition taxonomyDefinition = new TaxonomyResourceDefinition(); - Map<String, Projection> projections = taxonomyDefinition.getProjections(); - assertEquals(projections.size(), 1); - assertTrue(projections.containsKey("terms")); - } - - @Test - public void testGetRelations() { - ResourceDefinition taxonomyDefinition = new TaxonomyResourceDefinition(); - Map<String, Relation> relations = taxonomyDefinition.getRelations(); - assertTrue(relations.isEmpty()); - } -} http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/test/java/org/apache/atlas/catalog/definition/TermResourceDefinitionTest.java ---------------------------------------------------------------------- diff --git a/catalog/src/test/java/org/apache/atlas/catalog/definition/TermResourceDefinitionTest.java b/catalog/src/test/java/org/apache/atlas/catalog/definition/TermResourceDefinitionTest.java deleted file mode 100644 index b7b23da..0000000 --- a/catalog/src/test/java/org/apache/atlas/catalog/definition/TermResourceDefinitionTest.java +++ /dev/null @@ -1,210 +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.catalog.definition; - -import org.apache.atlas.catalog.CollectionRequest; -import org.apache.atlas.catalog.InstanceRequest; -import org.apache.atlas.catalog.Request; -import org.apache.atlas.catalog.exception.InvalidPayloadException; -import org.apache.atlas.catalog.projection.Projection; -import org.apache.atlas.catalog.projection.Relation; -import org.apache.atlas.typesystem.types.AttributeDefinition; -import org.testng.annotations.Test; - -import java.util.*; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; - -/** - * Unit tests for TermResourceDefinition. - */ -public class TermResourceDefinitionTest { - @Test - public void testGetIdPropertyName() { - ResourceDefinition termDefinition = new TermResourceDefinition(); - assertEquals(termDefinition.getIdPropertyName(), "name"); - } - - @Test - public void testGetTypeName() { - ResourceDefinition termDefinition = new TermResourceDefinition(); - assertEquals(termDefinition.getTypeName(), "Term"); - } - - @Test - public void testResolveHref() { - Map<String, Object> resourceProps = new HashMap<>(); - resourceProps.put("name", "taxonomy1.term1.term11"); - - ResourceDefinition termDefinition = new TermResourceDefinition(); - String href = termDefinition.resolveHref(resourceProps); - assertEquals(href, "v1/taxonomies/taxonomy1/terms/term1/terms/term11"); - } - - @Test - public void testValidate() throws Exception { - Map<String, Object> properties = new HashMap<>(); - properties.put("name", "taxonomy1.termName"); - properties.put("description", "foo"); - properties.put("available_as_tag", true); - properties.put("acceptable_use", "something"); - - Request request = new InstanceRequest(properties); - - ResourceDefinition termDefinition = new TermResourceDefinition(); - termDefinition.validateCreatePayload(request); - } - - @Test - public void testValidate_nameOnly() throws Exception { - Map<String, Object> properties = new HashMap<>(); - properties.put("name", "taxonomy1.termName"); - - Request request = new InstanceRequest(properties); - - ResourceDefinition termDefinition = new TermResourceDefinition(); - termDefinition.validateCreatePayload(request); - } - - @Test(expectedExceptions = InvalidPayloadException.class) - public void testValidate_invalidTermName() throws Exception { - Map<String, Object> properties = new HashMap<>(); - properties.put("name", "NotQualifiedTermName"); - properties.put("description", "foo"); - properties.put("available_as_tag", true); - - Request request = new InstanceRequest(properties); - - ResourceDefinition termDefinition = new TermResourceDefinition(); - termDefinition.validateCreatePayload(request); - } - - @Test(expectedExceptions = InvalidPayloadException.class) - public void testValidate_missingName() throws Exception { - Map<String, Object> properties = new HashMap<>(); - properties.put("description", "foo"); - - Request request = new InstanceRequest(properties); - - ResourceDefinition termDefinition = new TermResourceDefinition(); - termDefinition.validateCreatePayload(request); - } - - @Test(expectedExceptions = InvalidPayloadException.class) - public void testValidate_invalidProperty() throws Exception { - Map<String, Object> properties = new HashMap<>(); - properties.put("name", "foo"); - properties.put("unknownProperty", "value"); - - Request request = new InstanceRequest(properties); - - ResourceDefinition termDefinition = new TermResourceDefinition(); - termDefinition.validateCreatePayload(request); - } - - @Test - public void testGetPropertyDefinitions() { - ResourceDefinition termDefinition = new TermResourceDefinition(); - Collection<AttributeDefinition> propertyDefinitions = termDefinition.getPropertyDefinitions(); - - assertEquals(propertyDefinitions.size(), 4); - Set<String> defNames = new HashSet<>(); - for (AttributeDefinition def : propertyDefinitions) { - defNames.add(def.name); - } - assertTrue(defNames.contains("name")); - assertTrue(defNames.contains("description")); - assertTrue(defNames.contains("available_as_tag")); - assertTrue(defNames.contains("acceptable_use")); - } - - @Test - public void testFilterProperties_Instance() { - Map<String, Object> resourceProps = new HashMap<>(); - resourceProps.put("id", "111-222-333"); - resourceProps.put("name", "nameVal"); - resourceProps.put("type", "someType"); - resourceProps.put("foo", "fooVal"); - resourceProps.put("bar", "barVal"); - resourceProps.put("description", "desc"); - resourceProps.put("creation_time", "2016:10:10"); - resourceProps.put("acceptable_use", "something"); - resourceProps.put("available_as_tag", true); - resourceProps.put("other", "otherVal"); - - Request request = new InstanceRequest(resourceProps); - request.addAdditionalSelectProperties(Collections.singleton("foo")); - ResourceDefinition termDefinition = new TermResourceDefinition(); - - Map<String, Object> filteredProperties = termDefinition.filterProperties(request, resourceProps); - assertEquals(filteredProperties.size(), 6); - // registered collection props - assertTrue(filteredProperties.containsKey("name")); - assertTrue(filteredProperties.containsKey("description")); - assertTrue(filteredProperties.containsKey("available_as_tag")); - assertTrue(filteredProperties.containsKey("acceptable_use")); - assertTrue(filteredProperties.containsKey("creation_time")); - // added prop - assertTrue(filteredProperties.containsKey("foo")); - } - - @Test - public void testFilterProperties_Collection() { - Map<String, Object> resourceProps = new HashMap<>(); - resourceProps.put("id", "111-222-333"); - resourceProps.put("name", "nameVal"); - resourceProps.put("type", "someType"); - resourceProps.put("foo", "fooVal"); - resourceProps.put("bar", "barVal"); - resourceProps.put("description", "desc"); - resourceProps.put("creation_time", "2016:10:10"); - resourceProps.put("acceptable_use", "something"); - resourceProps.put("available_as_tag", true); - resourceProps.put("other", "otherVal"); - - Request request = new CollectionRequest(resourceProps, "someProperty:someValue"); - request.addAdditionalSelectProperties(Collections.singleton("foo")); - ResourceDefinition termDefinition = new TermResourceDefinition(); - - Map<String, Object> filteredProps = termDefinition.filterProperties(request, resourceProps); - assertEquals(filteredProps.size(), 3); - // registered collection props - assertTrue(filteredProps.containsKey("name")); - assertTrue(filteredProps.containsKey("description")); - // added prop - assertTrue(filteredProps.containsKey("foo")); - } - - @Test - public void testGetProjections() { - ResourceDefinition termDefinition = new TermResourceDefinition(); - Map<String, Projection> projections = termDefinition.getProjections(); - assertEquals(projections.size(), 2); - assertTrue(projections.containsKey("terms")); - assertTrue(projections.containsKey("hierarchy")); - } - - @Test - public void testGetRelations() { - ResourceDefinition termDefinition = new TermResourceDefinition(); - Map<String, Relation> relations = termDefinition.getRelations(); - assertTrue(relations.isEmpty()); - } -} http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/test/java/org/apache/atlas/catalog/projection/TagRelationTest.java ---------------------------------------------------------------------- diff --git a/catalog/src/test/java/org/apache/atlas/catalog/projection/TagRelationTest.java b/catalog/src/test/java/org/apache/atlas/catalog/projection/TagRelationTest.java deleted file mode 100644 index 5a9c875..0000000 --- a/catalog/src/test/java/org/apache/atlas/catalog/projection/TagRelationTest.java +++ /dev/null @@ -1,55 +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.catalog.projection; - -import com.tinkerpop.blueprints.Vertex; -import org.apache.atlas.repository.Constants; -import org.apache.atlas.typesystem.persistence.Id; -import org.testng.annotations.Test; - -import static org.easymock.EasyMock.createStrictMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertTrue; - -/** - * Unit tests for TagRelation - */ -public class TagRelationTest { - @Test - public void testIsDeleted() { - Vertex v = createStrictMock(Vertex.class); - expect(v.getProperty(Constants.STATE_PROPERTY_KEY)).andReturn(Id.EntityState.ACTIVE.name()); - replay(v); - - BaseRelation relation = new TagRelation(); - assertFalse(relation.isDeleted(v)); - } - - @Test - public void testIsDeleted_false() { - Vertex v = createStrictMock(Vertex.class); - expect(v.getProperty(Constants.STATE_PROPERTY_KEY)).andReturn(Id.EntityState.DELETED.name()); - replay(v); - - BaseRelation relation = new TagRelation(); - assertTrue(relation.isDeleted(v)); - } -} http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/test/java/org/apache/atlas/catalog/query/AlwaysQueryExpressionTest.java ---------------------------------------------------------------------- diff --git a/catalog/src/test/java/org/apache/atlas/catalog/query/AlwaysQueryExpressionTest.java b/catalog/src/test/java/org/apache/atlas/catalog/query/AlwaysQueryExpressionTest.java deleted file mode 100644 index 81d70a4..0000000 --- a/catalog/src/test/java/org/apache/atlas/catalog/query/AlwaysQueryExpressionTest.java +++ /dev/null @@ -1,74 +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.catalog.query; - -import org.apache.atlas.catalog.VertexWrapper; -import org.testng.annotations.Test; - -import static org.easymock.EasyMock.createStrictMock; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; - -/** - * Unit tests for AlwaysQueryExpression. - */ -public class AlwaysQueryExpressionTest { - @Test - public void testEvaluate() { - VertexWrapper v = createStrictMock(VertexWrapper.class); - replay(v); - QueryExpression expression = new AlwaysQueryExpression(); - // always returns true - assertTrue(expression.evaluate(v)); - verify(v); - } - - @Test - public void testEvaluate_negated() { - VertexWrapper v = createStrictMock(VertexWrapper.class); - replay(v); - QueryExpression expression = new AlwaysQueryExpression(); - expression.setNegate(); - // always returns true - assertFalse(expression.evaluate(v)); - assertTrue(expression.isNegate()); - verify(v); - } - - @Test - public void testGetProperties() { - VertexWrapper v = createStrictMock(VertexWrapper.class); - replay(v); - QueryExpression expression = new AlwaysQueryExpression(); - assertTrue(expression.getProperties().isEmpty()); - verify(v); - } - - @Test - public void testAsPipe() { - VertexWrapper v = createStrictMock(VertexWrapper.class); - replay(v); - QueryExpression expression = new AlwaysQueryExpression(); - assertNull(expression.asPipe()); - verify(v); - } -}
