Skip to content

Instantly share code, notes, and snippets.

@bjering
Created August 19, 2010 19:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bjering/06a497d95eb946ed5b62 to your computer and use it in GitHub Desktop.
Save bjering/06a497d95eb946ed5b62 to your computer and use it in GitHub Desktop.
(ns chat.user
(:use [clojure.test] [clojure.contrib.def]))
(defvar- users (agent {}))
(defn create
[user-name]
(let [new-user (agent {:user-name user-name})]
(send users conj {user-name new-user})
new-user))
;TODO: replace prinln sideffect with write to netty channel
(defn- do-write
[user message]
(do
(println "User: " (user :user-name) " Received: [" message "]")
user))
(defn write
[user message]
(send user do-write message))
(deftest- test-create
(is (= 0 (count @users)))
(create "Jonas")
(await-for 100 users)
(is (= 1 (count @users))))
;(run-tests 'chat.user)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment