blob: b70b181ce6936bd17bb84b6a1ccc9fd00dd7052d [file] [log] [blame]
/**
* 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);
}
}