Skip to content

Commit b15ee7f

Browse files
author
Michael Hallett
committed
Merge branch 'baseurl-to-uri' of git://github.com/scottschluer/RestSharp into scottschluer-baseurl-to-uri
Conflicts: RestSharp.IntegrationTests/AsyncTests.cs RestSharp.IntegrationTests/AuthenticationTests.cs RestSharp.IntegrationTests/CompressionTests.cs RestSharp.IntegrationTests/FileTests.cs RestSharp.IntegrationTests/StatusCodeTests.cs RestSharp.IntegrationTests/oAuth1Tests.cs RestSharp.Tests/UrlBuilderTests.cs RestSharp/IRestClient.cs RestSharp/RestClient.cs
2 parents a1a4e07 + c8547c6 commit b15ee7f

File tree

9 files changed

+169
-97
lines changed

9 files changed

+169
-97
lines changed

RestSharp.IntegrationTests/AsyncTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ public class AsyncTests
1212
[Fact]
1313
public void Can_Perform_GET_Async()
1414
{
15-
const string baseUrl = "http://localhost:8888/";
15+
Uri baseUrl = new Uri("http://localhost:8888/");
1616
const string val = "Basic async test";
1717

1818
var resetEvent = new ManualResetEvent(false);
1919

20-
using (SimpleServer.Create(baseUrl, Handlers.EchoValue(val)))
20+
using (SimpleServer.Create(baseUrl.AbsoluteUri, Handlers.EchoValue(val)))
2121
{
2222
var client = new RestClient(baseUrl);
2323
var request = new RestRequest("");
@@ -36,12 +36,12 @@ public void Can_Perform_GET_Async()
3636
[Fact]
3737
public void Can_Perform_GET_Async_Without_Async_Handle()
3838
{
39-
const string baseUrl = "http://localhost:8888/";
39+
Uri baseUrl = new Uri("http://localhost:8888/");
4040
const string val = "Basic async test";
4141

4242
var resetEvent = new ManualResetEvent(false);
4343

44-
using (SimpleServer.Create(baseUrl, Handlers.EchoValue(val)))
44+
using (SimpleServer.Create(baseUrl.AbsoluteUri, Handlers.EchoValue(val)))
4545
{
4646
var client = new RestClient(baseUrl);
4747
var request = new RestRequest("");

RestSharp.IntegrationTests/AuthenticationTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ public class AuthenticationTests
1414
[Fact]
1515
public void Can_Authenticate_With_Basic_Http_Auth()
1616
{
17-
const string baseUrl = "http://localhost:8888/";
18-
using (SimpleServer.Create(baseUrl, UsernamePasswordEchoHandler))
17+
Uri baseUrl = new Uri("http://localhost:8888/");
18+
using(SimpleServer.Create(baseUrl.AbsoluteUri, UsernamePasswordEchoHandler))
1919
{
2020
var client = new RestClient(baseUrl)
2121
{
@@ -39,7 +39,7 @@ private static void UsernamePasswordEchoHandler(HttpListenerContext context)
3939
//[Fact]
4040
public void Can_Authenticate_With_OAuth()
4141
{
42-
var baseUrl = "https://api.twitter.com";
42+
var baseUrl = new Uri("https://api.twitter.com");
4343
var client = new RestClient(baseUrl);
4444

4545
client.Authenticator = OAuth1Authenticator.ForRequestToken(

RestSharp.IntegrationTests/CompressionTests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ public class CompressionTests
1111
[Fact]
1212
public void Can_Handle_Gzip_Compressed_Content()
1313
{
14-
const string baseUrl = "http://localhost:8888/";
14+
Uri baseUrl = new Uri("http://localhost:8888/");
1515

16-
using (SimpleServer.Create(baseUrl, GzipEchoValue("This is some gzipped content")))
16+
using(SimpleServer.Create(baseUrl.AbsoluteUri, GzipEchoValue("This is some gzipped content")))
1717
{
1818
var client = new RestClient(baseUrl);
1919
var request = new RestRequest("");
@@ -26,9 +26,9 @@ public void Can_Handle_Gzip_Compressed_Content()
2626
[Fact]
2727
public void Can_Handle_Deflate_Compressed_Content()
2828
{
29-
const string baseUrl = "http://localhost:8888/";
29+
Uri baseUrl = new Uri("http://localhost:8888/");
3030

31-
using (SimpleServer.Create(baseUrl, DeflateEchoValue("This is some deflated content")))
31+
using(SimpleServer.Create(baseUrl.AbsoluteUri, DeflateEchoValue("This is some deflated content")))
3232
{
3333
var client = new RestClient(baseUrl);
3434
var request = new RestRequest("");
@@ -41,9 +41,9 @@ public void Can_Handle_Deflate_Compressed_Content()
4141
[Fact]
4242
public void Can_Handle_Uncompressed_Content()
4343
{
44-
const string baseUrl = "http://localhost:8888/";
44+
Uri baseUrl = new Uri("http://localhost:8888/");
4545

46-
using (SimpleServer.Create(baseUrl, Handlers.EchoValue("This is some sample content")))
46+
using(SimpleServer.Create(baseUrl.AbsoluteUri, Handlers.EchoValue("This is some sample content")))
4747
{
4848
var client = new RestClient(baseUrl);
4949
var request = new RestRequest("");

RestSharp.IntegrationTests/FileTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ public class FileTests
1010
[Fact]
1111
public void Handles_Binary_File_Download()
1212
{
13-
const string baseUrl = "http://localhost:8888/";
13+
Uri baseUrl = new Uri("http://localhost:8888/");
1414

15-
using (SimpleServer.Create(baseUrl, Handlers.FileHandler))
15+
using(SimpleServer.Create(baseUrl.AbsoluteUri, Handlers.FileHandler))
1616
{
1717
var client = new RestClient(baseUrl);
1818
var request = new RestRequest("Assets/Koala.jpg");

RestSharp.IntegrationTests/StatusCodeTests.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Linq;
1+
using System;
2+
using System.Linq;
23
using System.Net;
34
using RestSharp.IntegrationTests.Helpers;
45
using Xunit;
@@ -10,9 +11,9 @@ public class StatusCodeTests
1011
[Fact]
1112
public void Handles_GET_Request_404_Error()
1213
{
13-
const string baseUrl = "http://localhost:8888/";
14+
Uri baseUrl = new Uri("http://localhost:8080/");
1415

15-
using (SimpleServer.Create(baseUrl, UrlToStatusCodeHandler))
16+
using(SimpleServer.Create(baseUrl.AbsoluteUri, UrlToStatusCodeHandler))
1617
{
1718
var client = new RestClient(baseUrl);
1819
var request = new RestRequest("404");
@@ -30,7 +31,7 @@ public void Handles_GET_Request_404_Error_With_Body()
3031
//using (SimpleServer.Create(baseUrl, Handlers.Generic<ResponseHandler>()))
3132
using (SimpleServer.Create(baseUrl, UrlToStatusCodeHandler))
3233
{
33-
var client = new RestClient(baseUrl);
34+
var client = new RestClient(new Uri("http://nonexistantdomainimguessing.org"));
3435
var request = new RestRequest("404WithBody");
3536
var response = client.Execute(request);
3637

@@ -46,9 +47,9 @@ void UrlToStatusCodeHandler(HttpListenerContext obj)
4647
[Fact]
4748
public void Handles_Different_Root_Element_On_Http_Error()
4849
{
49-
const string baseUrl = "http://localhost:8888/";
50+
Uri baseUrl = new Uri("http://localhost:8888/");
5051

51-
using (SimpleServer.Create(baseUrl, Handlers.Generic<ResponseHandler>()))
52+
using(SimpleServer.Create(baseUrl.AbsoluteUri, Handlers.Generic<ResponseHandler>()))
5253
{
5354
var client = new RestClient(baseUrl);
5455
var request = new RestRequest("error");
@@ -72,9 +73,9 @@ public void Handles_Different_Root_Element_On_Http_Error()
7273
[Fact]
7374
public void Handles_Default_Root_Element_On_No_Error()
7475
{
75-
const string baseUrl = "http://localhost:8888/";
76+
Uri baseUrl = new Uri("http://localhost:8888/");
7677

77-
using (SimpleServer.Create(baseUrl, Handlers.Generic<ResponseHandler>()))
78+
using(SimpleServer.Create(baseUrl.AbsoluteUri, Handlers.Generic<ResponseHandler>()))
7879
{
7980
var client = new RestClient(baseUrl);
8081
var request = new RestRequest("success");

RestSharp.IntegrationTests/oAuth1Tests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public void Can_Authenticate_With_OAuth()
2020
const string consumerKey = "";
2121
const string consumerSecret = "";
2222

23-
var baseUrl = "http://api.twitter.com";
23+
var baseUrl = new Uri("http://api.twitter.com");
2424
var client = new RestClient(baseUrl);
2525

2626
client.Authenticator = OAuth1Authenticator.ForRequestToken(consumerKey, consumerSecret);
@@ -114,7 +114,7 @@ public void Can_Authenticate_Netflix_With_OAuth()
114114
const string consumerKey = "";
115115
const string consumerSecret = "";
116116

117-
var baseUrl = "http://api.netflix.com";
117+
var baseUrl = new Uri("http://api.netflix.com");
118118
var client = new RestClient(baseUrl)
119119
{
120120
Authenticator = OAuth1Authenticator.ForRequestToken(consumerKey, consumerSecret)
@@ -134,7 +134,7 @@ public void Can_Authenticate_Netflix_With_OAuth()
134134
Assert.NotNull(oauth_token_secret);
135135
Assert.NotNull(applicationName);
136136

137-
var baseSslUrl = "https://api-user.netflix.com";
137+
var baseSslUrl = new Uri("https://api-user.netflix.com");
138138
var sslClient = new RestClient(baseSslUrl);
139139

140140
request = new RestRequest("oauth/login");
@@ -211,7 +211,7 @@ public void Can_Authenticate_LinkedIN_With_OAuth()
211211
// request token
212212
var client = new RestClient
213213
{
214-
BaseUrl = "https://api.linkedin.com/uas/oauth",
214+
BaseUrl = new Uri("https://api.linkedin.com/uas/oauth"),
215215
Authenticator = OAuth1Authenticator.ForRequestToken(consumerKey, consumerSecret, "http://localhost")
216216
};
217217
var requestTokenRequest = new RestRequest("requestToken");
@@ -275,7 +275,7 @@ public void Can_Retrieve_Member_Profile_Field_Field_Selector_From_LinkedIN()
275275
// arrange
276276
var client = new RestClient
277277
{
278-
BaseUrl = "http://api.linkedin.com/v1",
278+
BaseUrl = new Uri("http://api.linkedin.com/v1"),
279279
Authenticator = OAuth1Authenticator.ForProtectedResource(consumerKey, consumerSecret, accessToken, accessSecret)
280280
};
281281
var request = new RestRequest("people/~:(id,first-name,last-name)");
@@ -301,7 +301,7 @@ public void Can_Query_Vimeo()
301301
// arrange
302302
var client = new RestClient
303303
{
304-
BaseUrl = "http://vimeo.com/api/rest/v2",
304+
BaseUrl = new Uri("http://vimeo.com/api/rest/v2"),
305305
Authenticator = OAuth1Authenticator.ForRequestToken(consumerKey, consumerSecret)
306306
};
307307
var request = new RestRequest();

RestSharp.Tests/UrlBuilderTests.cs

Lines changed: 78 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public void Should_not_duplicate_question_mark()
2626
public void GET_with_leading_slash()
2727
{
2828
var request = new RestRequest("/resource");
29-
var client = new RestClient("http://example.com");
29+
var client = new RestClient(new Uri("http://example.com"));
3030
var expected = new Uri("http://example.com/resource");
3131
var output = client.BuildUri(request);
3232

@@ -37,7 +37,7 @@ public void GET_with_leading_slash()
3737
public void POST_with_leading_slash()
3838
{
3939
var request = new RestRequest("/resource", Method.POST);
40-
var client = new RestClient("http://example.com");
40+
var client = new RestClient(new Uri("http://example.com"));
4141
var expected = new Uri("http://example.com/resource");
4242
var output = client.BuildUri(request);
4343

@@ -51,7 +51,7 @@ public void GET_with_leading_slash_and_baseurl_trailing_slash()
5151

5252
request.AddParameter("foo", "bar");
5353

54-
var client = new RestClient("http://example.com/");
54+
var client = new RestClient(new Uri("http://example.com"));
5555
var expected = new Uri("http://example.com/resource?foo=bar");
5656
var output = client.BuildUri(request);
5757

@@ -77,7 +77,7 @@ public void GET_wth_trailing_slash_and_query_parameters()
7777
public void POST_with_leading_slash_and_baseurl_trailing_slash()
7878
{
7979
var request = new RestRequest("/resource", Method.POST);
80-
var client = new RestClient("http://example.com/");
80+
var client = new RestClient(new Uri("http://example.com"));
8181
var expected = new Uri("http://example.com/resource");
8282
var output = client.BuildUri(request);
8383

@@ -88,7 +88,7 @@ public void POST_with_leading_slash_and_baseurl_trailing_slash()
8888
public void GET_with_resource_containing_slashes()
8989
{
9090
var request = new RestRequest("resource/foo");
91-
var client = new RestClient("http://example.com");
91+
var client = new RestClient(new Uri("http://example.com"));
9292
var expected = new Uri("http://example.com/resource/foo");
9393
var output = client.BuildUri(request);
9494

@@ -99,7 +99,7 @@ public void GET_with_resource_containing_slashes()
9999
public void POST_with_resource_containing_slashes()
100100
{
101101
var request = new RestRequest("resource/foo", Method.POST);
102-
var client = new RestClient("http://example.com");
102+
var client = new RestClient(new Uri("http://example.com"));
103103
var expected = new Uri("http://example.com/resource/foo");
104104
var output = client.BuildUri(request);
105105

@@ -113,7 +113,7 @@ public void GET_with_resource_containing_tokens()
113113

114114
request.AddUrlSegment("foo", "bar");
115115

116-
var client = new RestClient("http://example.com");
116+
var client = new RestClient(new Uri("http://example.com"));
117117
var expected = new Uri("http://example.com/resource/bar");
118118
var output = client.BuildUri(request);
119119

@@ -140,7 +140,7 @@ public void POST_with_resource_containing_tokens()
140140

141141
request.AddUrlSegment("foo", "bar");
142142

143-
var client = new RestClient("http://example.com");
143+
var client = new RestClient(new Uri("http://example.com"));
144144
var expected = new Uri("http://example.com/resource/bar");
145145
var output = client.BuildUri(request);
146146

@@ -151,8 +151,8 @@ public void POST_with_resource_containing_tokens()
151151
public void GET_with_empty_request()
152152
{
153153
var request = new RestRequest();
154-
var client = new RestClient("http://example.com/resource");
155-
var expected = new Uri("http://example.com/resource");
154+
var client = new RestClient(new Uri("http://example.com"));
155+
var expected = new Uri("http://example.com/");
156156
var output = client.BuildUri(request);
157157

158158
Assert.Equal(expected, output);
@@ -162,7 +162,7 @@ public void GET_with_empty_request()
162162
public void GET_with_empty_request_and_bare_hostname()
163163
{
164164
var request = new RestRequest();
165-
var client = new RestClient("http://example.com");
165+
var client = new RestClient(new Uri("http://example.com"));
166166
var expected = new Uri("http://example.com/");
167167
var output = client.BuildUri(request);
168168

@@ -199,5 +199,72 @@ public void GET_with_multiple_instances_of_same_key()
199199

200200
Assert.Equal(expected, output);
201201
}
202+
203+
[Fact]
204+
public void GET_with_Uri_containing_tokens()
205+
{
206+
var request = new RestRequest();
207+
208+
request.AddUrlSegment("foo", "bar");
209+
210+
var client = new RestClient(new Uri("http://example.com/{foo}"));
211+
var expected = new Uri("http://example.com/bar");
212+
var output = client.BuildUri(request);
213+
214+
Assert.Equal(expected, output);
215+
}
216+
217+
[Fact]
218+
public void GET_with_Url_string_containing_tokens()
219+
{
220+
var request = new RestRequest();
221+
222+
request.AddUrlSegment("foo", "bar");
223+
224+
var client = new RestClient("http://example.com/{foo}");
225+
var expected = new Uri("http://example.com/bar");
226+
var output = client.BuildUri(request);
227+
228+
Assert.Equal(expected, output);
229+
}
230+
231+
[Fact]
232+
public void GET_with_Uri_and_resource_containing_tokens()
233+
{
234+
var request = new RestRequest("resource/{baz}");
235+
236+
request.AddUrlSegment("foo", "bar");
237+
request.AddUrlSegment("baz", "bat");
238+
239+
var client = new RestClient(new Uri("http://example.com/{foo}"));
240+
var expected = new Uri("http://example.com/bar/resource/bat");
241+
var output = client.BuildUri(request);
242+
243+
Assert.Equal(expected, output);
244+
}
245+
246+
[Fact]
247+
public void GET_with_Url_string_and_resource_containing_tokens()
248+
{
249+
var request = new RestRequest("resource/{baz}");
250+
251+
request.AddUrlSegment("foo", "bar");
252+
request.AddUrlSegment("baz", "bat");
253+
254+
var client = new RestClient("http://example.com/{foo}");
255+
var expected = new Uri("http://example.com/bar/resource/bat");
256+
var output = client.BuildUri(request);
257+
258+
Assert.Equal(expected, output);
259+
}
260+
261+
[Fact]
262+
public void GET_with_Invalid_Url_string_throws_exception()
263+
{
264+
Assert.Throws<UriFormatException>(delegate
265+
{
266+
var client = new RestClient("invalid url");
267+
});
268+
}
202269
}
203270
}

RestSharp/IRestClient.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public interface IRestClient
6464
/// <summary>
6565
///
6666
/// </summary>
67-
string BaseUrl { get; set; }
67+
Uri BaseUrl { get; set; }
6868

6969
/// <summary>
7070
///

0 commit comments

Comments
 (0)