3030import org .junit .jupiter .api .Test ;
3131
3232/**
33- * Tests {@link CloseShieldOutputStream }.
33+ * Tests {@link ProxyOutputStream }.
3434 */
3535class ProxyOutputStreamTest {
3636
3737 private ByteArrayOutputStream original ;
3838
3939 private ProxyOutputStream proxied ;
4040
41- private final AtomicBoolean hit = new AtomicBoolean ();
41+ private final AtomicBoolean hitByteArray = new AtomicBoolean ();
42+ private final AtomicBoolean hitByteArrayAt = new AtomicBoolean ();
43+ private final AtomicBoolean hitInt = new AtomicBoolean ();
4244
4345 @ BeforeEach
4446 public void setUp () {
4547 original = new ByteArrayOutputStream () {
4648
4749 @ Override
4850 public void write (final byte [] ba ) {
49- hit .set (true );
51+ hitByteArray .set (true );
5052 super .write (ba );
5153 }
5254
55+ @ Override
56+ public void write (final byte [] b , final int off , final int len ) {
57+ hitByteArrayAt .set (true );
58+ super .write (b , off , len );
59+ }
60+
5361 @ Override
5462 public synchronized void write (final int ba ) {
55- hit .set (true );
63+ hitInt .set (true );
5664 super .write (ba );
5765 }
5866 };
@@ -67,30 +75,48 @@ void testBuilder() throws Exception {
6775 @ SuppressWarnings ("resource" )
6876 @ Test
6977 void testSetReference () throws Exception {
70- assertFalse (hit .get ());
78+ assertFalse (hitByteArray .get ());
7179 proxied .setReference (new ByteArrayOutputStream ());
7280 proxied .write ('y' );
73- assertFalse (hit .get ());
81+ assertFalse (hitByteArray .get ());
7482 assertEquals (0 , original .size ());
7583 assertArrayEquals (ArrayUtils .EMPTY_BYTE_ARRAY , original .toByteArray ());
7684 }
7785
7886 @ Test
79- void testWrite () throws Exception {
80- assertFalse (hit .get ());
87+ void testWriteByteArray () throws Exception {
88+ assertFalse (hitByteArray .get ());
89+ proxied .write (new byte [] { 'y' , 'z' });
90+ assertTrue (hitByteArray .get ());
91+ assertEquals (2 , original .size ());
92+ assertArrayEquals (new byte [] { 'y' , 'z' }, original .toByteArray ());
93+ }
94+
95+ @ Test
96+ void testWriteByteArrayAt () throws Exception {
97+ assertFalse (hitByteArrayAt .get ());
98+ proxied .write (new byte [] { 'y' , 'z' }, 1 , 1 );
99+ assertTrue (hitByteArrayAt .get ());
100+ assertEquals (1 , original .size ());
101+ assertArrayEquals (new byte [] { 'z' }, original .toByteArray ());
102+ }
103+
104+ @ Test
105+ void testWriteInt () throws Exception {
106+ assertFalse (hitInt .get ());
81107 proxied .write ('y' );
82- assertTrue (hit .get ());
108+ assertTrue (hitInt .get ());
83109 assertEquals (1 , original .size ());
84110 assertEquals ('y' , original .toByteArray ()[0 ]);
85111 }
86112
87113 @ Test
88114 void testWriteNullArrayProxiesToUnderlying () throws Exception {
89- assertFalse (hit .get ());
115+ assertFalse (hitByteArray .get ());
90116 final byte [] ba = null ;
91117 assertThrows (NullPointerException .class , () -> original .write (ba ));
92- assertTrue (hit .get ());
118+ assertTrue (hitByteArray .get ());
93119 assertThrows (NullPointerException .class , () -> proxied .write (ba ));
94- assertTrue (hit .get ());
120+ assertTrue (hitByteArray .get ());
95121 }
96122}
0 commit comments