System.Data.Tests.DataTableTest.PrimaryKey C# (CSharp) Method

PrimaryKey() private method

private PrimaryKey ( ) : void
return void
        public void PrimaryKey()
        {
            DataTable dt = new DataTable();
            DataColumn Col = new DataColumn();
            Col.AllowDBNull = false;
            Col.DataType = typeof(int);
            dt.Columns.Add(Col);
            dt.Columns.Add();
            dt.Columns.Add();
            dt.Columns.Add();

            Assert.Equal(0, dt.PrimaryKey.Length);

            dt.PrimaryKey = new DataColumn[] { dt.Columns[0] };
            Assert.Equal(1, dt.PrimaryKey.Length);
            Assert.Equal("Column1", dt.PrimaryKey[0].ColumnName);

            dt.PrimaryKey = null;
            Assert.Equal(0, dt.PrimaryKey.Length);

            Col = new DataColumn("failed");

            try
            {
                dt.PrimaryKey = new DataColumn[] { Col };
                Assert.False(true);
            }
            catch (ArgumentException e)
            {
                Assert.Equal(typeof(ArgumentException), e.GetType());
                // Never expect English message
                // Assert.Equal ("Column must belong to a table.", e.Message);
            }

            DataTable dt2 = new DataTable();
            dt2.Columns.Add();

            try
            {
                dt.PrimaryKey = new DataColumn[] { dt2.Columns[0] };
                Assert.False(true);
            }
            catch (ArgumentException e)
            {
                Assert.Equal(typeof(ArgumentException), e.GetType());
                // Never expect English message
                // Assert.Equal ("PrimaryKey columns do not belong to this table.", e.Message);
            }

            Assert.Equal(0, dt.Constraints.Count);

            dt.PrimaryKey = new DataColumn[] { dt.Columns[0], dt.Columns[1] };
            Assert.Equal(2, dt.PrimaryKey.Length);
            Assert.Equal(1, dt.Constraints.Count);
            Assert.True(dt.Constraints[0] is UniqueConstraint);
            Assert.Equal("Column1", dt.PrimaryKey[0].ColumnName);
            Assert.Equal("Column2", dt.PrimaryKey[1].ColumnName);
        }
DataTableTest