View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   https://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.commons.compress.archivers.zip;
20  
21  import static org.mockito.ArgumentMatchers.any;
22  import static org.mockito.ArgumentMatchers.eq;
23  import static org.mockito.Mockito.mock;
24  import static org.mockito.Mockito.times;
25  import static org.mockito.Mockito.verify;
26  
27  import java.io.IOException;
28  
29  import org.apache.commons.compress.AbstractTempDirTest;
30  import org.junit.jupiter.api.Test;
31  
32  /**
33   * Tests {@link RandomAccessOutputStream}.
34   */
35  class RandomAccessOutputStreamTest extends AbstractTempDirTest {
36  
37      @Test
38      void testWrite() throws IOException {
39          final RandomAccessOutputStream delegate = mock(RandomAccessOutputStream.class);
40          final RandomAccessOutputStream stream = new RandomAccessOutputStream() {
41  
42              @Override
43              public long position() throws IOException {
44                  return delegate.position();
45              }
46  
47              @Override
48              public void write(final byte[] b, final int off, final int len) throws IOException {
49                  delegate.write(b, off, len);
50              }
51  
52              @Override
53              void writeAll(final byte[] b, final int off, final int len, final long position) throws IOException {
54                  delegate.writeAll(b, off, len, position);
55              }
56          };
57          stream.write('\n');
58          verify(delegate, times(1)).write(any(), eq(0), eq(1));
59      }
60  }