Skip to content

Commit 7682c69

Browse files
authored
Merge pull request #66 from f-lalonde/patch-1
Update Client.cs
2 parents 16459d3 + b4507de commit 7682c69

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed

csharp-ovh/Client/Client.cs

+5-1
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,11 @@ private async Task<string> CallAsync(string method, string path, string data = n
361361
{
362362
return await response.Content.ReadAsStringAsync().ConfigureAwait(false);
363363
}
364-
364+
if (response.StatusCode == HttpStatusCode.NoContent)
365+
{
366+
return "Success ; Response Status: No Content:204";
367+
}
368+
365369
throw await ExtractExceptionFromHttpResponse(response).ConfigureAwait(false);
366370
}
367371

test/PutRequests.cs

+23
Original file line numberDiff line numberDiff line change
@@ -180,5 +180,28 @@ public async Task PUT_with_T_data_and_T_result()
180180
var headers = requestMessage.Headers;
181181
Assert.AreEqual("$1$747cdaf92e412ea434a387e6ff7b20150ee1172f", headers.GetValues(Client.OVH_SIGNATURE_HEADER).First());
182182
}
183+
184+
[Test]
185+
public async Task PUT_with_no_content_result()
186+
{
187+
var testHandler = A.Fake<FakeHttpMessageHandler>(a => a.CallsBaseMethods());
188+
MockAuthTimeCallWithFakeItEasy(testHandler);
189+
A.CallTo(() =>
190+
testHandler.Send(A<HttpRequestMessage>.That.Matches(
191+
r => r.RequestUri.ToString().Contains("/me/contact"))))
192+
.Returns(Responses.PutWith204Response.response_204_message);
193+
194+
var c = ClientFactory.GetClient(testHandler).AsTestable(timeProvider);
195+
var result = await c.PutAsync("/me/contact");
196+
Assert.AreEqual(Responses.PutWith204Response.success_204_response, result);
197+
198+
var contactCall = Fake.GetCalls(testHandler).Where(call =>
199+
call.Method.Name == "Send" &&
200+
call.GetArgument<HttpRequestMessage>("request").RequestUri.ToString().Contains("/me/contact")).First();
201+
202+
var requestMessage = contactCall.GetArgument<HttpRequestMessage>("request");
203+
var headers = requestMessage.Headers;
204+
Assert.AreEqual("$1$5595b180f954de130f8da7a5a4b55adc3d27556f", headers.GetValues(Client.OVH_SIGNATURE_HEADER).First());
205+
}
183206
}
184207
}

test/Responses/PutResponses.cs

+6
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,10 @@ public static class Put
99
public static readonly HttpResponseMessage me_contact_message =
1010
HttpResponseMessageFactory.Create(me_contact_content, HttpStatusCode.OK);
1111
}
12+
public static class PutWith204Response
13+
{
14+
public static readonly string success_204_response = "Success ; Response Status: No Content:204";
15+
public static readonly HttpResponseMessage response_204_message =
16+
HttpResponseMessageFactory.Create(success_204_response, HttpStatusCode.NoContent);
17+
}
1218
}

0 commit comments

Comments
 (0)