package Ġcom . xx uz . pic lane . log view . procedure . text Ċ Ċ import Ġcom . google . common . j im fs . Configuration Ċ import Ġcom . google . common . j im fs . Jim fs Ċ import Ġorg . hamcrest . Matcher Assert Ċ import Ġorg . hamcrest . Matchers Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . jupiter . api . After Each Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . springframework . boot . test . context . SpringBootTest Ċ import Ġorg . springframework . test . context . junit 4 . Spring Runner Ċ import Ġjava . nio . charset . StandardCharsets Ċ import Ġjava . nio . file . FileSystem Ċ import Ġjava . nio . file . Files Ċ import Ġjava . nio . file . Path Ċ Ċ @ RunWith ( Spring Runner :: class ) Ċ @ SpringBootTest Ċ class ĠBuffered Byte Reader Test Ġ{ ĊĠĠĠ Ġ/** ĠTest ĠFileSystem Ġ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtest Fs : ĠFileSystem ĊĊĠĠĠ Ġ/** ĠTest Ġfile Ġpath Ġ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtest Path : ĠPath ĊĊĠĠĠ Ġ/** ĠTest Ġfile Ġcontents Ġ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġexpect Array : ĠByteArray ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġbefore () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuf Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append (" 0 1 2 3 4 5 6 7 8 9 ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġexpect String Ġ= Ġbuf . toString () ĊĠĠĠĠĠĠĠ Ġexpect Array Ġ= Ġexpect String . toByteArray ( StandardCharsets . UTF _ 8 ) ĊĠĠĠĠĠĠĠ Ġtest Fs Ġ= ĠJim fs . new FileSystem ( Configuration . unix ()) ĊĠĠĠĠĠĠĠ Ġtest Path Ġ= Ġtest Fs . getPath ("/ test . txt ") ĊĠĠĠĠĠĠĠ ĠFiles . new Buffered Writer ( test Path ). use Ġ{ Ġout Ġ-> Ġout . append ( expect String ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After Each ĊĠĠĠ Ġfun Ġafter () Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Fs . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Close () Ġ{ ĊĠĠĠĠĠĠĠ ĠFiles . new Byte Channel ( test Path ). use Ġ{ Ġchannel Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreader Ġ= ĠBuffered Byte Reader ( channel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreader . close () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertFalse ( channel . isOpen ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Size () Ġ{ ĊĠĠĠĠĠĠĠ ĠBuffered Byte Reader ( Files . new Byte Channel ( test Path ), Ġ 1 0 ). use Ġ{ Ġreader Ġ-> ĠMatcher Assert . assertThat ( reader . size (), ĠMatch ers .` is `( Matchers . equalTo ( 1 0 0 L ))) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Read () Ġ{ ĊĠĠĠĠĠĠĠ ĠBuffered Byte Reader ( Files . new Byte Channel ( test Path ), Ġ 1 0 ). use Ġ{ Ġreader Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġc : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( reader . read (). also Ġ{ Ġc Ġ= Ġit Ġ} Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" index Ġ$ index Ġis Ġnot Ġequals .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatch ers .` is `( Matchers . equalTo ( java . lang . Byte . to Unsigned Int ( expect Array [ index ])) )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Read 2 () Ġ{ ĊĠĠĠĠĠĠĠ ĠBuffered Byte Reader ( Files . new Byte Channel ( test Path ), Ġ 1 0 2 4 ). use Ġ{ Ġreader Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġc : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( reader . read (). also Ġ{ Ġc Ġ= Ġit Ġ} Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" index Ġ$ index Ġis Ġnot Ġequals .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatch ers .` is `( Matchers . equalTo ( java . lang . Byte . to Unsigned Int ( expect Array [ index ])) )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Read To ByteArray _ LessThan Buffer () Ġ{ ĊĠĠĠĠĠĠĠ ĠBuffered Byte Reader ( Files . new Byte Channel ( test Path ), Ġ 2 0 ). use Ġ{ Ġreader Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreader . read () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuf Ġ= ĠByteArray ( 2 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġread Ġ= Ġreader . read ( buf , Ġ 5 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( read , ĠMatch ers .` is `( Matchers . equalTo ( 1 0 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpect Ġ= Ġ"\ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 5 6 7 8 9 0 1 2 3 4 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 ". toByteArray ( StandardCharsets . UTF _ 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertArrayEquals ( expect , Ġbuf ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Read To ByteArray _ More Than Buffer () Ġ{ ĊĠĠĠĠĠĠĠ ĠBuffered Byte Reader ( Files . new Byte Channel ( test Path ), Ġ 1 0 ). use Ġ{ Ġreader Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreader . read () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuf Ġ= ĠByteArray ( 3 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġread Ġ= Ġreader . read ( buf , Ġ 5 , Ġ 2 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( read , ĠMatch ers .` is `( Matchers . equalTo ( 2 0 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpect Ġ= Ġ"\ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 ". toByteArray ( StandardCharsets . UTF _ 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertArrayEquals ( expect , Ġbuf ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Read To ByteArray _ More Than Buffer 2 () Ġ{ ĊĠĠĠĠĠĠĠ ĠBuffered Byte Reader ( Files . new Byte Channel ( test Path ), Ġ 7 ). use Ġ{ Ġreader Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreader . read () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuf Ġ= ĠByteArray ( 3 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġread Ġ= Ġreader . read ( buf , Ġ 5 , Ġ 2 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( read , ĠMatch ers .` is `( Matchers . equalTo ( 2 0 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpect Ġ= Ġ"\ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 ". toByteArray ( StandardCharsets . UTF _ 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertArrayEquals ( expect , Ġbuf ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Position Read () Ġ{ ĊĠĠĠĠĠĠĠ ĠBuffered Byte Reader ( Files . new Byte Channel ( test Path ), Ġ 1 0 ). use Ġ{ Ġreader Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreader . read () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( reader . position (), ĠMatch ers .` is `( Matchers . equalTo ( 5 L ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuf Ġ= ĠByteArray ( 1 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġread Ġ= Ġreader . read ( buf ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( read , ĠMatch ers .` is `( Matchers . equalTo ( 1 5 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( reader . position (), ĠMatch ers .` is `( Matchers . equalTo ( 2 0 L ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Position Write () Ġ{ ĊĠĠĠĠĠĠĠ ĠBuffered Byte Reader ( Files . new Byte Channel ( test Path ), Ġ 1 0 ). use Ġ{ Ġreader Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreader . position ( 5 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( reader . position (), ĠMatch ers .` is `( Matchers . equalTo ( 5 L ))) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( reader . read (). to Char (), ĠMatch ers .` is `( Matchers . equalTo (' 5 '))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreader . position ( 8 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( reader . position (), ĠMatch ers .` is `( Matchers . equalTo ( 8 L ))) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( reader . read (). to Char (), ĠMatch ers .` is `( Matchers . equalTo (' 8 '))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreader . position ( 3 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( reader . position (), ĠMatch ers .` is `( Matchers . equalTo ( 3 0 L ))) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( reader . read (). to Char (), ĠMatch ers .` is `( Matchers . equalTo (' 0 '))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ