package io.airlift.airship.coordinator; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.configuration.testing.ConfigAssertions; import io.airlift.units.Duration; import org.testng.annotations.Test; import java.util.Map; import java.util.concurrent.TimeUnit; import static io.airlift.airship.coordinator.CoordinatorConfig.DEFAULT_HTTP_SHORT_NAME_PATTERN; public class TestCoordinatorConfig { @Test public void testDefaults() { ConfigAssertions.assertRecordedDefaults(ConfigAssertions.recordDefaults(CoordinatorConfig.class) .setStatusExpiration(new Duration(5, TimeUnit.SECONDS)) .setServiceInventoryCacheDir("service-inventory-cache") .setAllowDuplicateInstallationsOnAnAgent(false) .setRepositories("") .setDefaultRepositoryGroupId("") .setHttpShortNamePattern(DEFAULT_HTTP_SHORT_NAME_PATTERN) .setHttpRepoBinaryVersionPattern(null) .setHttpRepoConfigVersionPattern(null) ); } @Test public void testExplicitPropertyMappings() { Map<String, String> properties = new ImmutableMap.Builder<String, String>() .put("coordinator.status.expiration", "1m") .put("coordinator.service-inventory.cache-dir", "si-cache") .put("coordinator.allow-duplicate-installations-on-an-agent", "true") .put("coordinator.repository", "repo1,repo2,repo3") .put("coordinator.default-group-id", "group1,group2,group3") .put("coordinator.http-repo.short-name-pattern", "shortNamePattern") .put("coordinator.http-repo.binary-version-pattern", "binaryVersionPattern") .put("coordinator.http-repo.config-version-pattern", "configVersionPattern") .build(); CoordinatorConfig expected = new CoordinatorConfig() .setStatusExpiration(new Duration(1, TimeUnit.MINUTES)) .setServiceInventoryCacheDir("si-cache") .setAllowDuplicateInstallationsOnAnAgent(true) .setRepositories(ImmutableList.of("repo1", "repo2", "repo3")) .setDefaultRepositoryGroupId(ImmutableList.of("group1", "group2", "group3")) .setHttpShortNamePattern("shortNamePattern") .setHttpRepoBinaryVersionPattern("binaryVersionPattern") .setHttpRepoConfigVersionPattern("configVersionPattern"); ConfigAssertions.assertFullMapping(properties, expected); } }