aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorChas Emerick <cemerick@snowtide.com>2010-04-26 09:13:15 -0400
committerStuart Halloway <stu@thinkrelevance.com>2010-05-07 13:18:21 -0400
commit1d66c0942d628b97b6d4ff826b36e15e95c18967 (patch)
tree8e3a7aaaa5c5bb4a8977a43e63408e8f556b9045 /src/test
parent1c805bd0e515ea57028721ea54e6db4b0c791e20 (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.clj31
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