Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,8 @@ public void initialize() {
tableRuntimeMeta.getTableId());
continue;
}
List<TableRuntimeState> states = statesMap.get(tableRuntimeMeta.getTableId());
List<TableRuntimeState> states =
statesMap.getOrDefault(tableRuntimeMeta.getTableId(), Collections.emptyList());
Optional<TableRuntime> tableRuntime =
createTableRuntime(identifier, tableRuntimeMeta, states);
if (!tableRuntime.isPresent()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,37 +19,25 @@
package org.apache.amoro.formats;

import org.apache.amoro.AmoroCatalog;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.rules.TemporaryFolder;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.io.TempDir;

import java.io.IOException;
import java.io.File;

public abstract class AmoroCatalogTestBase {

@Rule public TemporaryFolder temp = new TemporaryFolder();

protected AmoroCatalogTestHelper<?> catalogTestHelper;
@TempDir protected File temp;

protected AmoroCatalog amoroCatalog;

protected Object originalCatalog;

public AmoroCatalogTestBase(AmoroCatalogTestHelper<?> catalogTestHelper) {
this.catalogTestHelper = catalogTestHelper;
}

@Before
public void setupCatalog() throws IOException {
String path = temp.newFolder().getPath();
catalogTestHelper.initWarehouse(path);
this.amoroCatalog = catalogTestHelper.amoroCatalog();
this.originalCatalog = catalogTestHelper.originalCatalog();
}

@After
@AfterEach
public void cleanCatalog() {
catalogTestHelper.clean();
if (catalogTestHelper != null) {
catalogTestHelper.clean();
}
}

protected AmoroCatalogTestHelper<?> catalogTestHelper;
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,10 @@
import org.apache.amoro.AmoroTable;
import org.apache.amoro.shade.guava32.com.google.common.collect.Sets;
import org.apache.amoro.table.TableIdentifier;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;

import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
Expand All @@ -37,8 +38,15 @@ public abstract class TestAmoroCatalogBase extends AmoroCatalogTestBase {

private static final String TABLE = "table";

public TestAmoroCatalogBase(AmoroCatalogTestHelper<?> catalogTestHelper) {
super(catalogTestHelper);
protected AmoroCatalogTestHelper<?> catalogTestHelper;

@BeforeEach
public void setupCatalogHelper(AmoroCatalogTestHelper<?> helper) throws IOException {
this.catalogTestHelper = helper;
String path = temp.getPath();
catalogTestHelper.initWarehouse(path);
this.amoroCatalog = catalogTestHelper.amoroCatalog();
this.originalCatalog = catalogTestHelper.originalCatalog();
}

protected abstract void createDatabase(String dbName);
Expand All @@ -48,55 +56,49 @@ protected abstract void createTable(

protected abstract List<String> listDatabases();

@Test
public void testListDatabases() {
protected void testListDatabases() {
createDatabase(DB1);
createDatabase(DB2);
createDatabase(DB3);
HashSet<String> databases = Sets.newHashSet(amoroCatalog.listDatabases());
Assert.assertTrue(databases.contains(DB1));
Assert.assertTrue(databases.contains(DB2));
Assert.assertTrue(databases.contains(DB3));
Assertions.assertTrue(databases.contains(DB1));
Assertions.assertTrue(databases.contains(DB2));
Assertions.assertTrue(databases.contains(DB3));
}

@Test
public void testDropDatabases() {
protected void testDropDatabases() {
createDatabase(DB1);
amoroCatalog.dropDatabase(DB1);

Assert.assertFalse(amoroCatalog.listDatabases().contains(DB1));
Assertions.assertFalse(amoroCatalog.listDatabases().contains(DB1));
}

@Test
public void testCreateDatabases() {
protected void testCreateDatabases() {
amoroCatalog.createDatabase(DB1);
Assert.assertTrue(listDatabases().contains(DB1));
Assertions.assertTrue(listDatabases().contains(DB1));
}

@Test
public void testExistsDatabase() {
protected void testExistsDatabase() {
createDatabase(DB1);
Assert.assertTrue(amoroCatalog.databaseExists(DB1));
Assertions.assertTrue(amoroCatalog.databaseExists(DB1));
}

@Test
public void testExistsTable() {
protected void testExistsTable() {
createDatabase(DB1);
createTable(DB1, TABLE, new HashMap<>());
Assert.assertTrue(amoroCatalog.tableExists(DB1, TABLE));
Assertions.assertTrue(amoroCatalog.tableExists(DB1, TABLE));
}

@Test
public void testLoadTable() {
protected void testLoadTable() {
createDatabase(DB1);
Map<String, String> properties = new HashMap<>();
properties.put("key1", "value1");
createTable(DB1, TABLE, properties);
AmoroTable<?> amoroTable = amoroCatalog.loadTable(DB1, TABLE);
Assert.assertEquals(amoroTable.properties().get("key1"), "value1");
Assert.assertEquals(
amoroTable.name(), catalogTestHelper.catalogName() + "." + DB1 + "." + TABLE);
Assert.assertEquals(
amoroTable.id(), TableIdentifier.of(catalogTestHelper.catalogName(), DB1, TABLE));
Assertions.assertEquals("value1", amoroTable.properties().get("key1"));
Assertions.assertEquals(
catalogTestHelper.catalogName() + "." + DB1 + "." + TABLE, amoroTable.name());
Assertions.assertEquals(
TableIdentifier.of(catalogTestHelper.catalogName(), DB1, TABLE), amoroTable.id());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,23 +26,18 @@
import org.apache.iceberg.catalog.SupportsNamespaces;
import org.apache.iceberg.catalog.TableIdentifier;
import org.apache.iceberg.types.Types;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;

@RunWith(Parameterized.class)
public class TestIcebergAmoroCatalog extends TestAmoroCatalogBase {

public TestIcebergAmoroCatalog(AmoroCatalogTestHelper<?> amoroCatalogTestHelper) {
super(amoroCatalogTestHelper);
}

@Parameterized.Parameters(name = "{0}")
public static Object[] parameters() {
return new Object[] {IcebergHadoopCatalogTestHelper.defaultHelper()};
static Stream<AmoroCatalogTestHelper<?>> parameters() {
return Stream.of(IcebergHadoopCatalogTestHelper.defaultHelper());
}

@Override
Expand Down Expand Up @@ -79,4 +74,46 @@ protected List<String> listDatabases() {
private Catalog catalog() {
return (Catalog) originalCatalog;
}

@ParameterizedTest(name = "{0}")
@MethodSource("parameters")
public void testListDatabases(AmoroCatalogTestHelper<?> helper) throws Exception {
setupCatalogHelper(helper);
super.testListDatabases();
}

@ParameterizedTest(name = "{0}")
@MethodSource("parameters")
public void testDropDatabases(AmoroCatalogTestHelper<?> helper) throws Exception {
setupCatalogHelper(helper);
super.testDropDatabases();
}

@ParameterizedTest(name = "{0}")
@MethodSource("parameters")
public void testCreateDatabases(AmoroCatalogTestHelper<?> helper) throws Exception {
setupCatalogHelper(helper);
super.testCreateDatabases();
}

@ParameterizedTest(name = "{0}")
@MethodSource("parameters")
public void testExistsDatabase(AmoroCatalogTestHelper<?> helper) throws Exception {
setupCatalogHelper(helper);
super.testExistsDatabase();
}

@ParameterizedTest(name = "{0}")
@MethodSource("parameters")
public void testExistsTable(AmoroCatalogTestHelper<?> helper) throws Exception {
setupCatalogHelper(helper);
super.testExistsTable();
}

@ParameterizedTest(name = "{0}")
@MethodSource("parameters")
public void testLoadTable(AmoroCatalogTestHelper<?> helper) throws Exception {
setupCatalogHelper(helper);
super.testLoadTable();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,17 @@
import org.apache.amoro.table.TableIdentifier;
import org.apache.iceberg.Schema;
import org.apache.iceberg.types.Types;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;

import java.util.List;
import java.util.Map;
import java.util.stream.Stream;

@RunWith(Parameterized.class)
public class TestMixedIcebergFormatCatalog extends TestAmoroCatalogBase {

public TestMixedIcebergFormatCatalog(AmoroCatalogTestHelper<?> amoroCatalogTestHelper) {
super(amoroCatalogTestHelper);
}

@Parameterized.Parameters(name = "{0}")
public static Object[] parameters() {
return new Object[] {MixedIcebergHadoopCatalogTestHelper.defaultHelper()};
static Stream<AmoroCatalogTestHelper<?>> parameters() {
return Stream.of(MixedIcebergHadoopCatalogTestHelper.defaultHelper());
}

@Override
Expand Down Expand Up @@ -65,4 +60,46 @@ protected List<String> listDatabases() {
private MixedFormatCatalog catalog() {
return (MixedFormatCatalog) originalCatalog;
}

@ParameterizedTest(name = "{0}")
@MethodSource("parameters")
public void testListDatabases(AmoroCatalogTestHelper<?> helper) throws Exception {
setupCatalogHelper(helper);
super.testListDatabases();
}

@ParameterizedTest(name = "{0}")
@MethodSource("parameters")
public void testDropDatabases(AmoroCatalogTestHelper<?> helper) throws Exception {
setupCatalogHelper(helper);
super.testDropDatabases();
}

@ParameterizedTest(name = "{0}")
@MethodSource("parameters")
public void testCreateDatabases(AmoroCatalogTestHelper<?> helper) throws Exception {
setupCatalogHelper(helper);
super.testCreateDatabases();
}

@ParameterizedTest(name = "{0}")
@MethodSource("parameters")
public void testExistsDatabase(AmoroCatalogTestHelper<?> helper) throws Exception {
setupCatalogHelper(helper);
super.testExistsDatabase();
}

@ParameterizedTest(name = "{0}")
@MethodSource("parameters")
public void testExistsTable(AmoroCatalogTestHelper<?> helper) throws Exception {
setupCatalogHelper(helper);
super.testExistsTable();
}

@ParameterizedTest(name = "{0}")
@MethodSource("parameters")
public void testLoadTable(AmoroCatalogTestHelper<?> helper) throws Exception {
setupCatalogHelper(helper);
super.testLoadTable();
}
}