aboutsummaryrefslogtreecommitdiff
path: root/src/test/clojure
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/clojure')
-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