22
33import org .apache .hc .client5 .http .classic .methods .HttpGet ;
44import org .apache .hc .client5 .http .classic .methods .HttpPost ;
5+ import org .apache .hc .core5 .http .Header ;
6+ import org .apache .hc .core5 .http .HeaderElement ;
57import org .apache .hc .core5 .http .ProtocolException ;
68import org .junit .Assert ;
79import org .junit .Test ;
10+ import static org .hamcrest .core .IsEqual .equalTo ;
11+ import static org .hamcrest .MatcherAssert .assertThat ;
12+ import static org .hamcrest .core .Is .is ;
813
14+ import java .util .List ;
15+ import java .util .Arrays ;
16+ import java .util .ArrayList ;
917import java .util .HashMap ;
1018import java .util .Map ;
1119
@@ -24,15 +32,15 @@ public void testNoOp() {
2432
2533 @ Test
2634 public void testAddCustomHeaders () throws ProtocolException {
27- class MyCustomHeaders implements UserCustomHeaderDecorator {
35+ class MyCustomHeaders implements UserCustomHeaderDecorator {
2836 public MyCustomHeaders () {}
2937 @ Override
30- public Map <String , String > getHeaderOverrides () {
31- return new HashMap <String , String >()
38+ public Map <String , List < String > > getHeaderOverrides () {
39+ return new HashMap <String , List < String > >()
3240 {{
33- put ("first" , "1" );
34- put ("second" , "2" );
35- put ("third" , "3" );
41+ put ("first" , List . of ( "1" ) );
42+ put ("second" , List . of ( "2.1" , "2.2" ) );
43+ put ("third" , List . of ( "3" ) );
3644 }};
3745 }
3846 }
@@ -41,38 +49,42 @@ public Map<String, String> getHeaderOverrides() {
4149 HttpGet request = new HttpGet ("http://anyhost" );
4250 request .addHeader ("first" , "myfirstheader" );
4351 request = (HttpGet ) decorator .decorateHeaders (request );
44- Assert .assertEquals (3 , request .getHeaders ().length );
52+
53+ Assert .assertEquals (4 , request .getHeaders ().length );
4554 Assert .assertEquals ("1" , request .getHeader ("first" ).getValue ());
46- Assert .assertEquals ("2" , request .getHeader ("second" ).getValue ());
55+
56+ Header [] second = request .getHeaders ("second" );
57+ Assert .assertEquals ("2.1" , second [0 ].getValue ());
58+ Assert .assertEquals ("2.2" , second [1 ].getValue ());
4759 Assert .assertEquals ("3" , request .getHeader ("third" ).getValue ());
4860
4961 HttpPost request2 = new HttpPost ("http://anyhost" );
5062 request2 .addHeader ("myheader" , "value" );
5163 request2 = (HttpPost ) decorator .decorateHeaders (request2 );
52- Assert .assertEquals (4 , request2 .getHeaders ().length );
64+ Assert .assertEquals (5 , request2 .getHeaders ().length );
5365 }
5466
5567 @ Test
5668 public void testAddBlockedHeaders () throws ProtocolException {
5769 class MyCustomHeaders implements UserCustomHeaderDecorator {
5870 public MyCustomHeaders () {}
5971 @ Override
60- public Map <String , String > getHeaderOverrides () {
61- return new HashMap <String , String >()
72+ public Map <String , List < String > > getHeaderOverrides () {
73+ return new HashMap <String , List < String > >()
6274 {{
63- put ("first" , "1" );
64- put ("SplitSDKVersion" , "2.4" );
65- put ("SplitMachineip" , "xx" );
66- put ("splitMachineName" , "xx" );
67- put ("splitimpressionsmode" , "xx" );
68- put ("HOST" , "xx" );
69- put ("referrer" , "xx" );
70- put ("content-type" , "xx" );
71- put ("content-length" , "xx" );
72- put ("content-encoding" , "xx" );
73- put ("ACCEPT" , "xx" );
74- put ("keep-alive" , "xx" );
75- put ("x-fastly-debug" , "xx" );
75+ put ("first" , List . of ( "1" ) );
76+ put ("SplitSDKVersion" , List . of ( "2.4" ) );
77+ put ("SplitMachineip" , List . of ( "xx" ) );
78+ put ("splitMachineName" , List . of ( "xx" ) );
79+ put ("splitimpressionsmode" , List . of ( "xx" ) );
80+ put ("HOST" , List . of ( "xx" ) );
81+ put ("referrer" , List . of ( "xx" ) );
82+ put ("content-type" , List . of ( "xx" ) );
83+ put ("content-length" , List . of ( "xx" ) );
84+ put ("content-encoding" , List . of ( "xx" ) );
85+ put ("ACCEPT" , List . of ( "xx" ) );
86+ put ("keep-alive" , List . of ( "xx" ) );
87+ put ("x-fastly-debug" , List . of ( "xx" ) );
7688
7789 }};
7890 }
@@ -90,7 +102,7 @@ public void customDecoratorError() {
90102 class MyCustomHeaders implements UserCustomHeaderDecorator {
91103 public MyCustomHeaders () {}
92104 @ Override
93- public Map <String , String > getHeaderOverrides () {
105+ public Map <String , List < String > > getHeaderOverrides () {
94106 throw new RuntimeException ();
95107 }
96108 }
0 commit comments