66import com .microsoft .graph .core .models .BatchRequestStep ;
77import com .microsoft .graph .core .requests .IBaseClient ;
88import com .microsoft .kiota .HttpMethod ;
9+ import com .microsoft .kiota .RequestHeaders ;
910import com .microsoft .kiota .RequestInformation ;
1011import com .microsoft .kiota .authentication .AnonymousAuthenticationProvider ;
1112
13+ import com .microsoft .kiota .authentication .AuthenticationProvider ;
14+ import com .microsoft .kiota .http .OkHttpRequestAdapter ;
1215import com .microsoft .kiota .http .middleware .UrlReplaceHandler ;
1316import okhttp3 .*;
1417import org .junit .jupiter .api .Assertions ;
2528
2629import static com .microsoft .graph .core .CoreConstants .ReplacementConstants .USERS_ENDPOINT_WITH_REPLACE_TOKEN ;
2730import static org .junit .jupiter .api .Assertions .*;
31+ import static org .mockito .Mockito .mock ;
2832
2933class BatchRequestContentTest {
3034 static final String requestUrl = "https://graph.microsoft.com/v1.0" +USERS_ENDPOINT_WITH_REPLACE_TOKEN ;
@@ -234,6 +238,61 @@ void BatchRequestContent_GetBatchRequestContentFromStepDoesNotModifyDateTimes()
234238 assertEquals (expectedJson , requestContentString );
235239 }
236240 @ Test
241+ void BatchRequestContent_DoNotAddAuthorizationHeader () throws Exception {
242+ OkHttpRequestAdapter adapter = new OkHttpRequestAdapter (mock (AuthenticationProvider .class ));
243+
244+ String expectedJson = "{\n " +
245+ " \" requests\" : [\n " +
246+ " {\n " +
247+ " \" id\" : \" 1\" ,\n " +
248+ " \" url\" : \" /me\" ,\n " +
249+ " \" method\" : \" GET\" ,\n " +
250+ " \" headers\" : {\n " +
251+ " \" accept\" : \" application/json\" \n " +
252+ " }\n " +
253+ " },\n " +
254+ " {\n " +
255+ " \" id\" : \" 2\" ,\n " +
256+ " \" url\" : \" /me\" ,\n " +
257+ " \" method\" : \" GET\" \n " +
258+ " }\n " +
259+ " ]\n " +
260+ "}" ;
261+ //The following string is the same size as a token
262+ String longBearerString = "bbcbbbcbccbbabbacbccccbccabbcacacaaabccbccbbbbaabbabcccccbcbcacbbccbcbcaaacaacccacccbabacccabbccbccacccabcbbbbbacaacccabaaacaabcbacbaabcacabcbaaaccaccbbaaaabbbabbcaabbacccccaabbcabbbbbbbaaababaaabbbbcbbbcacbaaccaccabbcbabbabacbcccacbaccacaacaaacbacbaaaacbcbbacbcaaaaabcababbbcaabaaaabaaccbaccaababcbccbbacbaaabcbcbcbaaabcccabcacbbcbbabcccaccbacaaccaaaabcaacaccababbcbcabbccbaaaaaacccbcbccbaaccabbacbaaaacaccabcbbbcaabccccbbabbccaaaccbbbabbabcbcabcbccabbaabaacaaabbacaaccbcabaaaabcaabbabccabbcabcabbbaaaacccbcbcbbaacbbbbbcbbabcbabcbbcbbbaacccaababaccbaabcccccabbcabcababacbcaacbbaabaaacaabbacabcbcabcaabcccccacbaaacccbcabacbcbbbcccaaabacccaabcbcaababaabbacacabcbccacbbcacbbcaaccbbbcccbaaaacbcacabbcaaaacbcaacaccccbbaaabcccaacbabbbcbbccbacabccabaabacbbbbbcbaaaaaccabcbccabcccbcccabababbbbcbbcbbcbcabaabaabccbabcbbbabaaacaaaabcbcabaccaaaaacbaaabcbaccbaccbabacbcabbcbcbbaabbbbccaacccaabacacbabbcacabcbaccbcacbccaabcbbacbacbacbbaaccaaaaccacbcababccccccbbcbacacaaabaaaccbaabaacccbaaabcbcaabaaaaabcabacbabcbbccccbacbaabccaaabcccbbacbbacacaccabbcaacbbbbcbcbbcaabaacbbbcbbcbaaacccbacbaabacacbbabcaaaacaabacbaacaaaabbcacbacbcccacbcabcccacacaaccbbbcaacabcccaaacbabaaccbcbaacacbacaababcabcbccabcabcccaacabacabccaacbbcabbcaacbccaababacccaccabacbbbaabaccbcabcaabbcccacccbcbcabbccabbabaaaccacccbcbacabcaabcaccbbcbaaacbaabbbbcbccbbcccaababababaabacccbbbcabbaaacbcaaabccbbbccabbbcccbcacacaaabbabcacbacaacbbbcbbbbbccabbbabcabbcbacccaaabaaacbaabbacabbabcbcbcacbbaabbabcbcaacbabbcccbabaaccabbacbcaaacabbbbcaacbccbbbbacbcabbbaabcacaaabaabbaaccabbcabcabbacaaaacacabbabccacbbabbbbcabbaaccabcccaabbaaaacaabcbacabbaacaccbbbbaaaaacbcbacbbaaaabbabcaacaaacbbaabcccbbcbaacabbbbcaccaaaabcacbcbaaabbbcabcabcbbbbacbaccaacbccaacbbcaccaaaaacbabbbcbcbacbacbaccaacbcbcbbcaaaabaaabaabccaaaabbcabaaabcbcccbbcbaacacbbacacbabbcbaccabacbabcbcaabbbaabccccccaaccbcbccccbbbbcabaaacbbbaacbbaccaabcbcaacaacaacacaababcccbacbbccccbcacbcbcaacaaaacccccccaccaababaacbaabbcbbbccaacbabbcbcaaabbccacbbaabbbbcbbccbcccbbcacabaaacbacacbcaaabcbccacacccbbaacbacbbcbabbcbbbbcaccbaaccbcbcaabcababcbbbcccbcbaababcacbacbbbacacacabbccabbbaaaaacaccbbccbccbabaababcbbccabcaaacaccacabbaabacacabaccabacbacabbccbabaccbabcccbbcbbbaaabbccabbcbbbacacbbbabbcbbacbcabacaccabbbcbabbcbcacbcbbabbbbcabcbbabbbcaaccbaaaaccbababbbaabcbbbaacabbbbcabcabbcabbacabbccccaabaaaaabbcbabacbacbabcabcccabbbccbbcccaacacaabbcbabcbabaaaababbbacabaacbabbabcbbbcbccbacbcbccbbbccccbacaccbaccaaabbaacbbaaabbbcaccbabbcccbbbbccacbbaaacabbbbaabbabcccabcbcbbccccbacccabbbaaabcacccaabbabaccccbbbcccccaacbbbccbcabbbcccababbbcacccccccabccbbcaabccbbbaaccabbcaabcacabbcbbabcccaccccaaacbbbccaaabcbacabbbacbaccaabcbabababbcbcacaabcaabcbcbbcaaacaacabaaababbbacaccababaccbacacacacacbcccbabcbabcabccbaabcccababcbacbccccccacacbbacccccbaccbacaacbacacbcccccaaaacbaaaaccbacbbcacccbbbaabaaaccaccbcabcccccacaaaabcbabbacbbbcaaababcbacccbabcbaaabbcbaaacaabbcaaccaaccbacbaaaaaaabbaacaaabacbbcaacaacabbcabaccaaacbaccccbcccbcbcaaacbacaacccaccaacabacaaaabbbbbbbcacacbabccacacabbbababbbbcbabaaacaaacbacbcabbccacaacccbbbcbbacaccbbbaaabababbcbaacbcabcabaaccbcaaacbbbaacacccbbcaabcbacabbccbcbbbabbbaabacacaccaabbcbbaccbaaabcabbababaccca" ;
263+ RequestInformation requestInfo = new RequestInformation ();
264+ requestInfo .urlTemplate = "{+baseurl}/users/{user%2Did}{?%24expand,%24select}" ;
265+ HashMap <String , Object > pathParameters = new HashMap <>();
266+ pathParameters .put ("baseurl" , "https://graph.microsoft.com/v1.0" );
267+ pathParameters .put ("user%2Did" , "TokenToReplace" );
268+ requestInfo .pathParameters = pathParameters ;
269+ requestInfo .httpMethod = HttpMethod .GET ;
270+ // Only one header should be present in the headers object of the Json Body
271+ requestInfo .headers .add ("accept" , "application/json" );
272+ requestInfo .headers .add ("authorization" , longBearerString );
273+ RequestInformation requestInfo2 = new RequestInformation ();
274+ requestInfo2 .urlTemplate = "{+baseurl}/users/{user%2Did}{?%24expand,%24select}" ;
275+ HashMap <String , Object > pathParameters2 = new HashMap <>();
276+ pathParameters2 .put ("baseurl" , "https://graph.microsoft.com/v1.0" );
277+ pathParameters2 .put ("user%2Did" , "TokenToReplace" );
278+ requestInfo2 .pathParameters = pathParameters2 ;
279+ requestInfo2 .httpMethod = HttpMethod .GET ;
280+ // No headers object should be present in the Json body
281+ requestInfo2 .headers .add ("authorization" , longBearerString );
282+
283+ BatchRequestContent batchRequestContent = new BatchRequestContent (client );
284+ batchRequestContent .addBatchRequestStep (new BatchRequestStep ("1" ,adapter .convertToNativeRequest (requestInfo )));
285+ batchRequestContent .addBatchRequestStep (new BatchRequestStep ("2" ,adapter .convertToNativeRequest (requestInfo2 )));
286+
287+ InputStream stream = batchRequestContent .getBatchRequestContent ();
288+ String requestContentString = readInputStream (stream );
289+ requestContentString = requestContentString .replace ("\n " , "" ).replaceAll ("\\ s" , "" );
290+ expectedJson = expectedJson .replace ("\n " , "" ).replaceAll ("\\ s" , "" );
291+
292+ assertNotNull (requestContentString );
293+ assertEquals (expectedJson , requestContentString );
294+ }
295+ @ Test
237296 void BatchRequestContent_AddBatchRequestStepWithHttpRequestMessage () {
238297 BatchRequestContent batchRequestContent = new BatchRequestContent (client );
239298 assertTrue (batchRequestContent .getBatchRequestSteps ().isEmpty ());
@@ -248,6 +307,7 @@ void BatchRequestContent_AddBatchRequestStepWithHttpRequestMessage() {
248307 Assertions .assertEquals (batchRequestContent .getBatchRequestSteps ().get (requestId ).getRequest ().url ().uri ().toString (), request .url ().uri ().toString ());
249308 Assertions .assertEquals (batchRequestContent .getBatchRequestSteps ().get (requestId ).getRequest ().method (), request .method ());
250309 }
310+
251311 @ Test
252312 void BatchRequestContent_AddBatchRequestStepWithHttpRequestMessageToBatchRequestContentWithMaxSteps () {
253313 BatchRequestContent batchRequestContent = new BatchRequestContent (client );
0 commit comments