package com.xiaomi.infra.galaxy.fds.android;
import org.junit.Assert;
import org.junit.Test;
/**
* Created by zhangjunbin on 12/29/14.
*/
public class TestFDSClientConfiguration {
private static final String URI_SUFFIX = "fds.api.xiaomi.com";
private static final String URI_CDN_SUFFIX = "fds.api.mi-img.com";
@Test
public void testDefaultConfigurationValue() {
FDSClientConfiguration conf = new FDSClientConfiguration();
Assert.assertEquals("cnbj0", conf.getRegionName());
Assert.assertEquals(true, conf.isHttpsEnabled());
Assert.assertEquals(false, conf.isCdnEnabledForUpload());
Assert.assertEquals(true, conf.isCdnEnabledForDownload());
Assert.assertEquals(false, conf.isEnabledUnitTestMode());
}
@Test
public void testCdnChosen() {
FDSClientConfiguration fdsConfig = new FDSClientConfiguration();
fdsConfig.setRegionName("regionName");
fdsConfig.enableHttps(true);
// Test flag enableCdnForUpload.
fdsConfig.enableCdnForUpload(false);
Assert.assertEquals(fdsConfig.getUploadBaseUri(),
"https://regionName." + URI_SUFFIX);
fdsConfig.enableCdnForUpload(true);
Assert.assertEquals(fdsConfig.getUploadBaseUri(),
"https://cdn.regionName." + URI_CDN_SUFFIX);
fdsConfig.enableHttps(false);
Assert.assertEquals(fdsConfig.getUploadBaseUri(),
"http://cdn.regionName." + URI_CDN_SUFFIX);
// Test flag enableCdnForDownload.
fdsConfig.enableCdnForDownload(false);
Assert.assertEquals(fdsConfig.getDownloadBaseUri(),
"http://regionName." + URI_SUFFIX);
fdsConfig.enableCdnForDownload(true);
Assert.assertEquals(fdsConfig.getDownloadBaseUri(),
"http://cdn.regionName." + URI_CDN_SUFFIX);
fdsConfig.enableHttps(true);
Assert.assertEquals(fdsConfig.getDownloadBaseUri(),
"https://cdn.regionName." + URI_CDN_SUFFIX);
}
@Test
public void testBuildBaseUri() {
final String regionNameA = "regionNameA";
final String regionNameB = "regionNameB";
FDSClientConfiguration fdsConfig = new FDSClientConfiguration();
// Test against flag enable https.
fdsConfig.setRegionName(regionNameA);
fdsConfig.enableHttps(true);
Assert.assertEquals("https://" + regionNameA + "." + URI_SUFFIX,
fdsConfig.buildBaseUri(false));
fdsConfig.enableHttps(false);
Assert.assertEquals("http://" + regionNameA + "." + URI_SUFFIX,
fdsConfig.buildBaseUri(false));
// Test against region name.
fdsConfig.setRegionName(regionNameB);
fdsConfig.enableHttps(true);
Assert.assertEquals("https://" + regionNameB + "." +
URI_SUFFIX, fdsConfig.buildBaseUri(false));
// Test setting endpoint
String endpoint = "cnbj0.fds.api.xiaomi.net";
fdsConfig.setEndpoint(endpoint);
fdsConfig.enableHttps(false);
Assert.assertEquals("http://" + endpoint, fdsConfig.buildBaseUri(false));
Assert.assertEquals("http://" + endpoint, fdsConfig.buildBaseUri(true));
fdsConfig.enableHttps(true);
Assert.assertEquals("https://" + endpoint, fdsConfig.buildBaseUri(false));
Assert.assertEquals("https://" + endpoint, fdsConfig.buildBaseUri(true));
}
}