diff options
Diffstat (limited to 'std/io/readers_test.ts')
m--------- | std | 0 | ||||
-rw-r--r-- | std/io/readers_test.ts | 39 |
2 files changed, 39 insertions, 0 deletions
diff --git a/std b/std deleted file mode 160000 -Subproject 43aafbf33285753e7b42230f0eb7969b300f71c diff --git a/std/io/readers_test.ts b/std/io/readers_test.ts new file mode 100644 index 000000000..474407427 --- /dev/null +++ b/std/io/readers_test.ts @@ -0,0 +1,39 @@ +const { copy } = Deno; +import { test } from "../testing/mod.ts"; +import { assertEquals } from "../testing/asserts.ts"; +import { MultiReader, StringReader } from "./readers.ts"; +import { StringWriter } from "./writers.ts"; +import { copyN } from "./ioutil.ts"; +import { decode } from "../strings/mod.ts"; + +test(async function ioStringReader(): Promise<void> { + const r = new StringReader("abcdef"); + const res0 = await r.read(new Uint8Array(6)); + assertEquals(res0, 6); + const res1 = await r.read(new Uint8Array(6)); + assertEquals(res1, Deno.EOF); +}); + +test(async function ioStringReader(): Promise<void> { + const r = new StringReader("abcdef"); + const buf = new Uint8Array(3); + const res1 = await r.read(buf); + assertEquals(res1, 3); + assertEquals(decode(buf), "abc"); + const res2 = await r.read(buf); + assertEquals(res2, 3); + assertEquals(decode(buf), "def"); + const res3 = await r.read(buf); + assertEquals(res3, Deno.EOF); + assertEquals(decode(buf), "def"); +}); + +test(async function ioMultiReader(): Promise<void> { + const r = new MultiReader(new StringReader("abc"), new StringReader("def")); + const w = new StringWriter(); + const n = await copyN(w, r, 4); + assertEquals(n, 4); + assertEquals(w.toString(), "abcd"); + await copy(w, r); + assertEquals(w.toString(), "abcdef"); +}); |