Added basic standalone server

This commit is contained in:
James Reeves 2012-02-07 23:25:31 +00:00
parent 592a8fd2d8
commit f30d11a55e
3 changed files with 29 additions and 1 deletions

View file

@ -1,4 +1,5 @@
(defproject ring-server "0.1.0" (defproject ring-server "0.1.0"
:description "Library for running Ring web servers" :description "Library for running Ring web servers"
:dependencies [[org.clojure/clojure "1.2.1"] :dependencies [[org.clojure/clojure "1.2.1"]
[ring "1.0.1"]]) [ring "1.0.1"]]
:dev-dependencies [[clj-http "0.3.1"]])

View file

@ -0,0 +1,9 @@
(ns ring.server.standalone
(:use [ring.adapter.jetty :only (run-jetty)]))
(defn serve
"Start a web server to run a handler."
[handler & [{:as options}]]
(run-jetty
handler
(merge {:port 5000} options)))

View file

@ -0,0 +1,18 @@
(ns ring.server.test.standalone
(:require [clj-http.client :as http])
(:use clojure.test
ring.server.standalone
ring.util.response))
(defmacro with-server [server & body]
`(let [server# ~server]
(try
~@body
(finally (.stop server#)))))
(deftest serve-test
(let [handler (constantly (response "Hello World"))]
(with-server (serve handler {:join? false})
(let [resp (http/get "http://localhost:5000")]
(is (= (:status resp) 200))
(is (= (:body resp) "Hello World"))))))