package examples.multiapps;
import com.vtence.molecule.WebServer;
import com.vtence.molecule.testing.http.HttpRequest;
import com.vtence.molecule.testing.http.HttpResponse;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import static com.vtence.molecule.testing.http.HttpResponseAssert.assertThat;
public class MultiAppsTest {
MultiAppsExample multiApps = new MultiAppsExample();
WebServer server = WebServer.create(9999);
HttpRequest request = new HttpRequest(9999);
HttpResponse response;
@Before
public void startServer() throws IOException {
multiApps.run(server);
}
@After
public void stopServer() throws IOException {
server.stop();
}
@Test
public void dispatchingRequestsToMultipleApplicationsDependingOnThePath() throws IOException {
response = request.get("/foo/quux");
assertThat(response).isOK().hasBodyText("/foo at /quux (/foo/quux)");
response = request.get("/foo/bar/quux");
assertThat(response).isOK().hasBodyText("/foo/bar at /quux (/foo/bar/quux)");
response = request.get("/baz");
assertThat(response).isOK().hasBodyText("/baz at / (/baz)");
}
@Test
public void gettingA404OnRequestToUnmappedPath() throws IOException {
response = request.get("/quux");
assertThat(response).hasStatusCode(404)
.hasBodyText("Not found: /quux");
}
}