public static Set<SchemaChangeEventType> resolveSchemaEvolutionOptions(
            List<String> includedSchemaEvolutionTypes, List<String> excludedSchemaEvolutionTypes) {
        List<SchemaChangeEventType> resultTypes = new ArrayList<>();

        if (includedSchemaEvolutionTypes.isEmpty()) {
            resultTypes.addAll(Arrays.asList(SchemaChangeEventTypeFamily.ALL));
        } else {
            for (String includeTag : includedSchemaEvolutionTypes) {
                resultTypes.addAll(resolveSchemaEvolutionTag(includeTag));
            }
        }

        for (String excludeTag : excludedSchemaEvolutionTypes) {
            resultTypes.removeAll(resolveSchemaEvolutionTag(excludeTag));
        }

        return new HashSet<>(resultTypes);
    }
@Test
    public void testResolveSchemaEvolutionOptions() {
        assertThat(
                        ChangeEventUtils.resolveSchemaEvolutionOptions(
                                Collections.emptyList(), Collections.emptyList()))
                .isEqualTo(
                        Sets.set(
                                TRUNCATE_TABLE,
                                RENAME_COLUMN,
                                CREATE_TABLE,
                                DROP_TABLE,
                                ALTER_COLUMN_TYPE,
                                ADD_COLUMN,
                                DROP_COLUMN));

        assertThat(
                        ChangeEventUtils.resolveSchemaEvolutionOptions(
                                Collections.emptyList(), Collections.singletonList("drop")))
                .isEqualTo(
                        Sets.set(
                                ADD_COLUMN,
                                ALTER_COLUMN_TYPE,
                                RENAME_COLUMN,
                                CREATE_TABLE,
                                TRUNCATE_TABLE));

        assertThat(
                        ChangeEventUtils.resolveSchemaEvolutionOptions(
                                Arrays.asList("create", "add"), Collections.emptyList()))
                .isEqualTo(Sets.set(ADD_COLUMN, CREATE_TABLE));

        assertThat(
                        ChangeEventUtils.resolveSchemaEvolutionOptions(
                                Collections.singletonList("column"),
                                Collections.singletonList("drop.column")))
                .isEqualTo(Sets.set(ADD_COLUMN, ALTER_COLUMN_TYPE, RENAME_COLUMN));

        assertThat(
                        ChangeEventUtils.resolveSchemaEvolutionOptions(
                                Collections.emptyList(), Collections.singletonList("drop.column")))
                .isEqualTo(
                        Sets.set(
                                ADD_COLUMN,
                                DROP_TABLE,
                                TRUNCATE_TABLE,
                                RENAME_COLUMN,
                                ALTER_COLUMN_TYPE,
                                CREATE_TABLE));
    }