diff --git a/src/AdoNet.Specification.Tests/DataReaderTestBase.cs b/src/AdoNet.Specification.Tests/DataReaderTestBase.cs index a0c6d3e..25f3eb7 100644 --- a/src/AdoNet.Specification.Tests/DataReaderTestBase.cs +++ b/src/AdoNet.Specification.Tests/DataReaderTestBase.cs @@ -521,6 +521,50 @@ public virtual void NextResult_works() } } + [Fact] + public virtual void UpdateNoRowsReturns0() + { + var commandBuilder = Fixture.Factory.CreateCommandBuilder(); + var p = commandBuilder?.QuotePrefix ?? ""; + var s = commandBuilder?.QuoteSuffix ?? ""; + using (var connection = CreateOpenConnection()) + using (var command = connection.CreateCommand()) + { + command.CommandText = $"UPDATE select_value SET {p}Int16{s} = 3 WHERE {p}Int16{s} = 42;"; + Assert.Equal(0, command.ExecuteNonQuery()); + } + } + + [Fact] + public virtual void UpdateNoopReturns1() + { + var commandBuilder = Fixture.Factory.CreateCommandBuilder(); + var p = commandBuilder?.QuotePrefix ?? ""; + var s = commandBuilder?.QuoteSuffix ?? ""; + using (var connection = CreateOpenConnection()) + using (var command = connection.CreateCommand()) + { + command.CommandText = $"UPDATE select_value SET {p}Int16{s} = 0 WHERE {p}Int16{s} = 0;"; + Assert.Equal(1, command.ExecuteNonQuery()); + } + } + + [Fact] + public virtual void UpdateReturns1() + { + var commandBuilder = Fixture.Factory.CreateCommandBuilder(); + var p = commandBuilder?.QuotePrefix ?? ""; + var s = commandBuilder?.QuoteSuffix ?? ""; + using (var connection = CreateOpenConnection()) + using (var command = connection.CreateCommand()) + { + command.CommandText = $"UPDATE select_value SET {p}Int16{s} = 2 WHERE {p}Int16{s} = 0;"; + Assert.Equal(1, command.ExecuteNonQuery()); + command.CommandText = $"UPDATE select_value SET {p}Int16{s} = 0 WHERE {p}Int16{s} = 2;"; + Assert.Equal(1, command.ExecuteNonQuery()); + } + } + [Fact] public virtual void NextResult_can_be_called_more_than_once() {