public void NullSafeGetTest()
 {
     UriUserType target = new UriUserType();
     DataReaderMock rs = new DataReaderMock();
     string[] names = { @"a" };
     object owner = new object();
     foreach (Uri uri in s_Subjects)
     {
         rs.VarChar = uri == null ? null : uri.AbsoluteUri;
         object actual = target.NullSafeGet(rs, names, owner);
         if (uri != null)
         {
             Assert.IsNotNull(actual);
         }
         else
         {
             Assert.IsNull(actual);
         }
         Assert.AreEqual(uri, actual);
     }
 }
 public void RoundtripTest()
 {
     // writer
     UriUserType target = new UriUserType();
     IDbCommand cmd = new SqlCommand(@"SELECT * FROM TUUT WHERE a = @a");
     SqlParameter param = new SqlParameter(@"a", null);
     cmd.Parameters.Add(param);
     // reader
     DataReaderMock rs = new DataReaderMock();
     string[] names = { @"a" };
     object owner = new object();
     // test
     foreach (Uri subject in s_Subjects)
     {
         target.NullSafeSet(cmd, subject, 0);
         string dbField = param.Value is DBNull ? null : param.Value.ToString();
         rs.VarChar = dbField;
         object reading = target.NullSafeGet(rs, names, owner);
         Assert.AreEqual(subject, reading);
         target.NullSafeSet(cmd, subject, 0);
         string dbField2 = param.Value is DBNull ? null : param.Value.ToString();
         Assert.AreEqual(dbField, dbField2);
     }
 }