|
15 | 15 | import java.nio.ByteBuffer; |
16 | 16 | import java.nio.ByteOrder; |
17 | 17 | import java.util.Arrays; |
| 18 | +import java.util.Objects; |
18 | 19 | import java.util.concurrent.ThreadLocalRandom; |
19 | 20 | import java.util.stream.Stream; |
20 | 21 |
|
| 22 | +import static com.azure.core.util.FluxUtil.collectBytesInByteBufferStream; |
| 23 | +import static com.azure.storage.common.implementation.structuredmessage.StructuredMessageConstants.CRC64_LENGTH; |
| 24 | +import static com.azure.storage.common.implementation.structuredmessage.StructuredMessageConstants.V1_HEADER_LENGTH; |
| 25 | +import static com.azure.storage.common.implementation.structuredmessage.StructuredMessageConstants.V1_SEGMENT_HEADER_LENGTH; |
21 | 26 | import static org.junit.jupiter.api.Assertions.assertEquals; |
22 | 27 | import static org.junit.jupiter.api.Assertions.assertThrows; |
23 | 28 |
|
24 | 29 | public class MessageEncoderTests { |
25 | 30 |
|
26 | | - private static final int V1_HEADER_LENGTH = 13; |
27 | | - private static final int V1_SEGMENT_HEADER_LENGTH = 10; |
28 | | - private static final int CRC64_LENGTH = 8; |
29 | | - |
30 | 31 | private static byte[] getRandomData(int size) { |
31 | 32 | byte[] result = new byte[size]; |
32 | 33 | ThreadLocalRandom.current().nextBytes(result); |
@@ -156,7 +157,7 @@ public void readAll(int size, int segmentSize, StructuredMessageFlags flags) thr |
156 | 157 |
|
157 | 158 | StructuredMessageEncoder structuredMessageEncoder = new StructuredMessageEncoder(size, segmentSize, flags); |
158 | 159 |
|
159 | | - byte[] actual = structuredMessageEncoder.encode(unencodedBuffer).array(); |
| 160 | + byte[] actual = collectBytesInByteBufferStream(structuredMessageEncoder.encode(unencodedBuffer)).block(); |
160 | 161 | byte[] expected = buildStructuredMessage(unencodedBuffer, segmentSize, flags).array(); |
161 | 162 |
|
162 | 163 | Assertions.assertArrayEquals(expected, actual); |
@@ -191,33 +192,39 @@ public void readMultiple(int segmentSize, StructuredMessageFlags flags) throws I |
191 | 192 | byte[] expected = buildStructuredMessage(allWrappedData, segmentSize, flags).array(); |
192 | 193 |
|
193 | 194 | ByteArrayOutputStream allActualData = new ByteArrayOutputStream(); |
194 | | - allActualData.write(structuredMessageEncoder.encode(wrappedData1).array()); |
195 | | - allActualData.write(structuredMessageEncoder.encode(wrappedData2).array()); |
196 | | - allActualData.write(structuredMessageEncoder.encode(wrappedData3).array()); |
| 195 | + allActualData.write(Objects |
| 196 | + .requireNonNull(collectBytesInByteBufferStream(structuredMessageEncoder.encode(wrappedData1)).block())); |
| 197 | + allActualData.write(Objects |
| 198 | + .requireNonNull(collectBytesInByteBufferStream(structuredMessageEncoder.encode(wrappedData2)).block())); |
| 199 | + allActualData.write(Objects |
| 200 | + .requireNonNull(collectBytesInByteBufferStream(structuredMessageEncoder.encode(wrappedData3)).block())); |
197 | 201 |
|
198 | 202 | Assertions.assertArrayEquals(expected, allActualData.toByteArray()); |
199 | 203 | } |
200 | 204 |
|
201 | 205 | @Test |
202 | | - public void emptyBuffer() throws IOException { |
| 206 | + public void emptyBuffer() { |
203 | 207 | StructuredMessageEncoder encoder = new StructuredMessageEncoder(10, 5, StructuredMessageFlags.NONE); |
204 | 208 | ByteBuffer emptyBuffer = ByteBuffer.allocate(0); |
205 | | - ByteBuffer result = encoder.encode(emptyBuffer); |
| 209 | + ByteBuffer result = ByteBuffer |
| 210 | + .wrap(Objects.requireNonNull(collectBytesInByteBufferStream(encoder.encode(emptyBuffer)).block())); |
206 | 211 | assertEquals(0, result.remaining()); |
207 | 212 | } |
208 | 213 |
|
209 | 214 | @Test |
210 | | - public void contentAlreadyEncoded() throws IOException { |
| 215 | + public void contentAlreadyEncoded() { |
211 | 216 | StructuredMessageEncoder encoder = new StructuredMessageEncoder(4, 2, StructuredMessageFlags.NONE); |
212 | | - encoder.encode(ByteBuffer.wrap(new byte[] { 1, 2, 3, 4 })); |
213 | | - assertThrows(IllegalArgumentException.class, () -> encoder.encode(ByteBuffer.wrap(new byte[] { 1, 2 }))); |
| 217 | + encoder.encode(ByteBuffer.wrap(new byte[] { 1, 2, 3, 4 })).blockLast(); |
| 218 | + assertThrows(IllegalArgumentException.class, |
| 219 | + () -> encoder.encode(ByteBuffer.wrap(new byte[] { 1, 2 })).blockLast()); |
214 | 220 | } |
215 | 221 |
|
216 | 222 | @Test |
217 | | - public void bufferLengthExceedsContentLength() throws IOException { |
| 223 | + public void bufferLengthExceedsContentLength() { |
218 | 224 | StructuredMessageEncoder encoder = new StructuredMessageEncoder(4, 2, StructuredMessageFlags.NONE); |
219 | | - encoder.encode(ByteBuffer.wrap(new byte[] { 1, 2, 3 })); |
220 | | - assertThrows(IllegalArgumentException.class, () -> encoder.encode(ByteBuffer.wrap(new byte[] { 1, 2 }))); |
| 225 | + encoder.encode(ByteBuffer.wrap(new byte[] { 1, 2, 3 })).blockLast(); |
| 226 | + assertThrows(IllegalArgumentException.class, |
| 227 | + () -> encoder.encode(ByteBuffer.wrap(new byte[] { 1, 2 })).blockLast()); |
221 | 228 | } |
222 | 229 |
|
223 | 230 | @Test |
|
0 commit comments