Jackson encoder skips String.class

Jackson2Encoder explicitly disables String from the supported types
consistent with the same change on the decoder side:

0662dbf044

Issue: SPR-15443
This commit is contained in:
Rossen Stoyanchev
2017-04-14 17:18:44 -04:00
parent 2ba4a224a6
commit 3efb76c852
7 changed files with 43 additions and 16 deletions

View File

@@ -15,17 +15,22 @@
*/
package org.springframework.test.web.reactive.server.samples;
import java.net.URI;
import org.junit.Test;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.test.web.reactive.server.WebTestClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
/**
* Sample tests asserting JSON response content.
* Samples of tests with serialized JSON content.
*
* @author Rossen Stoyanchev
*/
@@ -55,6 +60,16 @@ public class JsonContentTests {
.jsonPath("$[2].name").isEqualTo("John");
}
@Test
public void postJsonContent() throws Exception {
this.client.post().uri("/persons")
.contentType(MediaType.APPLICATION_JSON_UTF8)
.body("{\"name\":\"John\"}")
.exchange()
.expectStatus().isCreated()
.expectBody().isEmpty();
}
@RestController
@SuppressWarnings("unused")
@@ -64,6 +79,11 @@ public class JsonContentTests {
Flux<Person> getPersons() {
return Flux.just(new Person("Jane"), new Person("Jason"), new Person("John"));
}
@PostMapping
ResponseEntity<String> savePerson(@RequestBody Person person) {
return ResponseEntity.created(URI.create("/persons/" + person.getName())).build();
}
}
}

View File

@@ -24,7 +24,6 @@ import java.util.Map;
import org.junit.Test;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import reactor.test.StepVerifier;
import org.springframework.http.MediaType;
@@ -124,7 +123,7 @@ public class ResponseEntityTests {
@Test
public void postEntity() throws Exception {
this.client.post().uri("/persons")
.body(Mono.just(new Person("John")), Person.class)
.body(new Person("John"))
.exchange()
.expectStatus().isCreated()
.expectHeader().valueEquals("location", "/persons/John")