public void HasRows_works() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT 1"; connection.Open(); using (var reader = command.ExecuteReader()) { Assert.True(reader.HasRows); } } } }
public void FieldCount_works() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT 1"; connection.Open(); using (var reader = command.ExecuteReader()) { Assert.Equal(1, reader.FieldCount); } } } }
public void ParameterName_doesnt_unset_bound_when_unchanged() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT @Parameter"; var parameter = command.Parameters.AddWithValue("@Parameter", 1); connection.Open(); command.ExecuteNonQuery(); parameter.ParameterName = "@Parameter"; Assert.True(parameter.Bound); } } }
public void RecordsAffected_works() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { connection.Open(); CreateTestTable(connection); command.CommandText = "INSERT INTO TestTable (Int32Column) VALUES (2)"; using (var reader = command.ExecuteReader()) { Assert.Equal(1, reader.RecordsAffected); } } } }
public void GetChar_not_supported() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT 't'"; connection.Open(); using (var reader = command.ExecuteReader()) { reader.Read(); var ex = Assert.Throws<ArgumentException>(() => reader.GetChar(0)); Assert.Equal(Strings.FormatUnknownDataType(typeof(char)), ex.Message); } } } }
public void IsDBNull_works() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT NULL"; connection.Open(); using (var reader = command.ExecuteReader()) { Assert.True(reader.IsDBNull(0)); } } } }
public void Prepare_can_be_called_when_disposed() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT 1"; command.Dispose(); command.Connection = connection; connection.Open(); command.Prepare(); } } }
public void Dispose_closes_open_reader() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT @Parameter"; command.Parameters.AddWithValue("@Parameter", 1); connection.Open(); using (var reader = command.ExecuteReader()) { command.Dispose(); Assert.True(reader.IsClosed); } } } }
public void GetOrdinal_works() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT 1 AS Column1"; connection.Open(); using (var reader = command.ExecuteReader()) { Assert.Equal(0, reader.GetOrdinal("Column1")); } } } }
public void GetInt32_works() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { CreateTestTable(connection); command.CommandText = "SELECT Int32Column FROM TestTable"; using (var reader = command.ExecuteReader()) { reader.Read(); Assert.Equal(1, reader.GetInt32(0)); } } } }
public void Bind_binds_float_values() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT @Float"; command.Parameters.AddWithValue("@Float", 3.14); connection.Open(); var result = command.ExecuteScalar(); Assert.Equal(3.14, result); } } }
public void Item_string_works() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT 1 AS Column1"; connection.Open(); using (var reader = command.ExecuteReader()) { reader.Read(); Assert.Equal(1L, reader["Column1"]); } } } }
public void GetFieldValue_throws_when_null() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT NULL"; connection.Open(); using (var reader = command.ExecuteReader()) { reader.Read(); Assert.Throws<InvalidCastException>(() => reader.GetFieldValue<long>(0)); Assert.Throws<InvalidCastException>(() => reader.GetFieldValue<double>(0)); Assert.Throws<InvalidCastException>(() => reader.GetFieldValue<string>(0)); Assert.Throws<InvalidCastException>(() => reader.GetFieldValue<byte[]>(0)); } } } }
public void Bind_sets_bound() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT @Parameter"; var parameter = command.Parameters.AddWithValue("@Parameter", 1); connection.Open(); command.ExecuteNonQuery(); Assert.True(parameter.Bound); } } }
public void Bind_requres_set_value() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT @Parameter"; command.Parameters.Add(new SQLiteParameter { ParameterName = "@Parameter" }); connection.Open(); var ex = Assert.Throws<InvalidOperationException>(() => command.ExecuteNonQuery()); Assert.Equal(Strings.FormatRequiresSet("Value"), ex.Message); } } }
public void Bind_binds_null_value() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT @Null"; command.Parameters.AddWithValue("@Null", DBNull.Value); connection.Open(); var result = command.ExecuteScalar(); Assert.Equal(DBNull.Value, result); } } }
public void Bind_binds_blob_values() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT @Blob"; command.Parameters.AddWithValue("@Blob", new byte[] { 0x7e, 0x57 }); connection.Open(); var result = command.ExecuteScalar(); Assert.Equal(new byte[] { 0x7e, 0x57 }, result); } } }
public void Bind_binds_text_values_without_embedded_nulls() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT @Text || 'ing'"; command.Parameters.AddWithValue("@Text", "test"); connection.Open(); var result = command.ExecuteScalar(); Assert.Equal("testing", result); } } }
public void GetDateTime_works() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { CreateTestTable(connection); command.CommandText = "SELECT DateTimeColumn FROM TestTable"; using (var reader = command.ExecuteReader()) { reader.Read(); Assert.Equal(new DateTime(2014, 4, 1, 14, 45, 0), reader.GetDateTime(0)); } } } }
public void GetValues_works() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT NULL, 1, 3.14, 'test', x'7e57'"; connection.Open(); using (var reader = command.ExecuteReader()) { reader.Read(); var values = new object[5]; var count = reader.GetValues(values); Assert.Equal(5, count); Assert.Equal(DBNull.Value, values[0]); Assert.Equal(1L, values[1]); Assert.Equal(3.14, values[2]); Assert.Equal("test", values[3]); Assert.Equal(new byte[] { 0x7e, 0x57 }, values[4]); } } } }
public void GetGuid_works() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { CreateTestTable(connection); command.CommandText = "SELECT GuidColumn FROM TestTable"; using (var reader = command.ExecuteReader()) { reader.Read(); Assert.Equal(new Guid("dc13b11c-e6fb-449f-a892-5e2a47b05350"), reader.GetGuid(0)); } } } }
public void CreateCommand_returns_command() { using (var connection = new SQLiteConnection()) { using (var command = connection.CreateCommand()) { Assert.NotNull(command); Assert.Same(connection, command.Connection); } } }
public void NextResult_works() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT 1; SELECT 2;"; connection.Open(); using (var reader = command.ExecuteReader()) { reader.Read(); Assert.Equal(1L, reader[0]); var result = reader.NextResult(); Assert.True(result); reader.Read(); Assert.Equal(2L, reader[0]); result = reader.NextResult(); Assert.False(result); } } } }
public void Bind_is_noop_on_unknown_parameter() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT 1"; command.Parameters.AddWithValue("@Unknown", 1); connection.Open(); command.ExecuteNonQuery(); } } }
public void GetValue_works() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT 1"; connection.Open(); using (var reader = command.ExecuteReader()) { reader.Read(); Assert.Equal(1L, reader.GetValue(0)); } } } }
public void Close_works() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT 1 UNION SELECT 2"; connection.Open(); using (var reader = command.ExecuteReader()) { reader.Read(); reader.Read(); reader.Close(); Assert.Null(command.OpenReader); Assert.True(reader.IsClosed); } // NOTE: This would equal two if not reset Assert.Equal(1L, command.ExecuteScalar()); } } }
public void GetValues_when_null_scalar_column() { using (var connection = new SQLiteConnection("Filename=:memory:")) { connection.Open(); connection.ExecuteNonQuery(@"CREATE TABLE TestTable (Int32Column INT)"); connection.ExecuteNonQuery(@"INSERT INTO TestTable VALUES (NULL)"); using (var command = connection.CreateCommand()) { command.CommandText = "SELECT * FROM TestTable"; using (var reader = command.ExecuteReader()) { reader.Read(); var values = new object[1]; var count = reader.GetValues(values); Assert.Equal(1, count); Assert.Equal(DBNull.Value, values[0]); } } } }
public void GetOrdinal_throws_when_unknown() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT 1"; connection.Open(); using (var reader = command.ExecuteReader()) { var ex = Assert.Throws<IndexOutOfRangeException>(() => reader.GetOrdinal("Unknown")); Assert.Equal("Unknown", ex.Message); } } } }
public void Dispose_works() { using (var connection = new SQLiteConnection("Filename=:memory:")) { CreateTestTable(connection); using (var transaction = connection.BeginTransaction()) { using (var command = connection.CreateCommand()) { command.CommandText = "INSERT INTO TestTable VALUES (1)"; command.ExecuteNonQuery(); transaction.Dispose(); Assert.Null(connection.Transaction); Assert.Null(transaction.Connection); } } Assert.Equal(0L, connection.ExecuteScalar<long>("SELECT COUNT(*) FROM TestTable")); } }
public void ExecuteReader_works_when_batching() { using (var connection = new SQLiteConnection("Filename=:memory:")) { using (var command = connection.CreateCommand()) { command.CommandText = "SELECT @Parameter; SELECT @Parameter + 1;"; command.Parameters.AddWithValue("@Parameter", 1); connection.Open(); using (var reader = command.ExecuteReader()) { Assert.True(command.Parameters.Bound); Assert.NotNull(command.OpenReader); Assert.NotNull(reader); reader.Read(); Assert.Equal(1L, reader[0]); reader.NextResult(); reader.Read(); Assert.Equal(2L, reader[0]); } } } }