diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2008-04-27 16:45:44 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2008-04-28 09:18:57 -0700 |
commit | bbd08ff560c3c27e7e3f66bea16f9a2416207e8d (patch) | |
tree | 49aabf4f6e74761ce3791e0d08a52dfaf1d7f866 | |
parent | 5103ed7a370cf6f89e5dce74c9b5a7e3cca0b4dd (diff) | |
download | DotNetOpenAuth-bbd08ff560c3c27e7e3f66bea16f9a2416207e8d.zip DotNetOpenAuth-bbd08ff560c3c27e7e3f66bea16f9a2416207e8d.tar.gz DotNetOpenAuth-bbd08ff560c3c27e7e3f66bea16f9a2416207e8d.tar.bz2 |
Fixed implicit Realm conversion operators to handle null values.
-rw-r--r-- | src/DotNetOpenId.Test/RealmTestSuite.cs | 28 | ||||
-rw-r--r-- | src/DotNetOpenId/Realm.cs | 6 |
2 files changed, 31 insertions, 3 deletions
diff --git a/src/DotNetOpenId.Test/RealmTestSuite.cs b/src/DotNetOpenId.Test/RealmTestSuite.cs index e30ec77..eb713f5 100644 --- a/src/DotNetOpenId.Test/RealmTestSuite.cs +++ b/src/DotNetOpenId.Test/RealmTestSuite.cs @@ -154,6 +154,34 @@ namespace DotNetOpenId.Test }
[Test]
+ public void ImplicitConversionFromStringTests() {
+ Realm realm = "http://host";
+ Assert.AreEqual("host", realm.Host);
+ realm = (string)null;
+ Assert.IsNull(realm);
+ }
+
+ [Test]
+ public void ImplicitConversionToStringTests() {
+ Realm realm = new Realm("http://host/");
+ string realmString = realm;
+ Assert.AreEqual("http://host/", realmString);
+ realm = null;
+ realmString = realm;
+ Assert.IsNull(realmString);
+ }
+
+ [Test]
+ public void ImplicitConverstionFromUriTests() {
+ Uri uri = new Uri("http://host");
+ Realm realm = uri;
+ Assert.AreEqual(uri.Host, realm.Host);
+ uri = null;
+ realm = uri;
+ Assert.IsNull(realm);
+ }
+
+ [Test]
public void EqualsTest()
{
Realm tr1a = new Realm("http://www.yahoo.com");
diff --git a/src/DotNetOpenId/Realm.cs b/src/DotNetOpenId/Realm.cs index 61e01e2..79bd7bd 100644 --- a/src/DotNetOpenId/Realm.cs +++ b/src/DotNetOpenId/Realm.cs @@ -19,14 +19,14 @@ namespace DotNetOpenId { /// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2234:PassSystemUriObjectsInsteadOfStrings"), System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1057:StringUriOverloadsCallSystemUriOverloads")]
public static implicit operator Realm(string uri) {
- return new Realm(uri);
+ return uri != null ? new Realm(uri) : null;
}
/// <summary>
/// Implicitly converts a <see cref="Uri"/> to a <see cref="Realm"/> object.
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2234:PassSystemUriObjectsInsteadOfStrings")]
public static implicit operator Realm(Uri uri) {
- return new Realm(uri.AbsoluteUri);
+ return uri != null ? new Realm(uri.AbsoluteUri) : null;
}
/// <summary>
/// Implicitly converts a <see cref="Realm"/> object to its <see cref="String"/> form.
@@ -34,7 +34,7 @@ namespace DotNetOpenId { /// <param name="realm"></param>
/// <returns></returns>
public static implicit operator string(Realm realm) {
- return realm.ToString();
+ return realm != null ? realm.ToString() : null;
}
/// <summary>
|