diff --git a/services/src/test/java/io/druid/cli/convert/ConvertPropertiesTest.java b/services/src/test/java/io/druid/cli/convert/ConvertPropertiesTest.java new file mode 100644 index 00000000000..cf7042aaa99 --- /dev/null +++ b/services/src/test/java/io/druid/cli/convert/ConvertPropertiesTest.java @@ -0,0 +1,71 @@ +/* + * Licensed to Metamarkets Group Inc. (Metamarkets) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. Metamarkets 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 io.druid.cli.convert; + +import org.apache.commons.io.FileUtils; +import org.junit.After; +import org.junit.Assert; +import org.junit.Test; +import org.junit.Rule; + +import io.airlift.command.Cli; + +import org.junit.rules.TemporaryFolder; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.Properties; + +public class ConvertPropertiesTest +{ + @Rule + public TemporaryFolder tmpFolder = new TemporaryFolder(); + + @Test + public void testConvertProperties() throws IOException + { + String oldPropertiesFile = this.getClass().getResource("/convertProps/old.properties").getFile(); + + File convertedPropertiesFile = tmpFolder.newFile(); + + Cli parser = Cli.builder("convertProps") + .withCommand(ConvertProperties.class) + .build(); + Object command = parser.parse("convertProps","-f", oldPropertiesFile,"-o", convertedPropertiesFile.getAbsolutePath()); + Assert.assertNotNull(command); + ConvertProperties convertProperties = (ConvertProperties) command; + convertProperties.run(); + + Properties actualConvertedProperties = new Properties(); + actualConvertedProperties.load(new FileInputStream(convertedPropertiesFile)); + + Properties expectedConvertedProperties = new Properties(); + expectedConvertedProperties.load(this.getClass().getResourceAsStream("/convertProps/new.properties")); + + Assert.assertEquals(expectedConvertedProperties, actualConvertedProperties); + } + + @After + public void tearDown() throws IOException + { + FileUtils.deleteDirectory(tmpFolder.getRoot()); + } +} diff --git a/services/src/test/resources/convertProps/new.properties b/services/src/test/resources/convertProps/new.properties new file mode 100644 index 00000000000..008bddd1a4e --- /dev/null +++ b/services/src/test/resources/convertProps/new.properties @@ -0,0 +1,20 @@ +druid.metadata.storage.type=mysql +druid.metadata.storage.connector.connectURI=jdbc:mysql://localhost:3306/druid +druid.metadata.storage.connector.createTables=true +druid.metadata.storage.connector.password=diurd +druid.metadata.storage.connector.user=druid + +druid.metadata.storage.tables.base=druid +druid.metadata.storage.tables.segmentTable=druid_segments +druid.metadata.storage.tables.ruleTable=druid_rules +druid.metadata.storage.tables.configTable=druid_config +druid.metadata.storage.tables.tasks=druid_tasks +druid.metadata.storage.tables.taskLog=druid_taskLog +druid.metadata.storage.tables.taskLock=druid_taskLock + +druid.indexer.storage.type=metadata +druid.publish.type=metadata + +druid.extensions.coordinates=["io.druid.extensions:mysql-metadata-storage"] + +leave.me.alone=xxx diff --git a/services/src/test/resources/convertProps/old.properties b/services/src/test/resources/convertProps/old.properties new file mode 100644 index 00000000000..8f045b335e3 --- /dev/null +++ b/services/src/test/resources/convertProps/old.properties @@ -0,0 +1,21 @@ +druid.db.connector.connectURI=jdbc:mysql://localhost:3306/druid +druid.db.connector.createTables=true +druid.db.connector.password=diurd +druid.db.connector.user=druid +druid.db.connector.useValidationQuery=false +druid.db.connector.validationQuery=SELECT 1 + +druid.db.tables.base=druid +druid.db.tables.segmentTable=druid_segments +druid.db.tables.ruleTable=druid_rules +druid.db.tables.configTable=druid_config +druid.db.tables.tasks=druid_tasks +druid.db.tables.taskLog=druid_taskLog +druid.db.tables.taskLock=druid_taskLock + +druid.indexer.storage.type=db +druid.publish.type=db + +druid.extensions.coordinates=[] + +leave.me.alone=xxx