+++ /dev/null
-(ns redis.tests.internal
- (:require [redis.internal :as redis])
- (:use [clojure.contrib.test-is])
- (:import [java.io StringReader BufferedReader]))
-
-
-;;
-;; Helpers
-;;
-
-(defn- wrap-in-reader
- [#^String s]
- (let [reader (BufferedReader. (StringReader. s))]
- reader))
-
-(defn- read-reply
- [#^String s]
- (redis/read-reply (wrap-in-reader s)))
-
-
-;;
-;; Command generation
-;;
-(deftest inline-command
- (is (= "FOO\r\n"
- (redis/inline-command "FOO")))
- (is (= "FOO bar\r\n"
- (redis/inline-command "FOO" "bar")))
- (is (= "FOO bar baz\r\n"
- (redis/inline-command "FOO" "bar" "baz"))))
-
-(deftest bulk-command
- (is (= "FOO 3\r\nbar\r\n"
- (redis/bulk-command "FOO" "bar")))
- (is (= "SET foo 3\r\nbar\r\n"
- (redis/bulk-command "SET" "foo" "bar")))
- (is (= "SET foo bar 3\r\nbaz\r\n"
- (redis/bulk-command "SET" "foo" "bar" "baz"))))
-
-(deftest sort-command
- (is (= "SORT key\r\n"
- (redis/sort-command "SORT" "key")))
- (is (= "SORT key BY pattern\r\n"
- (redis/sort-command "SORT" "key" :by "pattern")))
- (is (= "SORT key LIMIT 0 10\r\n"
- (redis/sort-command "SORT" "key" :limit 0 10)))
- (is (= "SORT key ASC\r\n"
- (redis/sort-command "SORT" "key" :asc)))
- (is (= "SORT key DESC\r\n"
- (redis/sort-command "SORT" "key" :desc)))
- (is (= "SORT key ALPHA\r\n"
- (redis/sort-command "SORT" "key" :alpha)))
- (is (= "SORT key GET object_* GET object2_*\r\n"
- (redis/sort-command "SORT" "key" :get "object_*" :get "object2_*")))
- (is (= "SORT key BY weight_* LIMIT 0 10 GET object_* ALPHA DESC\r\n"
- (redis/sort-command "SORT" "key"
- :by "weight_*"
- :limit 0 10
- :get "object_*"
- :alpha
- :desc))))
-
-
-;;
-;; Reply parsing
-;;
-(deftest read-crlf
- (is (thrown? Exception
- (redis/read-crlf (wrap-in-reader "\n"))))
- (is (thrown? Exception
- (redis/read-crlf (wrap-in-reader ""))))
- (is (thrown? Exception
- (redis/read-crlf (wrap-in-reader "\r1"))))
- (is (= nil
- (redis/read-crlf (wrap-in-reader "\r\n")))))
-
-;; (deftest read-newline-crlf
-;; (is (thrown? Exception
-;; (redis/read-line-crlf (wrap-in-reader "")))))
-
-;;
-;; Reply parsing
-;;
-(deftest reply
- (is (thrown? Exception
- (read-reply "")))
- (is (thrown? Exception
- (read-reply "\r\n"))))
-
-
-(deftest error-reply
- (is (thrown?
- Exception
- (read-reply "-\r\n")))
- (is (thrown-with-msg?
- Exception #".*Test"
- (read-reply "-Test\r\n"))))
-
-(deftest simple-reply
- (is (thrown? Exception
- (read-reply "+")))
- (is (= ""
- (read-reply "+\r\n")))
- (is (= "foobar"
- (read-reply "+foobar\r\n"))))
-
-(deftest integer-reply
- (is (thrown? Exception
- (read-reply ":\r\n")))
- (is (= 0
- (read-reply ":0\r\n")))
- (is (= 42
- (read-reply ":42\r\n")))
- (is (= 42
- (read-reply ": 42 \r\n")))
- (is (= 429348754
- (read-reply ":429348754\r\n"))))
-
-(deftest bulk-reply
- (is (thrown? Exception
- (read-reply "$\r\n")))
- (is (thrown? Exception
- (read-reply "$2\r\n1\r\n")))
- (is (thrown? Exception
- (read-reply "$3\r\n1\r\n")))
- (is (= nil
- (read-reply "$-1\r\n")))
- (is (= "foobar"
- (read-reply "$6\r\nfoobar\r\n")))
- (is (= "foo\r\nbar"
- (read-reply "$8\r\nfoo\r\nbar\r\n"))))
-
-(deftest multi-bulk-reply
- (is (thrown? Exception
- (read-reply "*1\r\n")))
- (is (thrown? Exception
- (read-reply "*4\r\n:0\r\n:0\r\n:0\r\n")))
- (is (= nil
- (read-reply "*-1\r\n")))
- (is (= [1]
- (read-reply "*1\r\n:1\r\n")))
- (is (= ["foo" "bar"]
- (read-reply "*2\r\n+foo\r\n+bar\r\n")))
- (is (= [1 "foo" "foo\r\nbar"]
- (read-reply "*3\r\n:1\r\n+foo\r\n$8\r\nfoo\r\nbar\r\n"))))
-
-
-
-
-
-