System.Data.Tests.DataRowTest2.Indexer2_Value_Null C# (CSharp) Method

Indexer2_Value_Null() private method

private Indexer2_Value_Null ( ) : void
return void
        public void Indexer2_Value_Null()
        {
            DataTable dt = new DataTable();
            DataColumn dc0 = new DataColumn("Col0", typeof(Address));
            dt.Columns.Add(dc0);
            DataColumn dc1 = new DataColumn("Col1", typeof(Person));
            dt.Columns.Add(dc1);

            Person personA = new Person("Miguel");
            Address addressA = new Address("X", 5);
            Person personB = new Person("Chris");
            Address addressB = new Address("Y", 4);
            Person personC = new Person("Jackson");
            Address addressC = new Address("Z", 3);

            dt.Rows.Add(new object[] { addressA, personA });
            dt.Rows.Add(new object[] { addressB, personB });

            DataRow dr = dt.Rows[0];

            try
            {
                dr[0] = null;
                Assert.False(true);
            }
            catch (ArgumentException ex)
            {
                // Cannot set Column 'Col0' to be null.
                // Please use DBNull instead
                Assert.Equal(typeof(ArgumentException), ex.GetType());
                Assert.Null(ex.InnerException);
                Assert.NotNull(ex.Message);
                Assert.True(ex.Message.IndexOf("'Col0'") != -1);
                Assert.True(ex.Message.IndexOf("DBNull") != -1);
            }

            Assert.Equal(addressA, dr[0]);
            Assert.False(dr.IsNull(0));
            Assert.Same(personA, dr[1]);
            Assert.False(dr.IsNull(1));

            dr[1] = null;

            Assert.Equal(addressA, dr[0]);
            Assert.False(dr.IsNull(0));
            Assert.Same(DBNull.Value, dr[1]);
            Assert.True(dr.IsNull(1));

            dr[0] = DBNull.Value;

            Assert.Same(DBNull.Value, dr[0]);
            Assert.True(dr.IsNull(0));
            Assert.Same(DBNull.Value, dr[1]);
            Assert.True(dr.IsNull(1));

            dr.BeginEdit();
            dr[1] = personC;
            Assert.Same(DBNull.Value, dr[0]);
            Assert.True(dr.IsNull(0));
            Assert.Equal(personC, dr[1]);
            Assert.False(dr.IsNull(1));
            dr.EndEdit();
            Assert.Same(DBNull.Value, dr[0]);
            Assert.True(dr.IsNull(0));
            Assert.Equal(personC, dr[1]);
            Assert.False(dr.IsNull(1));

            dr[1] = DBNull.Value;

            Assert.Same(DBNull.Value, dr[0]);
            Assert.True(dr.IsNull(0));
            Assert.Same(DBNull.Value, dr[1]);
            Assert.True(dr.IsNull(1));
        }
DataRowTest2