package com.ctrip.framework.apollo.foundation.internals.provider;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.FileInputStream;
import org.junit.Before;
import org.junit.Test;
import com.ctrip.framework.foundation.internals.provider.DefaultApplicationProvider;
public class DefaultApplicationProviderTest {
private DefaultApplicationProvider defaultApplicationProvider;
String PREDEFINED_APP_ID = "110402";
@Before
public void setUp() throws Exception {
defaultApplicationProvider = new DefaultApplicationProvider();
}
@Test
public void testLoadAppProperties() throws Exception {
defaultApplicationProvider.initialize();
assertEquals(PREDEFINED_APP_ID, defaultApplicationProvider.getAppId());
assertTrue(defaultApplicationProvider.isAppIdSet());
}
@Test
public void testLoadAppPropertiesWithUTF8Bom() throws Exception {
File baseDir = new File("src/test/resources/META-INF");
File appProperties = new File(baseDir, "app-with-utf8bom.properties");
defaultApplicationProvider.initialize(new FileInputStream(appProperties));
assertEquals(PREDEFINED_APP_ID, defaultApplicationProvider.getAppId());
assertTrue(defaultApplicationProvider.isAppIdSet());
}
@Test
public void testLoadAppPropertiesWithSystemProperty() throws Exception {
String someAppId = "someAppId";
System.setProperty("app.id", someAppId);
defaultApplicationProvider.initialize();
System.clearProperty("app.id");
assertEquals(someAppId, defaultApplicationProvider.getAppId());
assertTrue(defaultApplicationProvider.isAppIdSet());
}
@Test
public void testLoadAppPropertiesFailed() throws Exception {
File baseDir = new File("src/test/resources/META-INF");
File appProperties = new File(baseDir, "some-invalid-app.properties");
defaultApplicationProvider.initialize(new FileInputStream(appProperties));
assertEquals(null, defaultApplicationProvider.getAppId());
assertFalse(defaultApplicationProvider.isAppIdSet());
}
}