BAEL-2268 - Guide to JerseyTest (#5443)
* BAEL-2268 - Guide to JerseyTest - second attempt without formatting changes * BAEL-2268 - Guide to JerseyTest - Add line break to end of file
This commit is contained in:
		
							parent
							
								
									f61d503d1f
								
							
						
					
					
						commit
						ca4b6200a7
					
				| @ -54,4 +54,9 @@ public class Fruit { | |||||||
|     public void setSerial(String serial) { |     public void setSerial(String serial) { | ||||||
|         this.serial = serial; |         this.serial = serial; | ||||||
|     } |     } | ||||||
|  |      | ||||||
|  |     @Override | ||||||
|  |     public String toString() { | ||||||
|  |         return "Fruit [name: " + getName() + " colour: " + getColour() + "]"; | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -16,6 +16,8 @@ import javax.ws.rs.Path; | |||||||
| import javax.ws.rs.PathParam; | import javax.ws.rs.PathParam; | ||||||
| import javax.ws.rs.Produces; | import javax.ws.rs.Produces; | ||||||
| import javax.ws.rs.core.MediaType; | import javax.ws.rs.core.MediaType; | ||||||
|  | import javax.ws.rs.core.Response; | ||||||
|  | import javax.ws.rs.core.Response.Status; | ||||||
| 
 | 
 | ||||||
| import org.glassfish.jersey.server.mvc.ErrorTemplate; | import org.glassfish.jersey.server.mvc.ErrorTemplate; | ||||||
| import org.glassfish.jersey.server.mvc.Template; | import org.glassfish.jersey.server.mvc.Template; | ||||||
| @ -86,6 +88,16 @@ public class FruitResource { | |||||||
|     public void createFruit(@Valid Fruit fruit) { |     public void createFruit(@Valid Fruit fruit) { | ||||||
|         SimpleStorageService.storeFruit(fruit); |         SimpleStorageService.storeFruit(fruit); | ||||||
|     } |     } | ||||||
|  |      | ||||||
|  |     @POST | ||||||
|  |     @Path("/created") | ||||||
|  |     @Consumes(MediaType.APPLICATION_JSON) | ||||||
|  |     public Response createNewFruit(@Valid Fruit fruit) { | ||||||
|  |         String result = "Fruit saved : " + fruit; | ||||||
|  |         return Response.status(Status.CREATED.getStatusCode()) | ||||||
|  |             .entity(result) | ||||||
|  |             .build(); | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     @GET |     @GET | ||||||
|     @Valid |     @Valid | ||||||
|  | |||||||
| @ -0,0 +1,33 @@ | |||||||
|  | package com.baeldung.jersey.server; | ||||||
|  | 
 | ||||||
|  | import static org.junit.Assert.assertEquals; | ||||||
|  | 
 | ||||||
|  | import javax.ws.rs.core.Application; | ||||||
|  | import javax.ws.rs.core.HttpHeaders; | ||||||
|  | import javax.ws.rs.core.MediaType; | ||||||
|  | import javax.ws.rs.core.Response; | ||||||
|  | import javax.ws.rs.core.Response.Status; | ||||||
|  | 
 | ||||||
|  | import org.glassfish.jersey.server.ResourceConfig; | ||||||
|  | import org.glassfish.jersey.test.JerseyTest; | ||||||
|  | import org.junit.Test; | ||||||
|  | 
 | ||||||
|  | public class GreetingsResourceIntegrationTest extends JerseyTest { | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected Application configure() { | ||||||
|  |         return new ResourceConfig(Greetings.class); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void givenGetHiGreeting_whenCorrectRequest_thenResponseIsOkAndContainsHi() { | ||||||
|  |         Response response = target("/greetings/hi").request() | ||||||
|  |             .get(); | ||||||
|  | 
 | ||||||
|  |         assertEquals("Http Response should be 200: ", Status.OK.getStatusCode(), response.getStatus()); | ||||||
|  |         assertEquals("Http Content-Type should be: ", MediaType.TEXT_HTML, response.getHeaderString(HttpHeaders.CONTENT_TYPE)); | ||||||
|  | 
 | ||||||
|  |         String content = response.readEntity(String.class); | ||||||
|  |         assertEquals("Content of ressponse is: ", "hi", content); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -10,6 +10,7 @@ import javax.ws.rs.core.Application; | |||||||
| import javax.ws.rs.core.Form; | import javax.ws.rs.core.Form; | ||||||
| import javax.ws.rs.core.MediaType; | import javax.ws.rs.core.MediaType; | ||||||
| import javax.ws.rs.core.Response; | import javax.ws.rs.core.Response; | ||||||
|  | import javax.ws.rs.core.Response.Status; | ||||||
| 
 | 
 | ||||||
| import org.glassfish.jersey.test.JerseyTest; | import org.glassfish.jersey.test.JerseyTest; | ||||||
| import org.glassfish.jersey.test.TestProperties; | import org.glassfish.jersey.test.TestProperties; | ||||||
| @ -63,6 +64,15 @@ public class FruitResourceIntegrationTest extends JerseyTest { | |||||||
|         assertEquals("Http Response should be 400 ", 400, response.getStatus()); |         assertEquals("Http Response should be 400 ", 400, response.getStatus()); | ||||||
|         assertThat(response.readEntity(String.class), containsString("Fruit colour must not be null")); |         assertThat(response.readEntity(String.class), containsString("Fruit colour must not be null")); | ||||||
|     } |     } | ||||||
|  |      | ||||||
|  |     @Test | ||||||
|  |     public void givenCreateFruit_whenJsonIsCorrect_thenResponseCodeIsCreated() { | ||||||
|  |         Response response = target("fruit/created").request() | ||||||
|  |             .post(Entity.json("{\"name\":\"strawberry\",\"weight\":20}")); | ||||||
|  | 
 | ||||||
|  |         assertEquals("Http Response should be 201 ", Status.CREATED.getStatusCode(), response.getStatus()); | ||||||
|  |         assertThat(response.readEntity(String.class), containsString("Fruit saved : Fruit [name: strawberry colour: null]")); | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     @Test |     @Test | ||||||
|     public void givenUpdateFruit_whenFormContainsBadSerialParam_thenResponseCodeIsBadRequest() { |     public void givenUpdateFruit_whenFormContainsBadSerialParam_thenResponseCodeIsBadRequest() { | ||||||
| @ -102,6 +112,23 @@ public class FruitResourceIntegrationTest extends JerseyTest { | |||||||
|             .get(String.class); |             .get(String.class); | ||||||
|         assertThat(json, containsString("{\"name\":\"strawberry\",\"weight\":20}")); |         assertThat(json, containsString("{\"name\":\"strawberry\",\"weight\":20}")); | ||||||
|     } |     } | ||||||
|  |      | ||||||
|  |     @Test | ||||||
|  |     public void givenFruitExists_whenSearching_thenResponseContainsFruitEntity() { | ||||||
|  |         Fruit fruit = new Fruit(); | ||||||
|  |         fruit.setName("strawberry"); | ||||||
|  |         fruit.setWeight(20); | ||||||
|  |         Response response = target("fruit/create").request(MediaType.APPLICATION_JSON_TYPE) | ||||||
|  |             .post(Entity.entity(fruit, MediaType.APPLICATION_JSON_TYPE)); | ||||||
|  | 
 | ||||||
|  |         assertEquals("Http Response should be 204 ", 204, response.getStatus()); | ||||||
|  | 
 | ||||||
|  |         final Fruit entity = target("fruit/search/strawberry").request() | ||||||
|  |             .get(Fruit.class); | ||||||
|  | 
 | ||||||
|  |         assertEquals("Fruit name: ", "strawberry", entity.getName()); | ||||||
|  |         assertEquals("Fruit weight: ", Integer.valueOf(20), entity.getWeight()); | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     @Test |     @Test | ||||||
|     public void givenFruit_whenFruitIsInvalid_thenReponseContainsCustomExceptions() { |     public void givenFruit_whenFruitIsInvalid_thenReponseContainsCustomExceptions() { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user