Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@bjering
Created August 18, 2010 10:05
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/51144e1c64ff615ff854 to your computer and use it in GitHub Desktop.
Save bjering/51144e1c64ff615ff854 to your computer and use it in GitHub Desktop.
(ns benchmark.user
(:use [clojure.test]))
(def users
{:by-name (ref {})})
(defn create
[username]
(dosync
(let [new-user {:username username}]
(alter (users :by-name) conj {name new-user})
new-user)))
(defn username
[user]
(user :username))
(deftest test-create
(dosync
(ref-set (users :by-name) {})
(is (= 0 (count @(users :by-name))))
(let
[jonas (benchmark.user/create "Jonas")]
(is (= "Jonas" (benchmark.user/username jonas))))
(is (= 1 (count @(users :by-name))))))
(deftest test-create-2
(dosync
(ref-set (users :by-name) {})
(is (= 0 (count @(users :by-name))))
(let
[jonas (benchmark.user/create "Jonas")
marcus (benchmark.user/create "Marcus")]
(is (= "Jonas" (benchmark.user/username jonas)))
(is (= "Marcus" (benchmark.user/username marcus))))
(is (= 2 (count @(users :by-name))))))
(run-tests 'benchmark.user)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment