public void NullSafeSetTest3()
 {
     UriUserType target = new UriUserType();
     Uri subject = new Uri("http://my.domain.com/dit is ee" + UriUserType.UriLikeWildcard + "n test % met _/een underscore/../bla./bla?");
     string original = subject.AbsoluteUri;
     IDbCommand cmd = new SqlCommand(@"SELECT * FROM TUUT WHERE a = @a");
     SqlParameter param = new SqlParameter(@"a", null);
     cmd.Parameters.Add(param);
     target.NullSafeSet(cmd, subject, 0);
     string expected = original.Replace(@"%", @"[%]");
     expected = expected.Replace(@"_", @"[_]");
     expected = expected.Replace(@"?", @"[?]");
     expected = expected.Replace(UriUserType.UriLikeWildcard, @"%");
     Assert.AreEqual(expected, param.Value.ToString());
     Console.WriteLine("Search predicate DB: " + param.Value);
 }
 public void NullSafeSetTest()
 {
     UriUserType target = new UriUserType();
     IDbCommand cmd = new SqlCommand(@"SELECT * FROM TUUT WHERE a = @a");
     SqlParameter param = new SqlParameter(@"a", null);
     cmd.Parameters.Add(param);
     foreach (Uri uri in s_Subjects)
     {
         target.NullSafeSet(cmd, uri, 0);
         if (uri != null)
         {
             Assert.AreEqual(param.Value.ToString(), uri.AbsoluteUri);
         }
         else
         {
             Assert.IsTrue(param.Value is DBNull);
         }
         Console.WriteLine("To DB: " + param.Value);
     }
 }
 public void NullSafeSetTest2()
 {
     UriUserType target = new UriUserType();
     IDbCommand cmd = new SqlCommand(@"SELECT * FROM TUUT WHERE a = @a");
     SqlParameter param = new SqlParameter(@"a", null);
     cmd.Parameters.Add(param);
     foreach (Uri uri in s_Subjects)
     {
         if (uri != null)
         {
             string original = uri.AbsoluteUri;
             Uri subject = new Uri(uri.AbsoluteUri + UriUserType.UriLikeWildcard);
             target.NullSafeSet(cmd, subject, 0);
             string expected = original.Replace(@"%", @"[%]");
             expected = expected.Replace(@"_", @"[_]");
             expected = expected.Replace(@"?", @"[?]");
             Assert.IsTrue(param.Value.ToString().StartsWith(expected));
             Assert.IsTrue(param.Value.ToString().EndsWith(@"%"));
             Console.WriteLine("Search predicate DB: " + param.Value);
         }
     }
 }
 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);
     }
 }