From ea75972c98369de5db0db28e5fb387da9d911e97 Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Mon, 25 Sep 2017 12:42:40 -0400 Subject: [PATCH] Update post to /env --- .../EnvironmentWebEndpointExtension.java | 9 ++--- .../EnvironmentManagerIntegrationTests.java | 37 ++++++++++--------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/context/environment/EnvironmentWebEndpointExtension.java b/spring-cloud-context/src/main/java/org/springframework/cloud/context/environment/EnvironmentWebEndpointExtension.java index f0a8fcb3..a1fed95b 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/context/environment/EnvironmentWebEndpointExtension.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/context/environment/EnvironmentWebEndpointExtension.java @@ -20,6 +20,7 @@ import org.springframework.boot.actuate.endpoint.annotation.WriteOperation; import org.springframework.boot.actuate.endpoint.web.annotation.WebEndpointExtension; import org.springframework.boot.actuate.env.EnvironmentEndpoint; +import java.util.Collections; import java.util.Map; @@ -40,11 +41,9 @@ public class EnvironmentWebEndpointExtension { } @WriteOperation - public Object write(Map params) { - for (String name : params.keySet()) { - environment.setProperty(name, params.get(name)); - } - return params; + public Object write(String name, String value) { + environment.setProperty(name, value); + return Collections.singletonMap(name, value); } @DeleteOperation diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/context/environment/EnvironmentManagerIntegrationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/context/environment/EnvironmentManagerIntegrationTests.java index 054d76fb..977f83c9 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/context/environment/EnvironmentManagerIntegrationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/context/environment/EnvironmentManagerIntegrationTests.java @@ -16,16 +16,15 @@ package org.springframework.cloud.context.environment; +import java.util.HashMap; +import java.util.Map; + import javax.servlet.ServletException; -import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; - import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.test.context.SpringBootTest; @@ -38,9 +37,9 @@ import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; -import java.util.Collections; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; -import static java.util.Collections.singletonMap; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; @@ -68,13 +67,10 @@ public class EnvironmentManagerIntegrationTests { } @Test - @Ignore //FIXME: 2.0.0 public void testRefresh() throws Exception { assertEquals("Hello scope!", properties.getMessage()); - // Change the dynamic property source... - String content = mapper.writeValueAsString(singletonMap("params", singletonMap("message", "Foo"))); - // String content = "{\"params\":\"{'message':'Foo'}\"}"; - // String content = mapper.writeValueAsString(singletonMap("params", "value")); + String content = property("message", "Foo"); + this.mvc.perform(post("/application/env") .content(content) .contentType(MediaType.APPLICATION_JSON)) @@ -83,11 +79,22 @@ public class EnvironmentManagerIntegrationTests { assertEquals("Foo", properties.getMessage()); } + private String property(String name, String value) throws JsonProcessingException { + // Change the dynamic property source... + Map property = new HashMap<>(); + property.put("name", name); + property.put("value", value); + + return mapper.writeValueAsString(property); + } + @Test - @Ignore //FIXME: 2.0.0 public void testRefreshFails() throws Exception { try { - this.mvc.perform(post("/application/env").param("delay", "foo")) + this.mvc.perform(post("/application/env") + .content(property("delay", "foo")) + .contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) .andExpect(status().is5xxServerError()); fail("expected ServletException"); } @@ -97,10 +104,6 @@ public class EnvironmentManagerIntegrationTests { assertEquals(0, properties.getDelay()); } - public static void main(String[] args) { - SpringApplication.run(TestConfiguration.class, args); - } - @Configuration @EnableAutoConfiguration protected static class TestConfiguration {