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); } }