You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ma...@apache.org on 2017/11/05 20:31:41 UTC
[19/40] atlas git commit: ATLAS-2251: Remove TypeSystem and related
implementation, to avoid unncessary duplicate of type details in cache
http://git-wip-us.apache.org/repos/asf/atlas/blob/0877e47c/repository/src/test/java/org/apache/atlas/repository/impexp/AtlasImportRequestTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/impexp/AtlasImportRequestTest.java b/repository/src/test/java/org/apache/atlas/repository/impexp/AtlasImportRequestTest.java
deleted file mode 100644
index b70b181..0000000
--- a/repository/src/test/java/org/apache/atlas/repository/impexp/AtlasImportRequestTest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.atlas.repository.impexp;
-
-import org.apache.atlas.model.impexp.AtlasImportRequest;
-import org.apache.atlas.type.AtlasType;
-import org.testng.annotations.Test;
-
-import static org.testng.Assert.*;
-
-public class AtlasImportRequestTest {
- @Test
- public void serializeAtlasImportRequstFromJsonWithEmptyOptions() {
- String jsonData = "{ \"options\": {} }";
-
- AtlasImportRequest request = AtlasType.fromJson(jsonData, AtlasImportRequest.class);
-
- assertNotNull(request);
- assertNotNull(request.getOptions());
- assertNull(request.getOptions().get(AtlasImportRequest.TRANSFORMS_KEY));
-
- ImportTransforms tr = ImportTransforms.fromJson(request.getOptions().get(AtlasImportRequest.TRANSFORMS_KEY));
-
- assertNull(tr);
- }
-
- @Test
- public void serializeOptions_VerifyAccessors() {
- String guid = "\"abcd\"";
- String pos = "\"1\"";
- String trueVal = "\"true\"";
-
- String jsonData = "{ \"options\": " +
- " {" +
- "\"startGuid\":" + guid + "," +
- "\"startPosition\":" + pos + "," +
- "\"updateTypeDefinition\":" + trueVal +
- "}" +
- "}";
-
- AtlasImportRequest request = AtlasType.fromJson(jsonData, AtlasImportRequest.class);
-
- assertNotNull(request);
- assertNotNull(request.getStartGuid());
- assertNotNull(request.getStartPosition());
- assertNotNull(request.getUpdateTypeDefs());
-
- assertEquals(request.getStartGuid(), guid.replace("\"", ""));
- assertEquals(request.getStartPosition(), pos.replace("\"", ""));
- assertEquals(request.getUpdateTypeDefs(), trueVal.replace("\"", ""));
- }
-
- @Test
- public void optionsDefaultsTest() {
- String jsonData = "{ \"options\": " +
- " {" +
- "}" +
- "}";
-
- AtlasImportRequest request = AtlasType.fromJson(jsonData, AtlasImportRequest.class);
-
- assertNotNull(request);
- assertNull(request.getStartGuid());
- assertNull(request.getStartPosition());
- assertNull(request.getUpdateTypeDefs());
- }
-
- @Test
- public void serializeAtlasImportRequstFromJsonWithEmptyTransforms() {
- String jsonData = "{ \"options\": { \"transforms\": \"{ }\" } }";
-
- AtlasImportRequest request = AtlasType.fromJson(jsonData, AtlasImportRequest.class);
-
- assertNotNull(request);
- assertNotNull(request.getOptions());
- assertNotNull(request.getOptions().get(AtlasImportRequest.TRANSFORMS_KEY));
-
- ImportTransforms tr = ImportTransforms.fromJson(request.getOptions().get(AtlasImportRequest.TRANSFORMS_KEY));
-
- assertNotNull(tr);
- assertNotNull(tr.getTransforms());
- assertEquals(tr.getTransforms().size(), 0);
- }
-
- @Test
- public void serializeAtlasImportRequstFromJsonWith1Transform() {
- String jsonData = "{ \"options\": { \"transforms\": \"{ \\\"hive_db\\\": { \\\"qualifiedName\\\": [ \\\"replace:@cl1:@cl2\\\" ] } }\" } }";
-
- AtlasImportRequest request = AtlasType.fromJson(jsonData, AtlasImportRequest.class);
-
- assertNotNull(request);
- assertNotNull(request.getOptions());
- assertNotNull(request.getOptions().get(AtlasImportRequest.TRANSFORMS_KEY));
-
- ImportTransforms tr = ImportTransforms.fromJson(request.getOptions().get(AtlasImportRequest.TRANSFORMS_KEY));
-
- assertNotNull(tr);
- assertNotNull(tr.getTransforms());
- assertEquals(tr.getTransforms().size(), 1);
- assertTrue(tr.getTransforms().containsKey("hive_db"));
- assertEquals(tr.getTransforms("hive_db").entrySet().size(), 1);
- assertTrue(tr.getTransforms("hive_db").containsKey("qualifiedName"));
- assertEquals(tr.getTransforms("hive_db").get("qualifiedName").size(), 1);
- }
-
- @Test
- public void serializeAtlasImportRequstFromJson() {
- String jsonData = "{ \"options\": { \"transforms\": \"{ \\\"hive_db\\\": { \\\"qualifiedName\\\": [ \\\"replace:@cl1:@cl2\\\" ] }, \\\"hive_table\\\": { \\\"qualifiedName\\\": [ \\\"lowercase\\\", \\\"replace:@cl1:@cl2\\\" ] } }\" } } }";
-
- AtlasImportRequest request = AtlasType.fromJson(jsonData, AtlasImportRequest.class);
-
- assertNotNull(request);
- assertNotNull(request.getOptions());
- assertNotNull(request.getOptions().get(AtlasImportRequest.TRANSFORMS_KEY));
-
- ImportTransforms tr = ImportTransforms.fromJson(request.getOptions().get(AtlasImportRequest.TRANSFORMS_KEY));
-
- assertNotNull(tr);
- assertNotNull(tr.getTransforms());
- assertEquals(tr.getTransforms().size(), 2);
- assertTrue(tr.getTransforms().containsKey("hive_db"));
- assertEquals(tr.getTransforms("hive_db").entrySet().size(), 1);
- assertTrue(tr.getTransforms("hive_db").containsKey("qualifiedName"));
- assertEquals(tr.getTransforms("hive_db").get("qualifiedName").size(), 1);
- assertTrue(tr.getTransforms().containsKey("hive_table"));
- assertEquals(tr.getTransforms("hive_table").entrySet().size(), 1);
- assertTrue(tr.getTransforms("hive_table").containsKey("qualifiedName"));
- assertEquals(tr.getTransforms("hive_table").get("qualifiedName").size(), 2);
- }
-}
http://git-wip-us.apache.org/repos/asf/atlas/blob/0877e47c/repository/src/test/java/org/apache/atlas/repository/impexp/ExportServiceTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/impexp/ExportServiceTest.java b/repository/src/test/java/org/apache/atlas/repository/impexp/ExportServiceTest.java
deleted file mode 100644
index 7901ef6..0000000
--- a/repository/src/test/java/org/apache/atlas/repository/impexp/ExportServiceTest.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.atlas.repository.impexp;
-
-
-import org.apache.atlas.RequestContextV1;
-import org.apache.atlas.TestModules;
-import org.apache.atlas.TestUtilsV2;
-import org.apache.atlas.exception.AtlasBaseException;
-import org.apache.atlas.model.impexp.AtlasExportRequest;
-import org.apache.atlas.model.impexp.AtlasExportResult;
-import org.apache.atlas.model.instance.AtlasEntity;
-import org.apache.atlas.model.instance.AtlasObjectId;
-import org.apache.atlas.model.typedef.AtlasTypesDef;
-import org.apache.atlas.repository.graph.AtlasGraphProvider;
-import org.apache.atlas.repository.store.bootstrap.AtlasTypeDefStoreInitializer;
-import org.apache.atlas.repository.store.graph.v1.AtlasEntityChangeNotifier;
-import org.apache.atlas.repository.store.graph.v1.AtlasEntityStoreV1;
-import org.apache.atlas.repository.store.graph.v1.AtlasEntityStream;
-import org.apache.atlas.repository.store.graph.v1.DeleteHandlerV1;
-import org.apache.atlas.repository.store.graph.v1.EntityGraphMapper;
-import org.apache.atlas.repository.store.graph.v1.SoftDeleteHandlerV1;
-import org.apache.atlas.store.AtlasTypeDefStore;
-import org.apache.atlas.type.AtlasTypeRegistry;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Guice;
-import org.testng.annotations.Test;
-import scala.actors.threadpool.Arrays;
-
-import javax.inject.Inject;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.mockito.Mockito.mock;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-@Guice(modules = TestModules.TestOnlyModule.class)
-public class ExportServiceTest {
- private static final Logger LOG = LoggerFactory.getLogger(ExportServiceTest.class);
-
- @Inject
- AtlasTypeRegistry typeRegistry;
-
- @Inject
- private AtlasTypeDefStore typeDefStore;
-
- @Inject
- private EntityGraphMapper graphMapper;
- @Inject
- ExportService exportService;
- private DeleteHandlerV1 deleteHandler = mock(SoftDeleteHandlerV1.class);;
- private AtlasEntityChangeNotifier mockChangeNotifier = mock(AtlasEntityChangeNotifier.class);
- private AtlasEntityStoreV1 entityStore;
-
- @BeforeTest
- public void setupTest() {
- RequestContextV1.clear();
- RequestContextV1.get().setUser(TestUtilsV2.TEST_USER);
- }
-
- @BeforeClass
- public void setupSampleData() throws AtlasBaseException {
- entityStore = new AtlasEntityStoreV1(deleteHandler, typeRegistry, mockChangeNotifier, graphMapper);;
-
- AtlasTypesDef sampleTypes = TestUtilsV2.defineDeptEmployeeTypes();
- AtlasTypesDef typesToCreate = AtlasTypeDefStoreInitializer.getTypesToCreate(sampleTypes, typeRegistry);
-
- if (!typesToCreate.isEmpty()) {
- typeDefStore.createTypesDef(typesToCreate);
- }
-
- AtlasEntity.AtlasEntitiesWithExtInfo hrDept = TestUtilsV2.createDeptEg2();
-
- AtlasEntityStream entityStream = new AtlasEntityStream(hrDept);
- entityStore.createOrUpdate(entityStream, false);
- LOG.debug("==> setupSampleData: ", AtlasEntity.dumpObjects(hrDept.getEntities(), null).toString());
- }
-
- @AfterClass
- public void clear() {
- AtlasGraphProvider.cleanup();
- }
-
- private AtlasExportRequest getRequestForFullFetch() {
- AtlasExportRequest request = new AtlasExportRequest();
-
- List<AtlasObjectId> itemsToExport = new ArrayList<>();
- itemsToExport.add(new AtlasObjectId("hive_db", "qualifiedName", "default@cl1"));
- request.setItemsToExport(itemsToExport);
-
- return request;
- }
-
- private AtlasExportRequest getRequestForDept(boolean addFetchType, String fetchTypeValue, boolean addMatchType, String matchTypeValue) {
- AtlasExportRequest request = new AtlasExportRequest();
-
- List<AtlasObjectId> itemsToExport = new ArrayList<>();
- itemsToExport.add(new AtlasObjectId("Department", "name", "hr"));
- request.setItemsToExport(itemsToExport);
-
- setOptionsMap(request, addFetchType, fetchTypeValue, addMatchType, matchTypeValue);
- return request;
- }
-
- private AtlasExportRequest getRequestForEmployee() {
- AtlasExportRequest request = new AtlasExportRequest();
-
- List<AtlasObjectId> itemsToExport = new ArrayList<>();
- itemsToExport.add(new AtlasObjectId("Employee", "name", "Max"));
- request.setItemsToExport(itemsToExport);
-
- setOptionsMap(request, true, "CONNECTED", false, "");
- return request;
- }
-
- private void setOptionsMap(AtlasExportRequest request,
- boolean addFetchType, String fetchTypeValue, boolean addMatchType, String matchTypeValue) {
- Map<String, Object> optionsMap = null;
- if(addFetchType) {
- if(optionsMap == null) {
- optionsMap = new HashMap<>();
- }
-
- optionsMap.put("fetchType", fetchTypeValue);
- request.setOptions(optionsMap);
- }
-
- if(addMatchType) {
- if(optionsMap == null) {
- optionsMap = new HashMap<>();
- }
-
- optionsMap.put("matchType", matchTypeValue);
- }
-
- if(optionsMap != null) {
- request.setOptions(optionsMap);
- }
- }
-
- private ZipSource runExportWithParameters(AtlasExportRequest request) throws AtlasBaseException, IOException {
- final String requestingIP = "1.0.0.0";
- final String hostName = "localhost";
- final String userName = "admin";
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ZipSink zipSink = new ZipSink(baos);
- AtlasExportResult result = exportService.run(zipSink, request, userName, hostName, requestingIP);
-
- zipSink.close();
-
- ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
- ZipSource zipSource = new ZipSource(bis);
- return zipSource;
- }
-
- @Test
- public void exportType_Succeeds() throws AtlasBaseException, FileNotFoundException {
- String requestingIP = "1.0.0.0";
- String hostName = "root";
-
- AtlasExportRequest request = getRequestForFullFetch();
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ZipSink zipSink = new ZipSink(baos);
- AtlasExportResult result = exportService.run(zipSink, request, "admin", hostName, requestingIP);
-
- assertNotNull(exportService);
- assertEquals(result.getHostName(), hostName);
- assertEquals(result.getClientIpAddress(), requestingIP);
- assertEquals(request, result.getRequest());
- }
-
- @Test
- public void requestingEntityNotFound_NoData() throws AtlasBaseException, IOException {
- String requestingIP = "1.0.0.0";
- String hostName = "root";
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ZipSink zipSink = new ZipSink(baos);
- AtlasExportResult result = exportService.run(
- zipSink, getRequestForFullFetch(), "admin", hostName, requestingIP);
-
- Assert.assertNull(result.getData());
-
- ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
- ZipSource zipSource = new ZipSource(bais);
-
- assertNotNull(exportService);
- assertNotNull(zipSource.getCreationOrder());
- Assert.assertFalse(zipSource.hasNext());
- }
-
- @Test
- public void requestingEntityFoundDefaultFetch_ContainsData() throws Exception {
- ZipSource source = runExportWithParameters(
- getRequestForDept(false, "", false, ""));
- verifyExportForHrData(source);
- }
-
- @Test
- public void requestingHrEntityWithMatchTypeContains_ContainsData() throws Exception {
- ZipSource source = runExportWithParameters(
- getRequestForDept(false, "", true, "CONTAINS"));
- verifyExportForHrData(source);
- }
-
- @Test
- public void requestingHrEntityWithMatchTypeEndsWith_ContainsData() throws Exception {
- ZipSource source = runExportWithParameters(
- getRequestForDept(false, "", true, "ENDSWITH"));
- verifyExportForHrData(source);
- }
-
- @Test
- public void requestingDeptEntityFoundFullFetch_ContainsData() throws Exception {
- ZipSource source = runExportWithParameters(
- getRequestForDept(true, "FULL", false, ""));
- verifyExportForHrData(source);
- }
-
- @Test
- public void requestingDeptEntityFoundConnectedFetch_ContainsData() throws Exception {
- ZipSource source = runExportWithParameters(
- getRequestForDept(true, "CONNECTED", false, ""));
- verifyExportForHrDataForConnected(source);
- }
-
- @Test
- public void requestingEmployeeEntityFoundConnectedFetch_ContainsData() throws Exception {
- ZipSource zipSource = runExportWithParameters(getRequestForEmployee());
- verifyExportForEmployeeData(zipSource);
- }
-
- @Test
- public void verifyOverallStatus() throws Exception {
-
-// ExportService service = new ExportService(typeRegistry);
- assertEquals(AtlasExportResult.OperationStatus.FAIL, exportService.getOverallOperationStatus());
-
- assertEquals(AtlasExportResult.OperationStatus.SUCCESS, exportService.getOverallOperationStatus(AtlasExportResult.OperationStatus.SUCCESS));
-
- assertEquals(AtlasExportResult.OperationStatus.SUCCESS, exportService.getOverallOperationStatus(
- AtlasExportResult.OperationStatus.SUCCESS,
- AtlasExportResult.OperationStatus.SUCCESS,
- AtlasExportResult.OperationStatus.SUCCESS));
-
- assertEquals(AtlasExportResult.OperationStatus.PARTIAL_SUCCESS, exportService.getOverallOperationStatus(
- AtlasExportResult.OperationStatus.FAIL,
- AtlasExportResult.OperationStatus.PARTIAL_SUCCESS,
- AtlasExportResult.OperationStatus.SUCCESS));
-
- assertEquals(AtlasExportResult.OperationStatus.PARTIAL_SUCCESS, exportService.getOverallOperationStatus(
- AtlasExportResult.OperationStatus.FAIL,
- AtlasExportResult.OperationStatus.FAIL,
- AtlasExportResult.OperationStatus.PARTIAL_SUCCESS));
-
- assertEquals(AtlasExportResult.OperationStatus.FAIL, exportService.getOverallOperationStatus(
- AtlasExportResult.OperationStatus.FAIL,
- AtlasExportResult.OperationStatus.FAIL,
- AtlasExportResult.OperationStatus.FAIL));
- }
-
- @Test
- public void requestingExportOfNonExistentEntity_ReturnsFailure() throws Exception {
- AtlasExportRequest request = getRequestForEmployee();
- tamperEmployeeRequest(request);
- ZipSource zipSource = runExportWithParameters(request);
-
- assertNotNull(zipSource.getCreationOrder());
- assertEquals(zipSource.getCreationOrder().size(), 0);
- assertEquals(AtlasExportResult.OperationStatus.FAIL, zipSource.getExportResult().getOperationStatus());
- }
-
- private void tamperEmployeeRequest(AtlasExportRequest request) {
- AtlasObjectId objectId = request.getItemsToExport().get(0);
- objectId.getUniqueAttributes().remove("name");
- objectId.getUniqueAttributes().put("qualifiedName", "XXX@121");
- }
-
- private void verifyExportForEmployeeData(ZipSource zipSource) throws AtlasBaseException {
- final List<String> expectedEntityTypes = Arrays.asList(new String[]{"Manager", "Employee", "Department"});
-
- assertNotNull(zipSource.getCreationOrder());
- assertEquals(zipSource.getCreationOrder().size(), 2);
- assertTrue(zipSource.hasNext());
-
- while (zipSource.hasNext()) {
- AtlasEntity entity = zipSource.next();
-
- assertNotNull(entity);
- assertEquals(AtlasEntity.Status.ACTIVE, entity.getStatus());
- assertTrue(expectedEntityTypes.contains(entity.getTypeName()));
- }
-
- verifyTypeDefs(zipSource);
- }
-
- private void verifyExportForHrData(ZipSource zipSource) throws IOException, AtlasBaseException {
- assertNotNull(zipSource.getCreationOrder());
- assertTrue(zipSource.getCreationOrder().size() == 1);
- assertTrue(zipSource.hasNext());
-
- AtlasEntity entity = zipSource.next();
-
- assertNotNull(entity);
- assertTrue(entity.getTypeName().equals("Department"));
- assertEquals(entity.getStatus(), AtlasEntity.Status.ACTIVE);
- verifyTypeDefs(zipSource);
- }
-
- private void verifyExportForHrDataForConnected(ZipSource zipSource) throws IOException, AtlasBaseException {
- assertNotNull(zipSource.getCreationOrder());
- assertTrue(zipSource.getCreationOrder().size() == 2);
- assertTrue(zipSource.hasNext());
-
- AtlasEntity entity = zipSource.next();
-
- assertNotNull(entity);
- assertTrue(entity.getTypeName().equals("Department"));
- assertEquals(entity.getStatus(), AtlasEntity.Status.ACTIVE);
- verifyTypeDefs(zipSource);
- }
-
- private void verifyTypeDefs(ZipSource zipSource) throws AtlasBaseException {
- assertEquals(zipSource.getTypesDef().getEnumDefs().size(), 1);
- assertEquals(zipSource.getTypesDef().getClassificationDefs().size(), 0);
- assertEquals(zipSource.getTypesDef().getStructDefs().size(), 1);
- assertEquals(zipSource.getTypesDef().getEntityDefs().size(), 4);
- }
-}
http://git-wip-us.apache.org/repos/asf/atlas/blob/0877e47c/repository/src/test/java/org/apache/atlas/repository/impexp/ImportServiceTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/impexp/ImportServiceTest.java b/repository/src/test/java/org/apache/atlas/repository/impexp/ImportServiceTest.java
deleted file mode 100644
index b24774d..0000000
--- a/repository/src/test/java/org/apache/atlas/repository/impexp/ImportServiceTest.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.atlas.repository.impexp;
-
-import com.google.inject.Inject;
-import org.apache.atlas.AtlasErrorCode;
-import org.apache.atlas.RequestContextV1;
-import org.apache.atlas.TestModules;
-import org.apache.atlas.TestUtilsV2;
-import org.apache.atlas.exception.AtlasBaseException;
-import org.apache.atlas.model.impexp.AtlasImportRequest;
-import org.apache.atlas.store.AtlasTypeDefStore;
-import org.apache.atlas.type.AtlasClassificationType;
-import org.apache.atlas.type.AtlasTypeRegistry;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.ITestContext;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Guice;
-import org.testng.annotations.Test;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.apache.atlas.repository.impexp.ZipFileResourceTestUtils.*;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-
-@Guice(modules = TestModules.TestOnlyModule.class)
-public class ImportServiceTest {
- private static final Logger LOG = LoggerFactory.getLogger(ImportServiceTest.class);
- private final ImportService importService;
-
- @Inject
- AtlasTypeRegistry typeRegistry;
-
- @Inject
- private AtlasTypeDefStore typeDefStore;
-
- @Inject
- public ImportServiceTest(ImportService importService) {
- this.importService = importService;
- }
-
- @BeforeTest
- public void setupTest() {
- RequestContextV1.clear();
- RequestContextV1.get().setUser(TestUtilsV2.TEST_USER);
- }
-
- @DataProvider(name = "sales")
- public static Object[][] getDataFromQuickStart_v1_Sales(ITestContext context) throws IOException {
- return getZipSource("sales-v1-full.zip");
- }
-
- @Test(dataProvider = "sales")
- public void importDB1(ZipSource zipSource) throws AtlasBaseException, IOException {
- loadBaseModel();
- runAndVerifyQuickStart_v1_Import(importService, zipSource);
- }
-
- @DataProvider(name = "reporting")
- public static Object[][] getDataFromReporting() throws IOException {
- return getZipSource("reporting-v1-full.zip");
- }
-
- @Test(dataProvider = "reporting")
- public void importDB2(ZipSource zipSource) throws AtlasBaseException, IOException {
- loadBaseModel();
- runAndVerifyQuickStart_v1_Import(importService, zipSource);
- }
-
- private void loadBaseModel() throws IOException, AtlasBaseException {
- loadModelFromJson("0000-Area0/0010-base_model.json", typeDefStore, typeRegistry);
- }
-
- @DataProvider(name = "logging")
- public static Object[][] getDataFromLogging(ITestContext context) throws IOException {
- return getZipSource("logging-v1-full.zip");
- }
-
- @Test(dataProvider = "logging")
- public void importDB3(ZipSource zipSource) throws AtlasBaseException, IOException {
- loadBaseModel();
- runAndVerifyQuickStart_v1_Import(importService, zipSource);
- }
-
- @DataProvider(name = "salesNewTypeAttrs")
- public static Object[][] getDataFromSalesNewTypeAttrs(ITestContext context) throws IOException {
- return getZipSource("salesNewTypeAttrs.zip");
- }
-
- @Test(dataProvider = "salesNewTypeAttrs", dependsOnMethods = "importDB1")
- public void importDB4(ZipSource zipSource) throws AtlasBaseException, IOException {
- loadBaseModel();
- runImportWithParameters(importService, getDefaultImportRequest(), zipSource);
- }
-
- @DataProvider(name = "salesNewTypeAttrs-next")
- public static Object[][] getDataFromSalesNewTypeAttrsNext(ITestContext context) throws IOException {
- return getZipSource("salesNewTypeAttrs-next.zip");
- }
-
-
- @Test(dataProvider = "salesNewTypeAttrs-next", dependsOnMethods = "importDB4")
- public void importDB5(ZipSource zipSource) throws AtlasBaseException, IOException {
- final String newEnumDefName = "database_action";
-
- assertNotNull(typeDefStore.getEnumDefByName(newEnumDefName));
-
- AtlasImportRequest request = getDefaultImportRequest();
- Map<String, String> options = new HashMap<>();
- options.put("updateTypeDefinition", "false");
- request.setOptions(options);
-
- runImportWithParameters(importService, request, zipSource);
- assertNotNull(typeDefStore.getEnumDefByName(newEnumDefName));
- assertEquals(typeDefStore.getEnumDefByName(newEnumDefName).getElementDefs().size(), 4);
- }
-
- @Test(dataProvider = "salesNewTypeAttrs-next", dependsOnMethods = "importDB4")
- public void importDB6(ZipSource zipSource) throws AtlasBaseException, IOException {
- final String newEnumDefName = "database_action";
-
- assertNotNull(typeDefStore.getEnumDefByName(newEnumDefName));
-
- AtlasImportRequest request = getDefaultImportRequest();
- Map<String, String> options = new HashMap<>();
- options.put("updateTypeDefinition", "true");
- request.setOptions(options);
-
- runImportWithParameters(importService, request, zipSource);
- assertNotNull(typeDefStore.getEnumDefByName(newEnumDefName));
- assertEquals(typeDefStore.getEnumDefByName(newEnumDefName).getElementDefs().size(), 8);
- }
-
- @DataProvider(name = "ctas")
- public static Object[][] getDataFromCtas(ITestContext context) throws IOException {
- return getZipSource("ctas.zip");
- }
-
- @Test(dataProvider = "ctas")
- public void importCTAS(ZipSource zipSource) throws IOException, AtlasBaseException {
- loadBaseModel();
- loadHiveModel();
-
- runImportWithNoParameters(importService, zipSource);
- }
-
- @DataProvider(name = "hdfs_path1")
- public static Object[][] getDataFromHdfsPath1(ITestContext context) throws IOException {
- return getZipSource("hdfs_path1.zip");
- }
-
-
- @Test(dataProvider = "hdfs_path1", expectedExceptions = AtlasBaseException.class)
- public void importHdfs_path1(ZipSource zipSource) throws IOException, AtlasBaseException {
- loadBaseModel();
- loadFsModel();
- loadModelFromResourcesJson("tag1.json", typeDefStore, typeRegistry);
-
- try {
- runImportWithNoParameters(importService, zipSource);
- } catch (AtlasBaseException e) {
- assertEquals(e.getAtlasErrorCode(), AtlasErrorCode.INVALID_IMPORT_ATTRIBUTE_TYPE_CHANGED);
- AtlasClassificationType tag1 = typeRegistry.getClassificationTypeByName("tag1");
- assertNotNull(tag1);
- assertEquals(tag1.getAllAttributes().size(), 2);
- throw e;
- }
- }
-
- @Test
- public void importServiceProcessesIOException() {
- ImportService importService = new ImportService(typeDefStore, typeRegistry, null);
- AtlasImportRequest req = mock(AtlasImportRequest.class);
-
- Answer<Map> answer = new Answer<Map>() {
- @Override
- public Map answer(InvocationOnMock invocationOnMock) throws Throwable {
- throw new IOException("file is read only");
- }
- };
-
- when(req.getFileName()).thenReturn("some-file.zip");
- when(req.getOptions()).thenAnswer(answer);
-
- try {
- importService.run(req, "a", "b", "c");
- }
- catch (AtlasBaseException ex) {
- assertEquals(ex.getAtlasErrorCode().getErrorCode(), AtlasErrorCode.INVALID_PARAMETERS.getErrorCode());
- }
- }
-
- private void loadFsModel() throws IOException, AtlasBaseException {
- loadModelFromJson("1000-Hadoop/1020-fs_model.json", typeDefStore, typeRegistry);
- }
-
- private void loadHiveModel() throws IOException, AtlasBaseException {
- loadModelFromJson("1000-Hadoop/1030-hive_model.json", typeDefStore, typeRegistry);
- }
-}
http://git-wip-us.apache.org/repos/asf/atlas/blob/0877e47c/repository/src/test/java/org/apache/atlas/repository/impexp/ImportServiceTestUtils.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/impexp/ImportServiceTestUtils.java b/repository/src/test/java/org/apache/atlas/repository/impexp/ImportServiceTestUtils.java
deleted file mode 100644
index 7289512..0000000
--- a/repository/src/test/java/org/apache/atlas/repository/impexp/ImportServiceTestUtils.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.atlas.repository.impexp;
-
-import com.google.common.collect.Sets;
-import org.apache.atlas.exception.AtlasBaseException;
-import org.apache.atlas.model.impexp.AtlasExportResult;
-import org.apache.atlas.model.impexp.AtlasImportRequest;
-import org.apache.atlas.model.impexp.AtlasImportResult;
-import org.apache.atlas.model.typedef.AtlasTypesDef;
-import org.apache.atlas.repository.store.bootstrap.AtlasTypeDefStoreInitializer;
-import org.apache.atlas.store.AtlasTypeDefStore;
-import org.apache.atlas.type.AtlasType;
-import org.apache.atlas.type.AtlasTypeRegistry;
-import org.testng.Assert;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-public class ImportServiceTestUtils {
-
- public static void verifyImportedEntities(List<String> creationOrder, List<String> processedEntities) {
- Set<String> lhs = com.google.common.collect.Sets.newHashSet(creationOrder);
- Set<String> rhs = com.google.common.collect.Sets.newHashSet(processedEntities);
- Set<String> difference = Sets.difference(lhs, rhs);
-
- Assert.assertNotNull(difference);
- Assert.assertEquals(difference.size(), 0);
- }
-
- public static void verifyImportedMetrics(AtlasExportResult exportResult, AtlasImportResult importResult) {
- Map<String, Integer> metricsForCompare = getImportMetricsForCompare(importResult);
- for (Map.Entry<String, Integer> entry : exportResult.getMetrics().entrySet()) {
- if(entry.getKey().startsWith("entity") == false ||
- entry.getKey().contains("withExtInfo") ||
- entry.getKey().contains("Column") ||
- entry.getKey().contains("StorageDesc")) continue;
-
- Assert.assertTrue(metricsForCompare.containsKey(entry.getKey()));
- Assert.assertEquals(entry.getValue(), metricsForCompare.get(entry.getKey()));
- }
- }
-
- private static Map<String,Integer> getImportMetricsForCompare(AtlasImportResult result) {
- Map<String, Integer> r = new HashMap<>();
- for (Map.Entry<String, Integer> entry : result.getMetrics().entrySet()) {
- r.put(entry.getKey().replace(":updated", "").replace(":created", ""), entry.getValue());
- }
-
- return r;
- }
-
-
- public static void loadModelFromJson(String fileName, AtlasTypeDefStore typeDefStore, AtlasTypeRegistry typeRegistry) throws IOException, AtlasBaseException {
- AtlasTypesDef typesFromJson = getAtlasTypesDefFromFile(fileName);
- createTypesAsNeeded(typesFromJson, typeDefStore, typeRegistry);
- }
-
- private static void createTypesAsNeeded(AtlasTypesDef typesFromJson, AtlasTypeDefStore typeDefStore, AtlasTypeRegistry typeRegistry) throws AtlasBaseException {
- AtlasTypesDef typesToCreate = AtlasTypeDefStoreInitializer.getTypesToCreate(typesFromJson, typeRegistry);
-
- if (!typesToCreate.isEmpty()) {
- typeDefStore.createTypesDef(typesToCreate);
- }
- }
-
- private static AtlasTypesDef getAtlasTypesDefFromFile(String fileName) throws IOException {
- String sampleTypes = ZipFileResourceTestUtils.getModelJson(fileName);
- return AtlasType.fromJson(sampleTypes, AtlasTypesDef.class);
- }
-
- public static AtlasImportRequest getDefaultImportRequest() {
- return new AtlasImportRequest();
- }
-
-
- public static AtlasImportResult runImportWithParameters(ImportService importService, AtlasImportRequest request, ZipSource source) throws AtlasBaseException, IOException {
- final String requestingIP = "1.0.0.0";
- final String hostName = "localhost";
- final String userName = "admin";
-
- AtlasImportResult result = importService.run(source, request, userName, hostName, requestingIP);
- Assert.assertEquals(result.getOperationStatus(), AtlasImportResult.OperationStatus.SUCCESS);
- return result;
- }
-
- public static void runAndVerifyQuickStart_v1_Import(ImportService importService, ZipSource zipSource) throws AtlasBaseException, IOException {
- AtlasExportResult exportResult = zipSource.getExportResult();
- List<String> creationOrder = zipSource.getCreationOrder();
-
- AtlasImportRequest request = getDefaultImportRequest();
- AtlasImportResult result = runImportWithParameters(importService, request, zipSource);
-
- Assert.assertNotNull(result);
- verifyImportedMetrics(exportResult, result);
- verifyImportedEntities(creationOrder, result.getProcessedEntities());
- }
-}
http://git-wip-us.apache.org/repos/asf/atlas/blob/0877e47c/repository/src/test/java/org/apache/atlas/repository/impexp/ImportTransformerJSONTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/impexp/ImportTransformerJSONTest.java b/repository/src/test/java/org/apache/atlas/repository/impexp/ImportTransformerJSONTest.java
deleted file mode 100644
index 7044e71..0000000
--- a/repository/src/test/java/org/apache/atlas/repository/impexp/ImportTransformerJSONTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.atlas.repository.impexp;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-
-import static org.testng.Assert.*;
-
-public class ImportTransformerJSONTest {
-
-
- @Test
- public void createAtlasImportTransformFromJson() throws Exception {
- String hiveTableType = "hive_table";
- String qualifiedName = "qualifiedName";
- String jsonTransforms = "{ \"hive_table\": { \"qualifiedName\":[ \"lowercase\", \"replace:@cl1:@cl2\" ] } }";
-
- ImportTransforms transforms = ImportTransforms.fromJson(jsonTransforms);
-
- assertNotNull(transforms);
- assertEquals(transforms.getTransforms().entrySet().size(), 1);
- assertEquals(transforms.getTransforms().get(hiveTableType).entrySet().size(), 1);
- assertEquals(transforms.getTransforms().get(hiveTableType).get(qualifiedName).size(), 2);
- Assert.assertEquals(transforms.getTransforms().get(hiveTableType).get(qualifiedName).get(0).getTransformType(), "lowercase");
- assertEquals(transforms.getTransforms().get(hiveTableType).get(qualifiedName).get(1).getTransformType(), "replace");
- assertTrue(transforms.getTransforms().get(hiveTableType).get(qualifiedName).get(1) instanceof ImportTransformer.Replace);
- assertEquals(((ImportTransformer.Replace)transforms.getTransforms().get(hiveTableType).get(qualifiedName).get(1)).getToFindStr(), "@cl1");
- assertEquals(((ImportTransformer.Replace)transforms.getTransforms().get(hiveTableType).get(qualifiedName).get(1)).getReplaceStr(), "@cl2");
- }
-}
http://git-wip-us.apache.org/repos/asf/atlas/blob/0877e47c/repository/src/test/java/org/apache/atlas/repository/impexp/ImportTransformerTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/impexp/ImportTransformerTest.java b/repository/src/test/java/org/apache/atlas/repository/impexp/ImportTransformerTest.java
deleted file mode 100644
index 7ce34c8..0000000
--- a/repository/src/test/java/org/apache/atlas/repository/impexp/ImportTransformerTest.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.atlas.repository.impexp;
-
-import org.apache.atlas.exception.AtlasBaseException;
-import org.testng.annotations.Test;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-public class ImportTransformerTest {
-
- @Test
- public void createWithCorrectParameters() throws AtlasBaseException, IllegalAccessException {
- String param1 = "@cl1";
- String param2 = "@cl2";
-
- ImportTransformer e = ImportTransformer.getTransformer(String.format("%s:%s:%s", "replace", param1, param2));
-
- assertTrue(e instanceof ImportTransformer.Replace);
- assertEquals(((ImportTransformer.Replace)e).getToFindStr(), param1);
- assertEquals(((ImportTransformer.Replace)e).getReplaceStr(), param2);
- }
-
- @Test
- public void createSeveralWithCorrectParameters() throws AtlasBaseException, IllegalAccessException {
- String param1 = "@cl1";
- String param2 = "@cl2";
-
- ImportTransformer e1 = ImportTransformer.getTransformer(String.format("%s:%s:%s", "replace", param1, param2));
- ImportTransformer e2 = ImportTransformer.getTransformer(String.format("replace:tt1:tt2"));
-
- assertTrue(e1 instanceof ImportTransformer.Replace);
- assertEquals(((ImportTransformer.Replace)e1).getToFindStr(), param1);
- assertEquals(((ImportTransformer.Replace)e1).getReplaceStr(), param2);
-
- assertTrue(e2 instanceof ImportTransformer.Replace);
- assertEquals(((ImportTransformer.Replace)e2).getToFindStr(), "tt1");
- assertEquals(((ImportTransformer.Replace)e2).getReplaceStr(), "tt2");
- }
-
- @Test
- public void createWithDefaultParameters() throws AtlasBaseException {
- ImportTransformer e1 = ImportTransformer.getTransformer("replace:@cl1");
- ImportTransformer e2 = ImportTransformer.getTransformer("replace");
-
- assertTrue(e1 instanceof ImportTransformer.Replace);
- assertEquals(((ImportTransformer.Replace)e1).getToFindStr(), "@cl1");
- assertEquals(((ImportTransformer.Replace)e1).getReplaceStr(), "");
-
- assertTrue(e2 instanceof ImportTransformer.Replace);
- assertEquals(((ImportTransformer.Replace)e2).getToFindStr(), "");
- assertEquals(((ImportTransformer.Replace)e2).getReplaceStr(), "");
- }
-
- @Test
- public void applyLowercaseTransformer() throws AtlasBaseException {
- ImportTransformer e = ImportTransformer.getTransformer("lowercase");
-
- assertEquals(e.apply("@CL1"), "@cl1");
- assertEquals(e.apply("@cl1"), "@cl1");
- assertEquals(e.apply(""), ""); // empty string
- assertEquals(e.apply(null), null); // null value: no change
- assertEquals(e.apply(Integer.valueOf(5)), Integer.valueOf(5)); // non-string value: no change
- }
-
- @Test
- public void applyUppercaseTransformer() throws AtlasBaseException {
- ImportTransformer e = ImportTransformer.getTransformer("uppercase");
-
- assertEquals(e.apply("@CL1"), "@CL1");
- assertEquals(e.apply("@cl1"), "@CL1");
- assertEquals(e.apply(""), ""); // empty string
- assertEquals(e.apply(null), null); // null value: no change
- assertEquals(e.apply(Integer.valueOf(5)), Integer.valueOf(5)); // non-string value: no change
- }
-
- @Test
- public void applyReplaceTransformer1() throws AtlasBaseException {
- ImportTransformer e = ImportTransformer.getTransformer("replace:@cl1:@cl2");
-
- assertEquals(e.apply("@cl1"), "@cl2");
- assertEquals(e.apply("default@cl1"), "default@cl2");
- assertEquals(e.apply("@cl11"), "@cl21");
- assertEquals(e.apply("@cl2"), "@cl2");
- assertEquals(e.apply(""), ""); // empty string
- assertEquals(e.apply(null), null); // null value
- assertEquals(e.apply(Integer.valueOf(5)), Integer.valueOf(5)); // non-string value: no change
- }
-
- @Test
- public void applyReplaceTransformer2() throws AtlasBaseException {
- ImportTransformer e = ImportTransformer.getTransformer("replace:@cl1");
-
- assertEquals(e.apply("@cl1"), "");
- assertEquals(e.apply("default@cl1"), "default");
- assertEquals(e.apply("@cl11"), "1");
- assertEquals(e.apply("@cl2"), "@cl2");
- assertEquals(e.apply(""), ""); // empty string
- assertEquals(e.apply(null), null); // null value
- assertEquals(e.apply(Integer.valueOf(5)), Integer.valueOf(5)); // non-string value: no change
- }
-
- @Test
- public void applyReplaceTransformer3() throws AtlasBaseException {
- ImportTransformer e = ImportTransformer.getTransformer("replace");
-
- assertEquals(e.apply("@cl1"), "@cl1");
- assertEquals(e.apply("default@cl1"), "default@cl1");
- assertEquals(e.apply("@cl11"), "@cl11");
- assertEquals(e.apply("@cl2"), "@cl2");
- assertEquals(e.apply(""), ""); // empty string
- assertEquals(e.apply(null), null); // null value
- assertEquals(e.apply(Integer.valueOf(5)), Integer.valueOf(5)); // non-string value: no change
- }
-}
http://git-wip-us.apache.org/repos/asf/atlas/blob/0877e47c/repository/src/test/java/org/apache/atlas/repository/impexp/ImportTransformsTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/impexp/ImportTransformsTest.java b/repository/src/test/java/org/apache/atlas/repository/impexp/ImportTransformsTest.java
deleted file mode 100644
index ccedeb1..0000000
--- a/repository/src/test/java/org/apache/atlas/repository/impexp/ImportTransformsTest.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.atlas.repository.impexp;
-
-import org.apache.atlas.exception.AtlasBaseException;
-import org.apache.atlas.model.instance.AtlasEntity;
-import org.apache.atlas.model.instance.AtlasEntity.AtlasEntityWithExtInfo;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-
-public class ImportTransformsTest {
- private final String qualifiedName = "qualifiedName";
- private final String lowerCaseCL1 = "@cl1";
- private final String lowerCaseCL2 = "@cl2";
- private final String jsonTransforms = "{ \"hive_table\": { \"qualifiedName\":[ \"lowercase\", \"replace:@cl1:@cl2\" ] } }";
-
- private ImportTransforms transform;
-
- @BeforeTest
- public void setup() throws AtlasBaseException {
- transform = ImportTransforms.fromJson(jsonTransforms);
- }
-
- @Test
- public void transformEntityWith2Transforms() throws AtlasBaseException {
- AtlasEntity entity = getHiveTableAtlasEntity();
- String attrValue = (String) entity.getAttribute(qualifiedName);
-
- transform.apply(entity);
-
- assertEquals(entity.getAttribute(qualifiedName), applyDefaultTransform(attrValue));
- }
-
- @Test
- public void transformEntityWithExtInfo() throws AtlasBaseException {
- addColumnTransform(transform);
-
- AtlasEntityWithExtInfo entityWithExtInfo = getAtlasEntityWithExtInfo();
- AtlasEntity entity = entityWithExtInfo.getEntity();
- String attrValue = (String) entity.getAttribute(qualifiedName);
- String[] expectedValues = getExtEntityExpectedValues(entityWithExtInfo);
-
- transform.apply(entityWithExtInfo);
-
- assertEquals(entityWithExtInfo.getEntity().getAttribute(qualifiedName), applyDefaultTransform(attrValue));
-
- for (int i = 0; i < expectedValues.length; i++) {
- assertEquals(entityWithExtInfo.getReferredEntities().get(Integer.toString(i)).getAttribute(qualifiedName), expectedValues[i]);
- }
- }
-
- @Test
- public void transformEntityWithExtInfoNullCheck() throws AtlasBaseException {
- addColumnTransform(transform);
-
- AtlasEntityWithExtInfo entityWithExtInfo = getAtlasEntityWithExtInfo();
-
- entityWithExtInfo.setReferredEntities(null);
-
- AtlasEntityWithExtInfo transformedEntityWithExtInfo = transform.apply(entityWithExtInfo);
-
- assertNotNull(transformedEntityWithExtInfo);
- assertEquals(entityWithExtInfo.getEntity().getGuid(), transformedEntityWithExtInfo.getEntity().getGuid());
- }
-
- private String[] getExtEntityExpectedValues(AtlasEntityWithExtInfo entityWithExtInfo) {
- String[] ret = new String[entityWithExtInfo.getReferredEntities().size()];
-
- for (int i = 0; i < ret.length; i++) {
- String attrValue = (String) entityWithExtInfo.getReferredEntities().get(Integer.toString(i)).getAttribute(qualifiedName);
-
- ret[i] = attrValue.replace(lowerCaseCL1, lowerCaseCL2);
- }
-
- return ret;
- }
-
- private void addColumnTransform(ImportTransforms transform) throws AtlasBaseException {
- Map<String, List<ImportTransformer>> tr = new HashMap<>();
- List<ImportTransformer> trList = new ArrayList<>();
-
- trList.add(ImportTransformer.getTransformer(String.format("replace:%s:%s", lowerCaseCL1, lowerCaseCL2)));
-
- tr.put(qualifiedName, trList);
-
- transform.getTransforms().put("hive_column", tr);
- }
-
- private String applyDefaultTransform(String attrValue) {
- return attrValue.toLowerCase().replace(lowerCaseCL1, lowerCaseCL2);
- }
-
- private AtlasEntity getHiveTableAtlasEntity() {
- AtlasEntity entity = new AtlasEntity("hive_table");
-
- Map<String, Object> attributes = new HashMap<>();
- attributes.put(qualifiedName, "TABLE1.default" + lowerCaseCL1);
- attributes.put("dbname", "someDB");
- attributes.put("name", "somename");
-
- entity.setAttributes(attributes);
- return entity;
- }
-
- private AtlasEntity getHiveColumnAtlasEntity(int index) {
- AtlasEntity entity = new AtlasEntity("hive_column");
-
- Map<String, Object> attributes = new HashMap<>();
- attributes.put(qualifiedName, String.format("col%s.TABLE1.default@cl1", index));
- attributes.put("name", "col" + index);
-
- entity.setAttributes(attributes);
- return entity;
- }
-
- private AtlasEntityWithExtInfo getAtlasEntityWithExtInfo() {
- AtlasEntityWithExtInfo ret = new AtlasEntityWithExtInfo(getHiveTableAtlasEntity());
-
- Map<String, AtlasEntity> referredEntities = new HashMap<>();
- referredEntities.put("0", getHiveColumnAtlasEntity(1));
- referredEntities.put("1", getHiveColumnAtlasEntity(2));
- referredEntities.put("2", getHiveColumnAtlasEntity(3));
-
- ret.setReferredEntities(referredEntities);
-
- return ret;
- }
-}
http://git-wip-us.apache.org/repos/asf/atlas/blob/0877e47c/repository/src/test/java/org/apache/atlas/repository/impexp/TypeAttributeDifferenceTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/impexp/TypeAttributeDifferenceTest.java b/repository/src/test/java/org/apache/atlas/repository/impexp/TypeAttributeDifferenceTest.java
deleted file mode 100644
index 87cb1d4..0000000
--- a/repository/src/test/java/org/apache/atlas/repository/impexp/TypeAttributeDifferenceTest.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.atlas.repository.impexp;
-
-import org.apache.atlas.model.typedef.AtlasBaseTypeDef;
-import org.apache.atlas.model.typedef.AtlasEntityDef;
-import org.apache.atlas.model.typedef.AtlasEnumDef;
-import org.apache.atlas.model.typedef.AtlasStructDef;
-import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class TypeAttributeDifferenceTest {
- private TypeAttributeDifference typeAttributeDifference;
-
- @BeforeClass
- public void setup() {
- typeAttributeDifference = new TypeAttributeDifference(null, null);
- }
-
- private List<AtlasEnumDef.AtlasEnumElementDef> getEnumElementDefs(int startIndex, String... names) {
- int i = startIndex;
- List<AtlasEnumDef.AtlasEnumElementDef> list = new ArrayList<>();
- for (String s: names) {
- list.add(new AtlasEnumDef.AtlasEnumElementDef(s, s, i++));
- }
-
- return list;
- }
-
- private List<AtlasStructDef.AtlasAttributeDef> getAtlasAttributeDefs(String... names) {
- List<AtlasStructDef.AtlasAttributeDef> list = new ArrayList<>();
- for (String s : names) {
- list.add(new AtlasStructDef.AtlasAttributeDef(s, AtlasBaseTypeDef.ATLAS_TYPE_STRING));
- }
-
- return list;
- }
-
- private AtlasEntityDef getAtlasEntityDefWithAttributes(String... attributeNames) {
- AtlasEntityDef e = new AtlasEntityDef();
- for (AtlasStructDef.AtlasAttributeDef a : getAtlasAttributeDefs(attributeNames)) {
- e.addAttribute(a);
- }
-
- return e;
- }
-
- @Test
- public void entityDefWithNoAttributes() throws Exception {
- AtlasEntityDef existing = new AtlasEntityDef();
- AtlasEntityDef incoming = new AtlasEntityDef();
- List<AtlasStructDef.AtlasAttributeDef> expectedAttributes = new ArrayList<>();
- List<AtlasStructDef.AtlasAttributeDef> actualAttributes = invokeGetAttributesAbsentInExisting(existing, incoming);
-
- Assert.assertEquals(actualAttributes, expectedAttributes);
- }
-
- private List<AtlasStructDef.AtlasAttributeDef> invokeGetAttributesAbsentInExisting(AtlasStructDef existing, AtlasStructDef incoming) throws Exception {
- return typeAttributeDifference.getElementsAbsentInExisting(existing, incoming);
- }
-
- private List<AtlasEnumDef.AtlasEnumElementDef> invokeGetAttributesAbsentInExisting(AtlasEnumDef existing, AtlasEnumDef incoming) throws Exception {
- return typeAttributeDifference.getElementsAbsentInExisting(existing, incoming);
- }
-
- private AtlasEnumDef getAtlasEnumWithAttributes(String... elements) {
- AtlasEnumDef enumDef = new AtlasEnumDef();
- for (AtlasEnumDef.AtlasEnumElementDef ed : getEnumElementDefs(0, elements)) {
- enumDef.addElement(ed);
- }
-
- return enumDef;
- }
-
- @Test
- public void bothSame_DifferenceIsEmptyList() throws Exception {
- AtlasEntityDef existing = getAtlasEntityDefWithAttributes("name", "qualifiedName");
- AtlasEntityDef incoming = getAtlasEntityDefWithAttributes("name", "qualifiedName");
-
- List<AtlasStructDef.AtlasAttributeDef> expectedAttributes = getAtlasAttributeDefs();
- List<AtlasStructDef.AtlasAttributeDef> actualAttributes = invokeGetAttributesAbsentInExisting(existing, incoming);
-
- Assert.assertEquals(actualAttributes, expectedAttributes);
- }
-
- @Test
- public void different_ReturnsDifference() throws Exception {
- AtlasEntityDef existing = getAtlasEntityDefWithAttributes("name");
- AtlasEntityDef incoming = getAtlasEntityDefWithAttributes("name", "qualifiedName");
- List<AtlasStructDef.AtlasAttributeDef> expectedAttributes = getAtlasAttributeDefs( "qualifiedName");
-
- List<AtlasStructDef.AtlasAttributeDef> actualAttributes = invokeGetAttributesAbsentInExisting(existing, incoming);
- Assert.assertEquals(actualAttributes, expectedAttributes);
- }
-
- @Test
- public void differentSubset_ReturnsDifference() throws Exception {
- AtlasEntityDef existing = getAtlasEntityDefWithAttributes("name", "qualifiedName");
- AtlasEntityDef incoming = getAtlasEntityDefWithAttributes("name");
- List<AtlasStructDef.AtlasAttributeDef> actualAttributes = invokeGetAttributesAbsentInExisting(existing, incoming);
-
- List<AtlasStructDef.AtlasAttributeDef> expectedAttributes = getAtlasAttributeDefs();
- Assert.assertEquals(actualAttributes, expectedAttributes);
- }
-
- @Test
- public void differentEnumDef_ReturnsDifference () throws Exception {
- AtlasEnumDef existing = getAtlasEnumWithAttributes("Alpha", "Bravo");
- AtlasEnumDef incoming = getAtlasEnumWithAttributes("Alpha", "Bravo", "Delta", "Echo");
- List<AtlasEnumDef.AtlasEnumElementDef> actualAttributes = invokeGetAttributesAbsentInExisting(existing, incoming);
-
- List<AtlasEnumDef.AtlasEnumElementDef> expectedAttributes = getEnumElementDefs(2, "Delta", "Echo");
- Assert.assertEquals(actualAttributes, expectedAttributes);
- }
-
- @Test
- public void differentEnumDefs_ReturnsDifference () throws Exception {
- AtlasEnumDef existing = getAtlasEnumWithAttributes("Alpha", "Bravo");
- AtlasEnumDef incoming = getAtlasEnumWithAttributes("Alpha", "Bravo", "Delta", "Echo");
- boolean ret = invokeUpdate(existing, incoming);
-
- List<AtlasEnumDef.AtlasEnumElementDef> expectedAttributes = getEnumElementDefs(0, "Alpha", "Bravo", "Delta", "Echo");
-
- Assert.assertTrue(ret, "Update took place");
- Assert.assertEquals(existing.getElementDefs(), expectedAttributes);
- }
-
- private boolean invokeUpdate(AtlasEnumDef existing, AtlasEnumDef incoming) throws Exception {
- return typeAttributeDifference.addElements(existing, incoming);
- }
-}
http://git-wip-us.apache.org/repos/asf/atlas/blob/0877e47c/repository/src/test/java/org/apache/atlas/repository/impexp/UniqueListTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/impexp/UniqueListTest.java b/repository/src/test/java/org/apache/atlas/repository/impexp/UniqueListTest.java
deleted file mode 100644
index 93aa518..0000000
--- a/repository/src/test/java/org/apache/atlas/repository/impexp/UniqueListTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.atlas.repository.impexp;
-
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import static org.testng.Assert.assertEquals;
-
-public class UniqueListTest {
- private final String firstElement = "firstElement";
- private ExportService.UniqueList<String> uniqueList;
-
- @BeforeClass
- public void setup() {
- uniqueList = new ExportService.UniqueList();
- uniqueList.add(firstElement);
- uniqueList.add("def");
- uniqueList.add("firstElement");
- uniqueList.add("ghi");
- }
-
- @Test
- public void add3Elements_ListHas2() {
- assertEquals(3, uniqueList.size());
- }
-
- @Test
- public void addAllList_ListHas2() {
- ExportService.UniqueList<String> uniqueList2 = new ExportService.UniqueList<>();
- uniqueList2.addAll(uniqueList);
-
- assertEquals(3, uniqueList2.size());
- }
-
- @Test
- public void attemptClear_SizeIsZero() {
- ExportService.UniqueList<String> uniqueList2 = new ExportService.UniqueList<>();
- uniqueList2.addAll(uniqueList);
- uniqueList2.clear();
-
- assertEquals(0, uniqueList2.size());
- }
-
- @Test
- public void attemptOneRemove_SizeIsReduced() {
- ExportService.UniqueList<String> uniqueList2 = new ExportService.UniqueList<>();
- uniqueList2.addAll(uniqueList);
- String removedElement = uniqueList2.remove(0);
-
- assertEquals(2, uniqueList2.size());
- assertEquals(firstElement, removedElement);
- }
-}
http://git-wip-us.apache.org/repos/asf/atlas/blob/0877e47c/repository/src/test/java/org/apache/atlas/repository/impexp/ZipFileResourceTestUtils.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/impexp/ZipFileResourceTestUtils.java b/repository/src/test/java/org/apache/atlas/repository/impexp/ZipFileResourceTestUtils.java
deleted file mode 100644
index 5ab8c01..0000000
--- a/repository/src/test/java/org/apache/atlas/repository/impexp/ZipFileResourceTestUtils.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.atlas.repository.impexp;
-
-import com.google.common.collect.Sets;
-import org.apache.atlas.RequestContextV1;
-import org.apache.atlas.TestUtilsV2;
-import org.apache.atlas.exception.AtlasBaseException;
-import org.apache.atlas.model.impexp.AtlasExportResult;
-import org.apache.atlas.model.impexp.AtlasImportRequest;
-import org.apache.atlas.model.impexp.AtlasImportResult;
-import org.apache.atlas.model.typedef.AtlasTypesDef;
-import org.apache.atlas.repository.store.bootstrap.AtlasTypeDefStoreInitializer;
-import org.apache.atlas.store.AtlasTypeDefStore;
-import org.apache.atlas.type.AtlasType;
-import org.apache.atlas.type.AtlasTypeRegistry;
-import org.apache.atlas.utils.TestResourceFileUtils;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-public class ZipFileResourceTestUtils {
- public static final Logger LOG = LoggerFactory.getLogger(ZipFileResourceTestUtils.class);
-
- public static FileInputStream getFileInputStream(String fileName) {
- return TestResourceFileUtils.getFileInputStream(fileName);
- }
-
- public static String getModelJson(String fileName) throws IOException {
- String ret = null;
- File topModelsDir = new File(System.getProperty("user.dir") + "/../addons/models");
- File[] topModelsDirContents = topModelsDir.exists() ? topModelsDir.listFiles() : null;
-
- assertTrue(topModelsDirContents != null, topModelsDir.getAbsolutePath() + ": unable to find/read directory");
- if(topModelsDirContents != null) {
- Arrays.sort(topModelsDirContents);
- for (File modelDir : topModelsDirContents) {
- if (modelDir.exists() && modelDir.isDirectory()) {
- ret = getFileContents(modelDir, fileName);
-
- if (ret != null) {
- break;
- }
- }
- }
-
- if (ret == null) {
- ret = getFileContents(topModelsDir, fileName);
- }
-
- assertTrue(ret != null, fileName + ": unable to find model file");
- } else {
- throw new IOException("Unable to retrieve model contents.");
- }
-
- return ret;
- }
-
- public static String getFileContents(File dir, String fileName) throws IOException {
- if (dir.exists() && dir.isDirectory()) {
- File file = new File(dir, fileName);
-
- if (file.exists() && file.isFile()) {
- return FileUtils.readFileToString(file);
- }
- }
-
- return null;
- }
-
- public static String getModelJsonFromResources(String fileName) throws IOException {
- String filePath = TestResourceFileUtils.getTestFilePath(fileName);
- File f = new File(filePath);
- String s = FileUtils.readFileToString(f);
- assertFalse(StringUtils.isEmpty(s), "Model file read correctly from resources!");
-
- return s;
- }
-
- public static Object[][] getZipSource(String fileName) throws IOException {
- FileInputStream fs = ZipFileResourceTestUtils.getFileInputStream(fileName);
-
- return new Object[][]{{new ZipSource(fs)}};
- }
-
-
- public static void verifyImportedEntities(List<String> creationOrder, List<String> processedEntities) {
- Set<String> lhs = com.google.common.collect.Sets.newHashSet(creationOrder);
- Set<String> rhs = com.google.common.collect.Sets.newHashSet(processedEntities);
- Set<String> difference = Sets.difference(lhs, rhs);
-
- assertNotNull(difference);
- assertEquals(difference.size(), 0);
- }
-
- public static void verifyImportedMetrics(AtlasExportResult exportResult, AtlasImportResult importResult) {
- Map<String, Integer> metricsForCompare = getImportMetricsForCompare(importResult);
- for (Map.Entry<String, Integer> entry : exportResult.getMetrics().entrySet()) {
- if(entry.getKey().startsWith("entity") == false ||
- entry.getKey().contains("withExtInfo") ||
- entry.getKey().contains("Column") ||
- entry.getKey().contains("StorageDesc")) continue;
-
- assertTrue(metricsForCompare.containsKey(entry.getKey()), entry.getKey());
- assertEquals(entry.getValue(), metricsForCompare.get(entry.getKey()), entry.getKey());
- }
- }
-
- private static Map<String,Integer> getImportMetricsForCompare(AtlasImportResult result) {
- Map<String, Integer> r = new HashMap<>();
- for (Map.Entry<String, Integer> entry : result.getMetrics().entrySet()) {
- r.put(entry.getKey().replace(":updated", "").replace(":created", ""), entry.getValue());
- }
-
- return r;
- }
-
-
- public static void loadModelFromJson(String fileName, AtlasTypeDefStore typeDefStore, AtlasTypeRegistry typeRegistry) throws IOException, AtlasBaseException {
- AtlasTypesDef typesFromJson = getAtlasTypesDefFromFile(fileName);
- createTypesAsNeeded(typesFromJson, typeDefStore, typeRegistry);
- }
-
- public static void loadModelFromResourcesJson(String fileName, AtlasTypeDefStore typeDefStore, AtlasTypeRegistry typeRegistry) throws IOException, AtlasBaseException {
- AtlasTypesDef typesFromJson = getAtlasTypesDefFromResourceFile(fileName);
- createTypesAsNeeded(typesFromJson, typeDefStore, typeRegistry);
- }
-
- private static void createTypesAsNeeded(AtlasTypesDef typesFromJson, AtlasTypeDefStore typeDefStore, AtlasTypeRegistry typeRegistry) throws AtlasBaseException {
- if(typesFromJson == null) {
- return;
- }
-
- AtlasTypesDef typesToCreate = AtlasTypeDefStoreInitializer.getTypesToCreate(typesFromJson, typeRegistry);
- if (typesToCreate != null && !typesToCreate.isEmpty()) {
- typeDefStore.createTypesDef(typesToCreate);
- }
- }
-
- private static AtlasTypesDef getAtlasTypesDefFromFile(String fileName) throws IOException {
- String sampleTypes = ZipFileResourceTestUtils.getModelJson(fileName);
- if(sampleTypes == null) return null;
- return AtlasType.fromJson(sampleTypes, AtlasTypesDef.class);
- }
-
- private static AtlasTypesDef getAtlasTypesDefFromResourceFile(String fileName) throws IOException {
- String sampleTypes = getModelJsonFromResources(fileName);
- return AtlasType.fromJson(sampleTypes, AtlasTypesDef.class);
- }
-
- public static AtlasImportRequest getDefaultImportRequest() {
- return new AtlasImportRequest();
- }
-
-
- public static AtlasImportResult runImportWithParameters(ImportService importService, AtlasImportRequest request, ZipSource source) throws AtlasBaseException, IOException {
- final String requestingIP = "1.0.0.0";
- final String hostName = "localhost";
- final String userName = "admin";
-
- AtlasImportResult result = importService.run(source, request, userName, hostName, requestingIP);
- assertEquals(result.getOperationStatus(), AtlasImportResult.OperationStatus.SUCCESS);
- return result;
- }
-
- public static AtlasImportResult runImportWithNoParameters(ImportService importService, ZipSource source) throws AtlasBaseException, IOException {
- final String requestingIP = "1.0.0.0";
- final String hostName = "localhost";
- final String userName = "admin";
-
- AtlasImportResult result = importService.run(source, userName, hostName, requestingIP);
- assertEquals(result.getOperationStatus(), AtlasImportResult.OperationStatus.SUCCESS);
- return result;
- }
-
- public static void runAndVerifyQuickStart_v1_Import(ImportService importService, ZipSource zipSource) throws AtlasBaseException, IOException {
- AtlasExportResult exportResult = zipSource.getExportResult();
- List<String> creationOrder = zipSource.getCreationOrder();
-
- RequestContextV1.clear();
- RequestContextV1.get().setUser(TestUtilsV2.TEST_USER);
-
- AtlasImportRequest request = getDefaultImportRequest();
- AtlasImportResult result = runImportWithParameters(importService, request, zipSource);
-
- assertNotNull(result);
- verifyImportedMetrics(exportResult, result);
- verifyImportedEntities(creationOrder, result.getProcessedEntities());
- }
-}
http://git-wip-us.apache.org/repos/asf/atlas/blob/0877e47c/repository/src/test/java/org/apache/atlas/repository/impexp/ZipSinkTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/impexp/ZipSinkTest.java b/repository/src/test/java/org/apache/atlas/repository/impexp/ZipSinkTest.java
deleted file mode 100644
index e8bbeb5..0000000
--- a/repository/src/test/java/org/apache/atlas/repository/impexp/ZipSinkTest.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.repository.impexp;
-
-
-import org.apache.atlas.exception.AtlasBaseException;
-import org.apache.atlas.model.impexp.AtlasExportRequest;
-import org.apache.atlas.model.impexp.AtlasExportResult;
-import org.apache.atlas.model.instance.AtlasEntity;
-import org.apache.atlas.model.instance.AtlasObjectId;
-import org.apache.atlas.type.AtlasType;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-
-import static org.testng.Assert.*;
-
-public class ZipSinkTest {
- private ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
- private ZipSink zipSink;
- private List<String> defaultExportOrder = new ArrayList<>(Arrays.asList("a", "b", "c", "d"));
- private AtlasExportResult defaultExportResult;
- private String knownEntityGuidFormat = "111-222-333-%s";
-
-
- private void initZipSinkWithExportOrder() throws AtlasBaseException {
- zipSink = new ZipSink(byteArrayOutputStream);
- zipSink.setExportOrder(defaultExportOrder);
- zipSink.close();
- }
-
- private AtlasExportResult getDefaultExportResult() {
- AtlasExportRequest request = new AtlasExportRequest();
-
- List<AtlasObjectId> itemsToExport = new ArrayList<>();
- itemsToExport.add(new AtlasObjectId("hive_db", "qualifiedName", "default"));
- request.setItemsToExport(itemsToExport);
-
- defaultExportResult = new AtlasExportResult(request, "admin", "1.0.0.0", "root", 100);
- return defaultExportResult;
- }
-
- private ZipInputStream getZipInputStreamForDefaultExportOrder() throws AtlasBaseException {
- initZipSinkWithExportOrder();
-
- ByteArrayInputStream bis = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
- return new ZipInputStream(bis);
- }
-
- private String getZipEntryAsStream(ZipInputStream zis) throws IOException {
- byte[] buf = new byte[1024];
- int n = 0;
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- while ((n = zis.read(buf, 0, 1024)) > -1) {
- bos.write(buf, 0, n);
- }
-
- Assert.assertNotNull(bos);
- return bos.toString();
- }
-
- @Test
- public void correctInit_succeeds() throws AtlasBaseException {
- initZipSinkWithExportOrder();
- assertTrue(true);
- Assert.assertNotNull(zipSink);
- }
-
- @Test
- public void zipWithExactlyOneEntry_succeeds() {
-
- try {
- ZipInputStream zis = getZipInputStreamForDefaultExportOrder();
-
- try {
- Assert.assertNotNull(zis.getNextEntry());
- Assert.assertNull(zis.getNextEntry());
- } catch (IOException e) {
-
- assertTrue(false);
- }
- } catch (AtlasBaseException e) {
-
- assertTrue(false, "No exception should be thrown.");
- }
- }
-
- @Test
- public void verifyExportOrderEntryName_verifies() throws AtlasBaseException, IOException {
-
- ZipInputStream zis = getZipInputStreamForDefaultExportOrder();
- ZipEntry ze = zis.getNextEntry();
-
- assertEquals(ze.getName().replace(".json", ""), ZipExportFileNames.ATLAS_EXPORT_ORDER_NAME.toString());
- }
-
- @Test
- public void zipWithExactlyOneEntry_ContentsVerified() throws AtlasBaseException, IOException {
-
- ZipInputStream zis = getZipInputStreamForDefaultExportOrder();
- zis.getNextEntry();
-
- assertEquals(getZipEntryAsStream(zis).replace("\"", "'"), "['a','b','c','d']");
- }
-
- @Test
- public void zipWithExactlyTwoEntries_ContentsVerified() throws AtlasBaseException, IOException {
-
- ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
- useZipSinkToCreateEntries(byteOutputStream);
-
- ByteArrayInputStream bis = new ByteArrayInputStream(byteOutputStream.toByteArray());
- ZipInputStream zipStream = new ZipInputStream(bis);
- ZipEntry entry = zipStream.getNextEntry();
-
- assertEquals(getZipEntryAsStream(zipStream), "[\"a\",\"b\",\"c\",\"d\"]");
- assertEquals(entry.getName().replace(".json", ""), ZipExportFileNames.ATLAS_EXPORT_ORDER_NAME.toString());
-
- entry = zipStream.getNextEntry();
- assertEquals(entry.getName().replace(".json", ""), ZipExportFileNames.ATLAS_EXPORT_INFO_NAME.toString());
- assertTrue(compareJsonWithObject(getZipEntryAsStream(zipStream), defaultExportResult));
- }
-
- @Test
- public void recordsEntityEntries() throws AtlasBaseException {
- ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
- ZipSink zs = new ZipSink(byteOutputStream);
-
- AtlasEntity entity = new AtlasEntity();
- entity.setGuid(String.format(knownEntityGuidFormat, 0));
-
- zs.add(entity);
- assertTrue(zs.hasEntity(String.format(knownEntityGuidFormat, 0)));
-
- zs.close();
- }
-
- @Test
- public void recordsEntityWithExtInfoEntries() throws AtlasBaseException {
- final int max_entries = 3;
- ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
- ZipSink zs = new ZipSink(byteOutputStream);
-
- AtlasEntity entity = new AtlasEntity();
- entity.setGuid(String.format(knownEntityGuidFormat, 0));
-
- AtlasEntity.AtlasEntityWithExtInfo entityWithExtInfo = new AtlasEntity.AtlasEntityWithExtInfo(entity);
- addReferredEntities(entityWithExtInfo, max_entries);
-
- zs.add(entityWithExtInfo);
- for (int i = 0; i <= max_entries; i++) {
- String g = String.format(knownEntityGuidFormat, i);
- assertTrue(zs.hasEntity(g));
- }
-
- zs.close();
- }
-
- private void addReferredEntities(AtlasEntity.AtlasEntityWithExtInfo entityWithExtInfo, int maxEntries) {
-
- for (int i = 1; i <= maxEntries; i++) {
- AtlasEntity entity1 = new AtlasEntity();
- entity1.setGuid(String.format(knownEntityGuidFormat, i));
- entityWithExtInfo.addReferredEntity(entity1);
- }
- }
-
- @Test
- public void recordsDoesNotRecordEntityEntries() throws AtlasBaseException {
- initZipSinkWithExportOrder();
-
- assertNotNull(zipSink);
- assertFalse(zipSink.hasEntity(ZipExportFileNames.ATLAS_EXPORT_ORDER_NAME.toString()));
- }
-
- private void useZipSinkToCreateEntries(ByteArrayOutputStream byteOutputStream) throws AtlasBaseException {
- ZipSink zs = new ZipSink(byteOutputStream);
- zs.setExportOrder(defaultExportOrder);
- zs.setResult(getDefaultExportResult());
- zs.close();
- }
-
- private boolean compareJsonWithObject(String s, AtlasExportResult defaultExportResult) {
- String json = AtlasType.toJson(defaultExportResult);
- return json.equals(s);
- }
-}