Skip to content

Commit 411acc3

Browse files
committed
Changed BaseUrl to Uri instead of string
1 parent cc283fb commit 411acc3

File tree

9 files changed

+90
-76
lines changed

9 files changed

+90
-76
lines changed

RestSharp.IntegrationTests/AsyncTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ public class AsyncTests
1313
[Fact]
1414
public void Can_Perform_GET_Async()
1515
{
16-
const string baseUrl = "http://localhost:8080/";
16+
Uri baseUrl = new Uri("http://localhost:8080/");
1717
const string val = "Basic async test";
1818
var resetEvent = new ManualResetEvent(false);
19-
using (SimpleServer.Create(baseUrl, Handlers.EchoValue(val)))
19+
using (SimpleServer.Create(baseUrl.AbsoluteUri, Handlers.EchoValue(val)))
2020
{
2121
var client = new RestClient(baseUrl);
2222
var request = new RestRequest("");
@@ -34,10 +34,10 @@ public void Can_Perform_GET_Async()
3434
[Fact]
3535
public void Can_Perform_GET_Async_Without_Async_Handle()
3636
{
37-
const string baseUrl = "http://localhost:8080/";
37+
Uri baseUrl = new Uri("http://localhost:8080/");
3838
const string val = "Basic async test";
3939
var resetEvent = new ManualResetEvent(false);
40-
using (SimpleServer.Create(baseUrl, Handlers.EchoValue(val)))
40+
using (SimpleServer.Create(baseUrl.AbsoluteUri, Handlers.EchoValue(val)))
4141
{
4242
var client = new RestClient(baseUrl);
4343
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:8080/";
18-
using(SimpleServer.Create(baseUrl, UsernamePasswordEchoHandler))
17+
Uri baseUrl = new Uri("http://localhost:8080/");
18+
using(SimpleServer.Create(baseUrl.AbsoluteUri, UsernamePasswordEchoHandler))
1919
{
2020
var client = new RestClient(baseUrl);
2121
client.Authenticator = new HttpBasicAuthenticator("testuser", "testpassword");
@@ -38,7 +38,7 @@ private static void UsernamePasswordEchoHandler(HttpListenerContext context)
3838
//[Fact]
3939
public void Can_Authenticate_With_OAuth()
4040
{
41-
var baseUrl = "https://api.twitter.com";
41+
var baseUrl = new Uri("https://api.twitter.com");
4242
var client = new RestClient(baseUrl);
4343
client.Authenticator = OAuth1Authenticator.ForRequestToken(
4444
"CONSUMER_KEY", "CONSUMER_SECRET"

RestSharp.IntegrationTests/CompressionTests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ public class CompressionTests
1111
[Fact]
1212
public void Can_Handle_Gzip_Compressed_Content()
1313
{
14-
const string baseUrl = "http://localhost:8080/";
15-
using(SimpleServer.Create(baseUrl, GzipEchoValue("This is some gzipped content")))
14+
Uri baseUrl = new Uri("http://localhost:8080/");
15+
using(SimpleServer.Create(baseUrl.AbsoluteUri, GzipEchoValue("This is some gzipped content")))
1616
{
1717
var client = new RestClient(baseUrl);
1818
var request = new RestRequest("");
@@ -25,8 +25,8 @@ public void Can_Handle_Gzip_Compressed_Content()
2525
[Fact]
2626
public void Can_Handle_Deflate_Compressed_Content()
2727
{
28-
const string baseUrl = "http://localhost:8080/";
29-
using(SimpleServer.Create(baseUrl, DeflateEchoValue("This is some deflated content")))
28+
Uri baseUrl = new Uri("http://localhost:8080/");
29+
using(SimpleServer.Create(baseUrl.AbsoluteUri, DeflateEchoValue("This is some deflated content")))
3030
{
3131
var client = new RestClient(baseUrl);
3232
var request = new RestRequest("");
@@ -39,8 +39,8 @@ public void Can_Handle_Deflate_Compressed_Content()
3939
[Fact]
4040
public void Can_Handle_Uncompressed_Content()
4141
{
42-
const string baseUrl = "http://localhost:8080/";
43-
using(SimpleServer.Create(baseUrl, Handlers.EchoValue("This is some sample content")))
42+
Uri baseUrl = new Uri("http://localhost:8080/");
43+
using(SimpleServer.Create(baseUrl.AbsoluteUri, Handlers.EchoValue("This is some sample content")))
4444
{
4545
var client = new RestClient(baseUrl);
4646
var request = new RestRequest("");

RestSharp.IntegrationTests/FileTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ public class FileTests
1010
[Fact]
1111
public void Handles_Binary_File_Download()
1212
{
13-
const string baseUrl = "http://localhost:8080/";
14-
using(SimpleServer.Create(baseUrl, Handlers.FileHandler))
13+
Uri baseUrl = new Uri("http://localhost:8080/");
14+
using(SimpleServer.Create(baseUrl.AbsoluteUri, Handlers.FileHandler))
1515
{
1616
var client = new RestClient(baseUrl);
1717
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 RestSharp.IntegrationTests.Helpers;
34
using Xunit;
45
using System.Net;
@@ -10,8 +11,8 @@ public class StatusCodeTests
1011
[Fact]
1112
public void Handles_GET_Request_404_Error()
1213
{
13-
const string baseUrl = "http://localhost:8080/";
14-
using(SimpleServer.Create(baseUrl, UrlToStatusCodeHandler))
14+
Uri baseUrl = new Uri("http://localhost:8080/");
15+
using(SimpleServer.Create(baseUrl.AbsoluteUri, UrlToStatusCodeHandler))
1516
{
1617
var client = new RestClient(baseUrl);
1718
var request = new RestRequest("404");
@@ -33,7 +34,7 @@ void UrlToStatusCodeHandler(HttpListenerContext obj)
3334
[Fact]
3435
public void Handles_Non_Existent_Domain()
3536
{
36-
var client = new RestClient("http://nonexistantdomainimguessing.org");
37+
var client = new RestClient(new Uri("http://nonexistantdomainimguessing.org"));
3738
var request = new RestRequest("foo");
3839
var response = client.Execute(request);
3940
Assert.Equal(ResponseStatus.Error, response.ResponseStatus);
@@ -42,8 +43,8 @@ public void Handles_Non_Existent_Domain()
4243
[Fact]
4344
public void Handles_Different_Root_Element_On_Error()
4445
{
45-
const string baseUrl = "http://localhost:8080/";
46-
using(SimpleServer.Create(baseUrl, Handlers.Generic<ResponseHandler>()))
46+
Uri baseUrl = new Uri("http://localhost:8080/");
47+
using(SimpleServer.Create(baseUrl.AbsoluteUri, Handlers.Generic<ResponseHandler>()))
4748
{
4849
var client = new RestClient(baseUrl);
4950
var request = new RestRequest("error");
@@ -66,8 +67,8 @@ public void Handles_Different_Root_Element_On_Error()
6667
[Fact]
6768
public void Handles_Default_Root_Element_On_No_Error()
6869
{
69-
const string baseUrl = "http://localhost:8080/";
70-
using(SimpleServer.Create(baseUrl, Handlers.Generic<ResponseHandler>()))
70+
Uri baseUrl = new Uri("http://localhost:8080/");
71+
using(SimpleServer.Create(baseUrl.AbsoluteUri, Handlers.Generic<ResponseHandler>()))
7172
{
7273
var client = new RestClient(baseUrl);
7374
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
client.Authenticator = OAuth1Authenticator.ForRequestToken(consumerKey, consumerSecret);
2626
var request = new RestRequest("oauth/request_token", Method.POST);
@@ -107,7 +107,7 @@ public void Can_Authenticate_Netflix_With_OAuth()
107107
const string consumerKey = "";
108108
const string consumerSecret = "";
109109

110-
var baseUrl = "http://api.netflix.com";
110+
var baseUrl = new Uri("http://api.netflix.com");
111111
var client = new RestClient(baseUrl);
112112
client.Authenticator = OAuth1Authenticator.ForRequestToken(consumerKey, consumerSecret);
113113
var request = new RestRequest("oauth/request_token");
@@ -124,7 +124,7 @@ public void Can_Authenticate_Netflix_With_OAuth()
124124
Assert.NotNull(oauth_token_secret);
125125
Assert.NotNull(applicationName);
126126

127-
var baseSslUrl = "https://api-user.netflix.com";
127+
var baseSslUrl = new Uri("https://api-user.netflix.com");
128128
var sslClient = new RestClient(baseSslUrl);
129129
request = new RestRequest("oauth/login");
130130
request.AddParameter("oauth_token", oauth_token);
@@ -196,7 +196,7 @@ public void Can_Authenticate_LinkedIN_With_OAuth()
196196

197197
// request token
198198
var client = new RestClient {
199-
BaseUrl = "https://api.linkedin.com/uas/oauth",
199+
BaseUrl = new Uri("https://api.linkedin.com/uas/oauth"),
200200
Authenticator = OAuth1Authenticator.ForRequestToken( consumerKey, consumerSecret, "http://localhost" )
201201
};
202202
var requestTokenRequest = new RestRequest( "requestToken" );
@@ -245,7 +245,7 @@ public void Can_Retrieve_Member_Profile_Field_Field_Selector_From_LinkedIN()
245245

246246
// arrange
247247
var client = new RestClient {
248-
BaseUrl = "http://api.linkedin.com/v1",
248+
BaseUrl = new Uri("http://api.linkedin.com/v1"),
249249
Authenticator = OAuth1Authenticator.ForProtectedResource( consumerKey, consumerSecret, accessToken, accessSecret )
250250
};
251251
var request = new RestRequest( "people/~:(id,first-name,last-name)" );
@@ -270,7 +270,7 @@ public void Can_Query_Vimeo()
270270

271271
// arrange
272272
var client = new RestClient {
273-
BaseUrl = "http://vimeo.com/api/rest/v2",
273+
BaseUrl = new Uri("http://vimeo.com/api/rest/v2"),
274274
Authenticator = OAuth1Authenticator.ForRequestToken( consumerKey, consumerSecret )
275275
};
276276
var request = new RestRequest();

RestSharp.Tests/UrlBuilderTests.cs

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class UrlBuilderTests
1515
public void GET_with_leading_slash()
1616
{
1717
var request = new RestRequest("/resource");
18-
var client = new RestClient("http://example.com");
18+
var client = new RestClient(new Uri("http://example.com"));
1919

2020
var expected = new Uri("http://example.com/resource");
2121
var output = client.BuildUri(request);
@@ -27,7 +27,7 @@ public void GET_with_leading_slash()
2727
public void POST_with_leading_slash()
2828
{
2929
var request = new RestRequest("/resource", Method.POST);
30-
var client = new RestClient("http://example.com");
30+
var client = new RestClient(new Uri("http://example.com"));
3131

3232
var expected = new Uri("http://example.com/resource");
3333
var output = client.BuildUri(request);
@@ -40,7 +40,7 @@ public void GET_with_leading_slash_and_baseurl_trailing_slash()
4040
{
4141
var request = new RestRequest("/resource");
4242
request.AddParameter("foo", "bar");
43-
var client = new RestClient("http://example.com/");
43+
var client = new RestClient(new Uri("http://example.com"));
4444

4545
var expected = new Uri("http://example.com/resource?foo=bar");
4646
var output = client.BuildUri(request);
@@ -52,7 +52,7 @@ public void GET_with_leading_slash_and_baseurl_trailing_slash()
5252
public void POST_with_leading_slash_and_baseurl_trailing_slash()
5353
{
5454
var request = new RestRequest("/resource", Method.POST);
55-
var client = new RestClient("http://example.com/");
55+
var client = new RestClient(new Uri("http://example.com"));
5656

5757
var expected = new Uri("http://example.com/resource");
5858
var output = client.BuildUri(request);
@@ -64,7 +64,7 @@ public void POST_with_leading_slash_and_baseurl_trailing_slash()
6464
public void GET_with_resource_containing_slashes()
6565
{
6666
var request = new RestRequest("resource/foo");
67-
var client = new RestClient("http://example.com");
67+
var client = new RestClient(new Uri("http://example.com"));
6868

6969
var expected = new Uri("http://example.com/resource/foo");
7070
var output = client.BuildUri(request);
@@ -76,7 +76,7 @@ public void GET_with_resource_containing_slashes()
7676
public void POST_with_resource_containing_slashes()
7777
{
7878
var request = new RestRequest("resource/foo", Method.POST);
79-
var client = new RestClient("http://example.com");
79+
var client = new RestClient(new Uri("http://example.com"));
8080

8181
var expected = new Uri("http://example.com/resource/foo");
8282
var output = client.BuildUri(request);
@@ -89,7 +89,7 @@ public void GET_with_resource_containing_tokens()
8989
{
9090
var request = new RestRequest("resource/{foo}");
9191
request.AddUrlSegment("foo", "bar");
92-
var client = new RestClient("http://example.com");
92+
var client = new RestClient(new Uri("http://example.com"));
9393

9494
var expected = new Uri("http://example.com/resource/bar");
9595
var output = client.BuildUri(request);
@@ -102,7 +102,7 @@ public void POST_with_resource_containing_tokens()
102102
{
103103
var request = new RestRequest("resource/{foo}", Method.POST);
104104
request.AddUrlSegment("foo", "bar");
105-
var client = new RestClient("http://example.com");
105+
var client = new RestClient(new Uri("http://example.com"));
106106

107107
var expected = new Uri("http://example.com/resource/bar");
108108
var output = client.BuildUri(request);
@@ -114,9 +114,9 @@ public void POST_with_resource_containing_tokens()
114114
public void GET_with_empty_request()
115115
{
116116
var request = new RestRequest();
117-
var client = new RestClient("http://example.com/resource");
117+
var client = new RestClient(new Uri("http://example.com"));
118118

119-
var expected = new Uri("http://example.com/resource");
119+
var expected = new Uri("http://example.com/");
120120
var output = client.BuildUri(request);
121121

122122
Assert.Equal(expected, output);
@@ -126,13 +126,39 @@ public void GET_with_empty_request()
126126
public void GET_with_empty_request_and_bare_hostname()
127127
{
128128
var request = new RestRequest();
129-
var client = new RestClient("http://example.com");
129+
var client = new RestClient(new Uri("http://example.com"));
130130

131131
var expected = new Uri("http://example.com/");
132132
var output = client.BuildUri(request);
133133

134134
Assert.Equal(expected, output);
135135
}
136136

137+
[Fact]
138+
public void GET_with_Uri_containing_tokens()
139+
{
140+
var request = new RestRequest();
141+
request.AddUrlSegment("foo", "bar");
142+
var client = new RestClient(new Uri("http://example.com/{foo}"));
143+
144+
var expected = new Uri("http://example.com/bar");
145+
var output = client.BuildUri(request);
146+
147+
Assert.Equal(expected, output);
148+
}
149+
150+
[Fact]
151+
public void GET_with_Uri_and_resource_containing_tokens()
152+
{
153+
var request = new RestRequest("resource/{baz}");
154+
request.AddUrlSegment("foo", "bar");
155+
request.AddUrlSegment("baz", "bat");
156+
var client = new RestClient(new Uri("http://example.com/{foo}"));
157+
158+
var expected = new Uri("http://example.com/bar/resource/bat");
159+
var output = client.BuildUri(request);
160+
161+
Assert.Equal(expected, output);
162+
}
137163
}
138164
}

RestSharp/IRestClient.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public interface IRestClient
4949
/// <summary>
5050
///
5151
/// </summary>
52-
string BaseUrl { get; set; }
52+
Uri BaseUrl { get; set; }
5353
/// <summary>
5454
///
5555
/// </summary>

0 commit comments

Comments
 (0)