summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndres G. Aragoneses <knocte@gmail.com>2013-02-15 21:53:07 +0000
committerAndres G. Aragoneses <knocte@gmail.com>2013-02-15 21:53:07 +0000
commitc53d258466ccaf82b70ba28c68528a8f01497188 (patch)
treeba9eeb02edcca5f114d5c1d61c57d4d04c331bdf
parentc8c3ec7c13defcd42e0367ee53816cdc0c18fe6c (diff)
Lastfm: simplify previous tests addition by dropping an interface
The interface IWebRequestCreate already exists in .NET class libraries, so use it in favour of our own IWebRequestCreator. Only difference is that this one uses System.Uri instead of string as the type of the uri parameter, so we need a bit of refactoring to make this compile. Tests still pass of course. No change of behaviour in this commit.
-rw-r--r--src/Libraries/Lastfm/Lastfm/LastfmRequest.cs19
-rw-r--r--src/Libraries/Lastfm/Lastfm/Tests/LastfmRequestTests.cs22
2 files changed, 18 insertions, 23 deletions
diff --git a/src/Libraries/Lastfm/Lastfm/LastfmRequest.cs b/src/Libraries/Lastfm/Lastfm/LastfmRequest.cs
index 9234d4dd7..b59cfcf33 100644
--- a/src/Libraries/Lastfm/Lastfm/LastfmRequest.cs
+++ b/src/Libraries/Lastfm/Lastfm/LastfmRequest.cs
@@ -54,16 +54,11 @@ namespace Lastfm
public delegate void SendRequestHandler ();
- internal interface IWebRequestCreator
+ internal class WebRequestCreator : IWebRequestCreate
{
- HttpWebRequest Create (string requestUriString);
- }
-
- internal class WebRequestCreator : IWebRequestCreator
- {
- public HttpWebRequest Create (string requestUriString)
+ public WebRequest Create (Uri uri)
{
- return (HttpWebRequest) HttpWebRequest.Create (requestUriString);
+ return (HttpWebRequest) HttpWebRequest.Create (uri);
}
}
@@ -74,12 +69,12 @@ namespace Lastfm
private Dictionary<string, string> parameters = new Dictionary<string, string> ();
private Stream response_stream;
private string response_string;
- IWebRequestCreator web_request_creator;
+ IWebRequestCreate web_request_creator;
public LastfmRequest ()
{}
- internal LastfmRequest (string method, RequestType request_type, ResponseFormat response_format, IWebRequestCreator web_request_creator)
+ internal LastfmRequest (string method, RequestType request_type, ResponseFormat response_format, IWebRequestCreate web_request_creator)
: this (method, request_type, response_format)
{
this.web_request_creator = web_request_creator;
@@ -294,7 +289,7 @@ namespace Lastfm
private Stream Get (string uri, string accept)
{
- HttpWebRequest request = web_request_creator.Create (uri);
+ var request = (HttpWebRequest)web_request_creator.Create (new Uri (uri));
if (accept != null) {
request.Accept = accept;
}
@@ -316,7 +311,7 @@ namespace Lastfm
private Stream Post (string uri, string data)
{
// Do not trust docs : it doesn't work if parameters are in the request body
- HttpWebRequest request = web_request_creator.Create (String.Concat (uri, "?", data));
+ var request = (HttpWebRequest)web_request_creator.Create (new Uri (String.Concat (uri, "?", data)));
request.UserAgent = LastfmCore.UserAgent;
request.Timeout = 10000;
request.Method = "POST";
diff --git a/src/Libraries/Lastfm/Lastfm/Tests/LastfmRequestTests.cs b/src/Libraries/Lastfm/Lastfm/Tests/LastfmRequestTests.cs
index cf5cff75b..51f4fd0fe 100644
--- a/src/Libraries/Lastfm/Lastfm/Tests/LastfmRequestTests.cs
+++ b/src/Libraries/Lastfm/Lastfm/Tests/LastfmRequestTests.cs
@@ -37,15 +37,15 @@ namespace Lastfm.Tests
[TestFixture]
public class Tests
{
- class FakeWebRequestCreator : IWebRequestCreator
+ class FakeWebRequestCreator : IWebRequestCreate
{
- public HttpWebRequest Create (string requestUriString)
+ public WebRequest Create (Uri uri)
{
- Uri = requestUriString;
- return (HttpWebRequest)WebRequest.Create (requestUriString);
+ Uri = uri;
+ return (HttpWebRequest)WebRequest.Create (uri);
}
- internal string Uri { get; set; }
+ internal Uri Uri { get; set; }
}
[Test]
@@ -54,7 +54,7 @@ namespace Lastfm.Tests
var expected = "http://ws.audioscrobbler.com/2.0/?method=someMethod&api_key=344e9141fffeb02201e1ae455d92ae9f&format=json";
var creator = new FakeWebRequestCreator ();
new LastfmRequest ("someMethod", RequestType.Read, ResponseFormat.Json, creator).Send ();
- Assert.AreEqual (expected, creator.Uri);
+ Assert.AreEqual (expected, creator.Uri.ToString ());
}
[Test]
@@ -66,7 +66,7 @@ namespace Lastfm.Tests
req.AddParameter ("x", "y");
req.AddParameter ("a", "b");
req.Send ();
- Assert.AreEqual (expected, creator.Uri);
+ Assert.AreEqual (expected, creator.Uri.ToString ());
}
[Test]
@@ -75,7 +75,7 @@ namespace Lastfm.Tests
var expected = "http://ws.audioscrobbler.com/2.0/?method=someMethod&api_key=344e9141fffeb02201e1ae455d92ae9f&raw=true";
var creator = new FakeWebRequestCreator ();
new LastfmRequest ("someMethod", RequestType.Read, ResponseFormat.Raw, creator).Send ();
- Assert.AreEqual (expected, creator.Uri);
+ Assert.AreEqual (expected, creator.Uri.ToString ());
}
[Test]
@@ -84,7 +84,7 @@ namespace Lastfm.Tests
var expected = "http://ws.audioscrobbler.com/2.0/?method=someMethod&api_key=344e9141fffeb02201e1ae455d92ae9f&format=json&sk=&api_sig=33ca04b6d45c54eb1405b3d7cb7735ea";
var creator = new FakeWebRequestCreator ();
new LastfmRequest ("someMethod", RequestType.Write, ResponseFormat.Json, creator).Send ();
- Assert.AreEqual (expected, creator.Uri);
+ Assert.AreEqual (expected, creator.Uri.ToString ());
}
[Test]
@@ -96,7 +96,7 @@ namespace Lastfm.Tests
req.AddParameter ("x", "y");
req.AddParameter ("a", "b");
req.Send ();
- Assert.AreEqual (expected, creator.Uri);
+ Assert.AreEqual (expected, creator.Uri.ToString ());
}
[Test]
@@ -108,7 +108,7 @@ namespace Lastfm.Tests
req.AddParameter ("x", "y");
req.AddParameter ("a", "b");
req.Send ();
- Assert.AreEqual (expected, creator.Uri);
+ Assert.AreEqual (expected, creator.Uri.ToString ());
}
}