| 
									
										
										
										
											2019-10-31 20:43:47 -05:00
										 |  |  | package com.baeldung.akkahttp;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import akka.actor.ActorRef;
 | 
					
						
							|  |  |  | import akka.actor.ActorSystem;
 | 
					
						
							|  |  |  | import akka.http.javadsl.model.ContentTypes;
 | 
					
						
							|  |  |  | import akka.http.javadsl.model.HttpEntities;
 | 
					
						
							|  |  |  | import akka.http.javadsl.model.HttpRequest;
 | 
					
						
							|  |  |  | import akka.http.javadsl.testkit.JUnitRouteTest;
 | 
					
						
							|  |  |  | import akka.http.javadsl.testkit.TestRoute;
 | 
					
						
							| 
									
										
										
										
											2020-01-10 17:22:13 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  | import org.junit.Ignore;
 | 
					
						
							| 
									
										
										
										
											2019-10-31 20:43:47 -05:00
										 |  |  | import org.junit.Test;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public class UserServerUnitTest extends JUnitRouteTest {
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ActorSystem system = ActorSystem.create("helloAkkaHttpServer");
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ActorRef userActorRef = system.actorOf(UserActor.props(), "userActor");
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   TestRoute appRoute = testRoute(new UserServer(userActorRef).routes());
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-10 17:22:13 +05:30
										 |  |  |   @Ignore
 | 
					
						
							| 
									
										
										
										
											2019-10-31 20:43:47 -05:00
										 |  |  |   @Test
 | 
					
						
							|  |  |  |   public void whenRequest_thenActorResponds() {
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     appRoute.run(HttpRequest.GET("/users/1"))
 | 
					
						
							|  |  |  |             .assertEntity(alice())
 | 
					
						
							|  |  |  |             .assertStatusCode(200);
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     appRoute.run(HttpRequest.GET("/users/42"))
 | 
					
						
							|  |  |  |             .assertStatusCode(404);
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     appRoute.run(HttpRequest.DELETE("/users/1"))
 | 
					
						
							| 
									
										
										
										
											2020-01-20 09:05:47 +01:00
										 |  |  |             .assertStatusCode(405);
 | 
					
						
							| 
									
										
										
										
											2019-10-31 20:43:47 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |     appRoute.run(HttpRequest.DELETE("/users/42"))
 | 
					
						
							| 
									
										
										
										
											2020-01-20 09:05:47 +01:00
										 |  |  |             .assertStatusCode(405);
 | 
					
						
							| 
									
										
										
										
											2019-10-31 20:43:47 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |     appRoute.run(HttpRequest.POST("/users")
 | 
					
						
							|  |  |  |             .withEntity(HttpEntities.create(ContentTypes.APPLICATION_JSON, zaphod())))
 | 
					
						
							|  |  |  |             .assertStatusCode(201);
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   private String alice() {
 | 
					
						
							|  |  |  |     return "{\"id\":1,\"name\":\"Alice\"}";
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   private String zaphod() {
 | 
					
						
							|  |  |  |     return "{\"id\":42,\"name\":\"Zaphod\"}";
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | }
 |