Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(90)

Side by Side Diff: Src/GoogleApis.Tests/Apis/Requests/BatchRequestTest.cs

Issue 46460043: Issue 432: Batch request with null callback throws exception (Closed) Base URL: https://google-api-dotnet-client.googlecode.com/hg/
Patch Set: Created 10 years, 7 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 Copyright 2013 Google Inc 2 Copyright 2013 Google Inc
3 3
4 Licensed under the Apache License, Version 2.0 (the "License"); 4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License. 5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at 6 You may obtain a copy of the License at
7 7
8 http://www.apache.org/licenses/LICENSE-2.0 8 http://www.apache.org/licenses/LICENSE-2.0
9 9
10 Unless required by applicable law or agreed to in writing, software 10 Unless required by applicable law or agreed to in writing, software
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 ""code"": 404, 204 ""code"": 404,
205 ""message"": ""Not Found"" 205 ""message"": ""Not Found""
206 } 206 }
207 }"; 207 }";
208 bool successful2ndResponse; 208 bool successful2ndResponse;
209 public BatchMessageHandler(bool successful2ndReponse = true) 209 public BatchMessageHandler(bool successful2ndReponse = true)
210 { 210 {
211 this.successful2ndResponse = successful2ndReponse; 211 this.successful2ndResponse = successful2ndReponse;
212 } 212 }
213 213
214 protected override async Task<HttpResponseMessage> SendAsyncCore(Htt pRequestMessage request, 214 protected override Task<HttpResponseMessage> SendAsyncCore(HttpReque stMessage request,
class 2014/01/06 17:06:47 Will this still execute asynchronously?
peleyal 2014/01/06 21:43:13 there isn't a call to await so declaring the metho
class 2014/01/07 00:49:20 ack. On 2014/01/06 21:43:13, peleyal wrote:
215 CancellationToken cancellationToken) 215 CancellationToken cancellationToken)
216 { 216 {
217 #region Verify Request Message 217 #region Verify Request Message
218 218
219 var contentType = request.Content.Headers.ContentType; 219 var contentType = request.Content.Headers.ContentType;
220 Assert.AreEqual("multipart/mixed", contentType.MediaType.ToStrin g()); 220 Assert.AreEqual("multipart/mixed", contentType.MediaType.ToStrin g());
221 Assert.That(contentType.Parameters.Count, Is.EqualTo(1)); 221 Assert.That(contentType.Parameters.Count, Is.EqualTo(1));
222 Assert.That(contentType.Parameters.First().ToString().StartsWith ("boundary="), 222 Assert.That(contentType.Parameters.First().ToString().StartsWith ("boundary="),
223 "Parameter should start with boundary="); 223 "Parameter should start with boundary=");
224 var boundary = contentType.Parameters.First().ToString().Substri ng("boundary=".Length). 224 var boundary = contentType.Parameters.First().ToString().Substri ng("boundary=".Length).
225 Replace("\"", ""); 225 Replace("\"", "");
226 var expectedContent = ExpectedContentMessage.Replace("BOUNDARY", boundary); 226 var expectedContent = ExpectedContentMessage.Replace("BOUNDARY", boundary);
227 var actuallContent = request.Content.ReadAsStringAsync().Result; 227 var actuallContent = request.Content.ReadAsStringAsync().Result;
228 Assert.That(actuallContent, Is.EqualTo(expectedContent)); 228 Assert.That(actuallContent, Is.EqualTo(expectedContent));
229 229
230 #endregion 230 #endregion
231 231
232 HttpResponseMessage response = new HttpResponseMessage(); 232 HttpResponseMessage response = new HttpResponseMessage();
233 // Response contains 2 responses. The second one is successful b ased on the constructor's parameter. 233 // Response contains 2 responses. The second one is successful b ased on the constructor's parameter.
234 var content = ResponseContent.Replace("BOUNDARY", boundary).Repl ace("SECOND_RESPONSE", 234 var content = ResponseContent.Replace("BOUNDARY", boundary).Repl ace("SECOND_RESPONSE",
235 successful2ndResponse ? SuccessfulResponse : UnsuccessfulRes ponse); 235 successful2ndResponse ? SuccessfulResponse : UnsuccessfulRes ponse);
236 response.Content = new StringContent(content, 236 response.Content = new StringContent(content,
237 Encoding.UTF8, "multipart/mixed"); 237 Encoding.UTF8, "multipart/mixed");
238 response.Content.Headers.ContentType.Parameters.Add(new NameValu eHeaderValue("boundary", boundary)); 238 response.Content.Headers.ContentType.Parameters.Add(new NameValu eHeaderValue("boundary", boundary));
239 239
240 return response; 240 TaskCompletionSource<HttpResponseMessage> tcs = new TaskCompleti onSource<HttpResponseMessage>();
241 tcs.SetResult(response);
242 return tcs.Task;
241 } 243 }
242 } 244 }
243 245
244 [Test] 246 [Test]
245 public void ExecuteAsync_Test() 247 public void ExecuteAsync_Test()
246 { 248 {
247 SubtestExecuteAsync_Test(true); 249 SubtestExecuteAsync_Test(true);
248 } 250 }
249 251
250 [Test] 252 [Test]
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 Assert.That(reqError.Code, Is.EqualTo(404)); 318 Assert.That(reqError.Code, Is.EqualTo(404));
317 Assert.That(reqError.Message, Is.EqualTo("Not Found")); 319 Assert.That(reqError.Message, Is.EqualTo("Not Found"));
318 } 320 }
319 httpMessage = tuple.Item3; // HTTP message 321 httpMessage = tuple.Item3; // HTTP message
320 Assert.That(httpMessage.Content.Headers.ContentType.MediaType, I s.EqualTo("application/json")); 322 Assert.That(httpMessage.Content.Headers.ContentType.MediaType, I s.EqualTo("application/json"));
321 Assert.That(httpMessage.Content.Headers.ContentLength, Is.EqualT o(202)); 323 Assert.That(httpMessage.Content.Headers.ContentLength, Is.EqualT o(202));
322 } 324 }
323 } 325 }
324 326
325 [Test] 327 [Test]
328 public void ExecuteAsync_NoCallback_Test()
329 {
330 var handler = new BatchMessageHandler(true);
331 var initializer = new BaseClientService.Initializer()
332 {
333 HttpClientFactory = new MockHttpClientFactory(handler)
334 };
335
336 using (var service = new MockClientService(initializer, "http://samp le.com"))
337 {
338 var responses = new List<Tuple<MockResponse, RequestError, HttpR esponseMessage>>();
339 var batch = new BatchRequest(service);
340 var request1 = new TestClientServiceRequest(service, new MockReq uest
341 {
342 ETag = "\"100\"",
343 Name = "Name1"
344 });
345 var request2 = new TestClientServiceRequest(service, new MockReq uest
346 {
347 ETag = "\"200\"",
348 Name = "Name1-1"
349 });
350 batch.Queue<MockResponse>(request1, null);
351 batch.Queue<MockResponse>(request2, null);
352 batch.ExecuteAsync().Wait();
353 }
354 }
355
356 [Test]
326 public void CreateOuterRequestContent_Test() 357 public void CreateOuterRequestContent_Test()
327 { 358 {
328 using (var service = new MockClientService("http://sample.com")) 359 using (var service = new MockClientService("http://sample.com"))
329 { 360 {
330 var request1 = new TestClientServiceRequest(service, new MockReq uest 361 var request1 = new TestClientServiceRequest(service, new MockReq uest
331 { 362 {
332 ETag = "\"100\"", 363 ETag = "\"100\"",
333 Name = "Name1" 364 Name = "Name1"
334 }); 365 });
335 var request2 = new TestClientServiceRequest(service, new MockReq uest 366 var request2 = new TestClientServiceRequest(service, new MockReq uest
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 var request = new HttpRequestMessage(HttpMethod.Get, "http://test.co m:2020"); 420 var request = new HttpRequestMessage(HttpMethod.Get, "http://test.co m:2020");
390 request.Content = new StringContent("hello world"); 421 request.Content = new StringContent("hello world");
391 request.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue( "gzip")); 422 request.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue( "gzip"));
392 request.Content.Headers.ContentType = new MediaTypeHeaderValue("appl ication/json"); 423 request.Content.Headers.ContentType = new MediaTypeHeaderValue("appl ication/json");
393 424
394 var requestStr = BatchRequest.CreateRequestContentString(request).Re sult; 425 var requestStr = BatchRequest.CreateRequestContentString(request).Re sult;
395 Assert.AreEqual(expectedMessage, requestStr); 426 Assert.AreEqual(expectedMessage, requestStr);
396 } 427 }
397 } 428 }
398 } 429 }
OLDNEW
« no previous file with comments | « no previous file | Src/GoogleApis.Tests/GoogleApis.Tests.csproj » ('j') | Src/GoogleApis.Tests/GoogleApis.Tests.csproj » ('J')

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b