1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.index.reader.resource;
20
21 import java.io.BufferedOutputStream;
22 import java.io.ByteArrayOutputStream;
23 import java.io.IOException;
24 import java.io.OutputStream;
25
26 import org.apache.maven.index.reader.WritableResourceHandler;
27 import org.apache.maven.index.reader.WritableResourceHandler.WritableResource;
28 import org.jmock.Expectations;
29 import org.jmock.Mockery;
30 import org.junit.Test;
31
32 import static org.junit.Assert.assertArrayEquals;
33 import static org.junit.Assert.assertTrue;
34
35 public class BufferedWritableResourceHandlerTest {
36 private Mockery context = new Mockery();
37
38 @Test
39 public void locate() throws IOException {
40 final WritableResource writableResource = context.mock(WritableResource.class);
41 final WritableResourceHandler writableResourceHandler = context.mock(WritableResourceHandler.class);
42 final ByteArrayOutputStream baos = new ByteArrayOutputStream();
43 context.checking(new Expectations() {
44 {
45 oneOf(writableResource).write();
46 will(returnValue(baos));
47 oneOf(writableResourceHandler).locate("test.txt");
48 will(returnValue(writableResource));
49 }
50 });
51 OutputStream out = new BufferedWritableResourceHandler(writableResourceHandler)
52 .locate("test.txt")
53 .write();
54 assertTrue(out instanceof BufferedOutputStream);
55 assertArrayEquals(new byte[] {}, baos.toByteArray());
56 out.write('a');
57 assertArrayEquals(new byte[] {}, baos.toByteArray());
58 out.flush();
59 assertArrayEquals(new byte[] {'a'}, baos.toByteArray());
60 context.assertIsSatisfied();
61 }
62
63 @Test
64 public void close() throws IOException {
65 final WritableResourceHandler writableResourceHandler = context.mock(WritableResourceHandler.class);
66 context.checking(new Expectations() {
67 {
68 oneOf(writableResourceHandler).close();
69 }
70 });
71 new BufferedWritableResourceHandler(writableResourceHandler).close();
72 context.assertIsSatisfied();
73 }
74 }