Skip to content

Commit 4c6ab0e

Browse files
authored
Merge pull request docker-java#1163 from Diffblue-benchmarks/TG-6086
Add unit tests for netty.handler.FramedResponseStreamHandler
2 parents 13d5305 + 2cdefd9 commit 4c6ab0e

File tree

1 file changed

+184
-0
lines changed

1 file changed

+184
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
package com.github.dockerjava.netty.handler;
2+
3+
import com.github.dockerjava.api.model.Frame;
4+
import com.github.dockerjava.api.async.ResultCallback;
5+
import com.github.dockerjava.netty.handler.FramedResponseStreamHandler;
6+
import java.io.Closeable;
7+
import java.util.ArrayList;
8+
import java.util.List;
9+
import io.netty.buffer.Unpooled;
10+
import io.netty.channel.ChannelHandlerContext;
11+
import org.junit.Test;
12+
import org.mockito.Mockito;
13+
14+
import static org.junit.Assert.assertEquals;
15+
import static org.junit.Assert.assertTrue;
16+
17+
public class FramedResponseStreamHandlerTest {
18+
19+
public class MockedResponseHandler implements ResultCallback<Frame> {
20+
21+
public List<Frame> frames = new ArrayList<Frame>();
22+
public List<Throwable> exceptions = new ArrayList<Throwable>();
23+
24+
@Override
25+
public void close() {
26+
}
27+
28+
@Override
29+
public void onStart(Closeable closeable) {
30+
}
31+
32+
@Override
33+
public void onNext(Frame object) {
34+
frames.add(object);
35+
}
36+
37+
@Override
38+
public void onError(Throwable throwable) {
39+
exceptions.add(throwable);
40+
}
41+
42+
@Override
43+
public void onComplete() {
44+
}
45+
}
46+
47+
48+
@Test
49+
public void channelRead0emptyHeaderCount() throws Exception {
50+
51+
// Arrange
52+
final MockedResponseHandler responseHandler = new MockedResponseHandler();
53+
final FramedResponseStreamHandler objectUnderTest = new FramedResponseStreamHandler(responseHandler);
54+
byte[] msg = {};
55+
56+
// Act
57+
objectUnderTest.channelRead0(Mockito.mock(ChannelHandlerContext.class), Unpooled.wrappedBuffer(msg));
58+
59+
// Assert result
60+
assertTrue(responseHandler.frames.isEmpty());
61+
}
62+
63+
@Test
64+
public void channelRead0headerTooSmall() throws Exception {
65+
66+
// Arrange
67+
final MockedResponseHandler responseHandler = new MockedResponseHandler();
68+
final FramedResponseStreamHandler objectUnderTest = new FramedResponseStreamHandler(responseHandler);
69+
byte[] msg = {0};
70+
71+
// Act
72+
objectUnderTest.channelRead0(Mockito.mock(ChannelHandlerContext.class), Unpooled.wrappedBuffer(msg));
73+
74+
// Assert result
75+
assertTrue(responseHandler.frames.isEmpty());
76+
}
77+
78+
@Test
79+
public void channelRead0rawStream() throws Exception {
80+
81+
// Arrange
82+
final MockedResponseHandler responseHandler = new MockedResponseHandler();
83+
final FramedResponseStreamHandler objectUnderTest = new FramedResponseStreamHandler(responseHandler);
84+
byte[] msg = {3, 0, 0, 0, 0, 0, 0, 0, 0};
85+
86+
// Act
87+
objectUnderTest.channelRead0(Mockito.mock(ChannelHandlerContext.class), Unpooled.wrappedBuffer(msg));
88+
89+
// Assert result
90+
assertEquals(responseHandler.frames.get(0).toString(), "RAW: ");
91+
}
92+
93+
@Test
94+
public void channelRead0emptyNonRaw() throws Exception {
95+
96+
// Arrange
97+
final MockedResponseHandler responseHandler = new MockedResponseHandler();
98+
final FramedResponseStreamHandler objectUnderTest = new FramedResponseStreamHandler(responseHandler);
99+
byte[] msg = {0, 0, 0, 0, 0, 0, 0, 0, 0};
100+
101+
// Act
102+
objectUnderTest.channelRead0(Mockito.mock(ChannelHandlerContext.class), Unpooled.wrappedBuffer(msg));
103+
104+
// Assert result
105+
assertTrue(responseHandler.frames.isEmpty());
106+
}
107+
108+
@Test
109+
public void channelRead0stdIn() throws Exception {
110+
111+
// Arrange
112+
final MockedResponseHandler responseHandler = new MockedResponseHandler();
113+
final FramedResponseStreamHandler objectUnderTest = new FramedResponseStreamHandler(responseHandler);
114+
byte[] msg = {0, 0, 0, 0, 0, 0, 0, 1, 0};
115+
116+
// Act
117+
objectUnderTest.channelRead0(Mockito.mock(ChannelHandlerContext.class), Unpooled.wrappedBuffer(msg));
118+
119+
// Assert result
120+
assertEquals(responseHandler.frames.get(0).toString(), "STDIN: ");
121+
}
122+
123+
@Test
124+
public void channelRead0stdOut() throws Exception {
125+
126+
// Arrange
127+
final MockedResponseHandler responseHandler = new MockedResponseHandler();
128+
final FramedResponseStreamHandler objectUnderTest = new FramedResponseStreamHandler(responseHandler);
129+
byte[] msg = {1, 0, 0, 0, 0, 0, 0, 1, 0};
130+
131+
// Act
132+
objectUnderTest.channelRead0(Mockito.mock(ChannelHandlerContext.class), Unpooled.wrappedBuffer(msg));
133+
134+
// Assert result
135+
assertEquals(responseHandler.frames.get(0).toString(), "STDOUT: ");
136+
}
137+
138+
@Test
139+
public void channelRead0stdErr() throws Exception {
140+
141+
// Arrange
142+
final MockedResponseHandler responseHandler = new MockedResponseHandler();
143+
final FramedResponseStreamHandler objectUnderTest = new FramedResponseStreamHandler(responseHandler);
144+
byte[] msg = {2, 0, 0, 0, 0, 0, 0, 1, 0};
145+
146+
// Act
147+
objectUnderTest.channelRead0(Mockito.mock(ChannelHandlerContext.class), Unpooled.wrappedBuffer(msg));
148+
149+
// Assert result
150+
assertEquals(responseHandler.frames.get(0).toString(), "STDERR: ");
151+
}
152+
153+
@Test
154+
public void channelRead0largePayload() throws Exception {
155+
156+
// Arrange
157+
final MockedResponseHandler responseHandler = new MockedResponseHandler();
158+
final FramedResponseStreamHandler objectUnderTest = new FramedResponseStreamHandler(responseHandler);
159+
byte[] msg = {1, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0};
160+
161+
// Act
162+
objectUnderTest.channelRead0(Mockito.mock(ChannelHandlerContext.class), Unpooled.wrappedBuffer(msg));
163+
164+
// Assert result
165+
assertEquals(responseHandler.frames.get(0).toString(), "STDOUT: ");
166+
}
167+
168+
@Test
169+
public void exceptionCaught() throws Exception {
170+
171+
// Arrange
172+
final MockedResponseHandler responseHandler = new MockedResponseHandler();
173+
final FramedResponseStreamHandler objectUnderTest = new FramedResponseStreamHandler(responseHandler);
174+
final Exception exception = new Exception();
175+
final Throwable throwable = new Throwable();
176+
throwable.initCause(exception);
177+
178+
// Act
179+
objectUnderTest.exceptionCaught(Mockito.mock(ChannelHandlerContext.class), throwable);
180+
181+
// Assert result
182+
assertEquals(responseHandler.exceptions.get(0).getCause(), exception);
183+
}
184+
}

0 commit comments

Comments
 (0)