diff options
author | Chas Emerick <cemerick@snowtide.com> | 2010-04-26 09:13:15 -0400 |
---|---|---|
committer | Stuart Halloway <stu@thinkrelevance.com> | 2010-05-07 13:18:21 -0400 |
commit | 1d66c0942d628b97b6d4ff826b36e15e95c18967 (patch) | |
tree | 8e3a7aaaa5c5bb4a8977a43e63408e8f556b9045 /src/test | |
parent | 1c805bd0e515ea57028721ea54e6db4b0c791e20 (diff) |
- refactored input-stream, output-stream, reader, and writer into a Streams protocol
- added appropriate protocol implementations for byte and character arrays
- eliminated PrintWriter returns from writer impls, write-lines, and spit
- added copy implementations reading from character arrays
Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/clojure/clojure/contrib/test_io.clj | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/clojure/clojure/contrib/test_io.clj b/src/test/clojure/clojure/contrib/test_io.clj index 32d4909a..e4e1d1e2 100644 --- a/src/test/clojure/clojure/contrib/test_io.clj +++ b/src/test/clojure/clojure/contrib/test_io.clj @@ -62,3 +62,34 @@ [(.. file toString) "File as String"]]] (with-open [s (input-stream expr)] (stream-should-have s bytes msg))))) + +(deftest test-streams-buffering + (let [data (.getBytes "")] + (is (instance? java.io.BufferedReader (reader data))) + (is (instance? java.io.BufferedWriter (writer (java.io.ByteArrayOutputStream.)))) + (is (instance? java.io.BufferedInputStream (input-stream data))) + (is (instance? java.io.BufferedOutputStream (output-stream (java.io.ByteArrayOutputStream.)))))) + +(deftest test-streams-defaults + (let [f (File/createTempFile "clojure.contrib" "test-reader-writer") + content "test\u2099ing"] + (try + (is (thrown? Exception (reader (Object.)))) + (is (thrown? Exception (writer (Object.)))) + + (are [write-to read-from] (= content (do + (spit write-to content) + (slurp* (or read-from write-to)))) + f nil + (.getAbsolutePath f) nil + (.toURL f) nil + (.toURI f) nil + (java.io.FileOutputStream. f) f + (java.io.OutputStreamWriter. (java.io.FileOutputStream. f) "UTF-8") f + f (java.io.FileInputStream. f) + f (java.io.InputStreamReader. (java.io.FileInputStream. f) "UTF-8")) + + (is (= content (slurp* (.getBytes content "UTF-8")))) + (is (= content (slurp* (.toCharArray content)))) + (finally + (.delete f)))))
\ No newline at end of file |