System.Data.Tests.DataRowCollectionTest.Contains C# (CSharp) Method

Contains() private method

private Contains ( ) : void
return void
        public void Contains()
        {
            DataColumn C = new DataColumn("key");
            C.Unique = true;
            C.DataType = typeof(int);
            C.AutoIncrement = true;
            C.AutoIncrementSeed = 0;
            C.AutoIncrementStep = 1;
            _tbl.Columns.Add(C);
            _tbl.Columns.Add("first", typeof(string));
            _tbl.Columns.Add("second", typeof(decimal));

            DataRowCollection Rows = _tbl.Rows;

            DataRow Row = _tbl.NewRow();
            _tbl.Rows.Add(Row);
            Row = _tbl.NewRow();
            _tbl.Rows.Add(Row);
            Row = _tbl.NewRow();
            _tbl.Rows.Add(Row);
            Row = _tbl.NewRow();
            _tbl.Rows.Add(Row);

            Rows[0][1] = "test0";
            Rows[0][2] = 0;
            Rows[1][1] = "test1";
            Rows[1][2] = 1;
            Rows[2][1] = "test2";
            Rows[2][2] = 2;
            Rows[3][1] = "test3";
            Rows[3][2] = 3;

            Assert.Equal(3, _tbl.Columns.Count);
            Assert.Equal(4, _tbl.Rows.Count);
            Assert.Equal(0, _tbl.Rows[0][0]);
            Assert.Equal(1, _tbl.Rows[1][0]);
            Assert.Equal(2, _tbl.Rows[2][0]);
            Assert.Equal(3, _tbl.Rows[3][0]);

            try
            {
                Rows.Contains(1);
                Assert.False(true);
            }
            catch (Exception e)
            {
                Assert.Equal(typeof(MissingPrimaryKeyException), e.GetType());
                // Never premise English.
                //Assert.Equal ("Table doesn't have a primary key.", e.Message);
            }

            _tbl.PrimaryKey = new DataColumn[] { _tbl.Columns[0] };
            Assert.True(Rows.Contains(1));
            Assert.True(Rows.Contains(2));
            Assert.False(Rows.Contains(4));

            try
            {
                Rows.Contains(new object[] { 64, "test0" });
                Assert.False(true);
            }
            catch (Exception e)
            {
                Assert.Equal(typeof(ArgumentException), e.GetType());
                // Never premise English.
                //Assert.Equal ("Expecting 1 value(s) for the key being indexed, but received 2 value(s).", e.Message);
            }

            _tbl.PrimaryKey = new DataColumn[] { _tbl.Columns[0], _tbl.Columns[1] };
            Assert.False(Rows.Contains(new object[] { 64, "test0" }));
            Assert.False(Rows.Contains(new object[] { 0, "test1" }));
            Assert.True(Rows.Contains(new object[] { 1, "test1" }));
            Assert.True(Rows.Contains(new object[] { 2, "test2" }));

            try
            {
                Rows.Contains(new object[] { 2 });
                Assert.False(true);
            }
            catch (Exception e)
            {
                Assert.Equal(typeof(ArgumentException), e.GetType());
                // Never premise English.
                //Assert.Equal ("Expecting 2 value(s) for the key being indexed, but received 1 value(s).", e.Message);
            }
        }