package org.springframework.cloud.bootstrap;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.bootstrap.BootstrapOrderingSpringApplicationJsonIntegrationTests.Application;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.test.context.junit4.SpringRunner;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class,
properties = "spring.cloud.bootstrap.name:json")
public class BootstrapOrderingSpringApplicationJsonIntegrationTests {
@BeforeClass
public static void spikeJson() {
System.setProperty("SPRING_APPLICATION_JSON", "{\"message\":\"From JSON\"}");
}
@AfterClass
public static void unspikeJson() {
System.clearProperty("SPRING_APPLICATION_JSON");
}
@Autowired
private ConfigurableEnvironment environment;
@Test
public void bootstrapPropertiesExist() {
assertTrue(this.environment.getPropertySources()
.contains("spring.application.json"));
assertEquals("From JSON", this.environment.getProperty("message"));
}
@EnableAutoConfiguration
@Configuration
protected static class Application {
}
}