Left: | ||
Right: |
OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 } |
OLD | NEW |