public static void checkTableFeatureSupported(Protocol protocol, Metadata metadata) {
        if (protocol == null || metadata == null) {
            LOG.error("Delta table is missing protocol or metadata information.");
            ErrorReport.reportValidateException(ErrorCode.ERR_BAD_TABLE_ERROR, ErrorType.UNSUPPORTED,
                    "Delta table is missing protocol or metadata information.");
        }
        // check column mapping
        String columnMappingMode = ColumnMapping.getColumnMappingMode(metadata.getConfiguration());
        if (!columnMappingMode.equals(ColumnMapping.COLUMN_MAPPING_MODE_NONE)) {
            LOG.error("Delta table feature column mapping is not supported");
            ErrorReport.reportValidateException(ErrorCode.ERR_BAD_TABLE_ERROR, ErrorType.UNSUPPORTED,
                    "Delta table feature [column mapping] is not supported");
        }
    }
@Test
    public void testCheckTableFeatureSupported2(@Mocked Metadata metadata) {
        expectedEx.expect(ValidateException.class);
        expectedEx.expectMessage("Delta table feature [column mapping] is not supported");

        new Expectations(metadata) {
            {
                metadata.getConfiguration();
                result = ImmutableMap.of(COLUMN_MAPPING_MODE_KEY, COLUMN_MAPPING_MODE_NAME);
                minTimes = 0;
            }
        };

        DeltaUtils.checkTableFeatureSupported(new Protocol(3, 7, Lists.newArrayList(),
                Lists.newArrayList()), metadata);
    }