public async Task ValidateUpdatableColumnNotUpdatable()
        {
            // Setup: Create a result set with an identity column
            var rs = await GetResultSet(
                new DbColumn[] {
                new TestDbColumn("id")
                {
                    IsKey = true, IsAutoIncrement = true, IsIdentity = true
                },
                new TestDbColumn("col1")
            },
                new object[] { "id", "1" });

            var etm = Common.GetStandardMetadata(rs.Columns);

            // If: I validate a column ID that is not updatable
            // Then: It should throw
            RowEditTester tester = new RowEditTester(rs, etm);

            Assert.Throws <InvalidOperationException>(() => tester.ValidateColumn(0));
        }
        [InlineData(100)]       // Index larger than number of columns
        public async Task ValidateUpdatableColumnOutOfRange(int columnId)
        {
            // Setup: Create a result set
            var rs = await GetResultSet(
                new DbColumn[] {
                new TestDbColumn("id")
                {
                    IsKey = true, IsAutoIncrement = true, IsIdentity = true
                },
                new TestDbColumn("col1")
            },
                new object[] { "id", "1" });

            var etm = Common.GetStandardMetadata(rs.Columns);

            // If: I validate a column ID that is out of range
            // Then: It should throw
            RowEditTester tester = new RowEditTester(rs, etm);

            Assert.Throws <ArgumentOutOfRangeException>(() => tester.ValidateColumn(columnId));
        }