1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.hc.core5.http.nio.entity;
29
30 import java.io.IOException;
31 import java.nio.file.Files;
32 import java.nio.file.LinkOption;
33 import java.nio.file.Path;
34 import java.nio.file.Paths;
35 import java.nio.file.StandardOpenOption;
36
37 import org.apache.hc.core5.http.ContentType;
38 import org.apache.hc.core5.http.Header;
39 import org.apache.hc.core5.http.message.BasicHeader;
40 import org.apache.hc.core5.http.nio.AsyncEntityProducer;
41 import org.junit.jupiter.api.Assertions;
42 import org.junit.jupiter.api.Test;
43
44
45
46
47 public class TestAsyncEntityProducers {
48
49 @Test
50 public void testPathEntityProducer() throws IOException {
51 final Path path = Paths.get("src/test/resources/test-ssl.txt");
52 final AsyncEntityProducer producer = AsyncEntityProducers.create(path, ContentType.APPLICATION_OCTET_STREAM,
53 StandardOpenOption.READ, LinkOption.NOFOLLOW_LINKS);
54 try {
55 Assertions.assertFalse(producer.isChunked());
56 Assertions.assertEquals(Files.size(path), producer.getContentLength());
57 Assertions.assertEquals(ContentType.APPLICATION_OCTET_STREAM.toString(), producer.getContentType());
58 } finally {
59 producer.releaseResources();
60 }
61 }
62
63 @Test
64 public void testPathEntityProducerWithTrailers() throws IOException {
65 final Path path = Paths.get("src/test/resources/test-ssl.txt");
66 final Header header1 = new BasicHeader("Tailer1", "Value1");
67 final Header header2 = new BasicHeader("Tailer2", "Value2");
68 final AsyncEntityProducer producer = AsyncEntityProducers.create(path, ContentType.APPLICATION_OCTET_STREAM,
69 header1, header2);
70 try {
71 Assertions.assertTrue(producer.isChunked());
72 Assertions.assertEquals(-1, producer.getContentLength());
73 Assertions.assertEquals(ContentType.APPLICATION_OCTET_STREAM.toString(), producer.getContentType());
74 } finally {
75 producer.releaseResources();
76 }
77 }
78 }