[banshee] Lastfm: refactor LastfmRequest tests to not rely on params order
- From: AndrÃs Aragoneses <aaragoneses src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [banshee] Lastfm: refactor LastfmRequest tests to not rely on params order
- Date: Fri, 15 Feb 2013 22:46:54 +0000 (UTC)
commit 0035c5e1647c04f19e1c709a9ea8e53a3ad3f40b
Author: Andres G. Aragoneses <knocte gmail com>
Date: Fri Feb 15 22:46:48 2013 +0000
Lastfm: refactor LastfmRequest tests to not rely on params order
http://xyz/?foo=bar&bar=baz should be equal to http://xyz/?bar=baz&foo=bar
No change of behaviour in this commit.
.../Lastfm/Lastfm/Tests/LastfmRequestTests.cs | 44 ++++++++++++++++---
1 files changed, 37 insertions(+), 7 deletions(-)
---
diff --git a/src/Libraries/Lastfm/Lastfm/Tests/LastfmRequestTests.cs
b/src/Libraries/Lastfm/Lastfm/Tests/LastfmRequestTests.cs
index 51f4fd0..b65d54f 100644
--- a/src/Libraries/Lastfm/Lastfm/Tests/LastfmRequestTests.cs
+++ b/src/Libraries/Lastfm/Lastfm/Tests/LastfmRequestTests.cs
@@ -30,6 +30,7 @@
using System;
using System.Net;
+using System.Collections.Generic;
using NUnit.Framework;
namespace Lastfm.Tests
@@ -54,7 +55,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.ToString ());
+ UrisAreEquivalent (expected, creator.Uri.ToString ());
}
[Test]
@@ -66,7 +67,7 @@ namespace Lastfm.Tests
req.AddParameter ("x", "y");
req.AddParameter ("a", "b");
req.Send ();
- Assert.AreEqual (expected, creator.Uri.ToString ());
+ UrisAreEquivalent (expected, creator.Uri.ToString ());
}
[Test]
@@ -75,7 +76,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.ToString ());
+ UrisAreEquivalent (expected, creator.Uri.ToString ());
}
[Test]
@@ -84,7 +85,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.ToString ());
+ UrisAreEquivalent (expected, creator.Uri.ToString ());
}
[Test]
@@ -96,7 +97,7 @@ namespace Lastfm.Tests
req.AddParameter ("x", "y");
req.AddParameter ("a", "b");
req.Send ();
- Assert.AreEqual (expected, creator.Uri.ToString ());
+ UrisAreEquivalent (expected, creator.Uri.ToString ());
}
[Test]
@@ -108,10 +109,39 @@ namespace Lastfm.Tests
req.AddParameter ("x", "y");
req.AddParameter ("a", "b");
req.Send ();
- Assert.AreEqual (expected, creator.Uri.ToString ());
+ UrisAreEquivalent (expected, creator.Uri.ToString ());
+ }
+
+ public void UrisAreEquivalent (string expected, string actual)
+ {
+ if (String.IsNullOrEmpty (expected)) {
+ throw new ArgumentNullException ("expected");
+ }
+
+ if (String.IsNullOrEmpty (actual)) {
+ throw new ArgumentNullException ("actual");
+ }
+
+ if (!expected.Contains ("?") || !actual.Contains ("?")) {
+ throw new ArgumentException ("uris must contain parameters, so a ? char to beging the
querystring should be present");
+ }
+
+ string expected_without_querystring = expected.Substring (0, expected.IndexOf ("?"));
+ string actual_without_querystring = actual.Substring (0, actual.IndexOf ("?"));
+
+ Assert.AreEqual (expected_without_querystring, actual_without_querystring);
+
+ var expected_parameters = expected.Substring (expected.IndexOf ("?")).Split (new [] {'&'});
+ var actual_parameters = new List<string> (actual.Substring (actual.IndexOf ("?")).Split (new []
{'&'}));
+
+ Assert.AreEqual (expected_parameters.Length, actual_parameters.Count);
+ foreach (var expected_param in expected_parameters) {
+ Assert.IsTrue (actual_parameters.Contains (expected_param),
+ String.Format ("URI {0} is missing parameter '{1}'", actual, expected_param));
+ }
}
}
}
-#endif
\ No newline at end of file
+#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]