public async Task SetUp() { var truncateTableCmd = "truncate \"unit_tests\".\"simple_test_entity\";"; var resetIdSequenceCmd = "ALTER SEQUENCE \"unit_tests\".\"simple_test_entity_id_seq\" RESTART WITH 1;"; await using var connection = new NpgsqlConnection(_configuration.ConnectionString); await using var command = new NpgsqlCommand($"{truncateTableCmd}{resetIdSequenceCmd}", connection); await connection.OpenAsync(); await command.ExecuteNonQueryAsync(); var bulkServiceOptions = new BulkServiceOptions(); _entityProfile = new SimpleEntityProfile(); bulkServiceOptions.AddEntityProfile <TestEntity>(_entityProfile); var insertCommandBuilder = new InsertSqlCommandBuilder(NullLoggerFactory.Instance); var updateCommandBuilder = new Mock <IUpdateSqlCommandBuilder>().Object; var deleteCommandBuilder = new WhereInDeleteSqlCommandBuilder(NullLogger <WhereInDeleteSqlCommandBuilder> .Instance); var upsertCommandBuilder = new Mock <IUpsertSqlCommandBuilder>().Object; _testService = new NpgsqlCommandsBulkService( bulkServiceOptions, NullLoggerFactory.Instance, insertCommandBuilder, updateCommandBuilder, deleteCommandBuilder, upsertCommandBuilder); }
public async Task Should_delete_elements_with_multiple_pk() { var bulkServiceOptions = new BulkServiceOptions(); var profile = new EntityProfile(typeof(TestEntity)); profile.HasProperty <TestEntity, int>(x => x.Id) .ThatIsPrivateKey() .ThatIsAutoGenerated(); profile.HasProperty <TestEntity, string>(x => x.RecordId) .ThatIsPrivateKey(); profile.HasProperty <TestEntity, int>(x => x.Value); profile.ToTable("simple_test_entity", "unit_tests"); bulkServiceOptions.AddEntityProfile <TestEntity>(profile); var insertCommandBuilder = new InsertSqlCommandBuilder(NullLoggerFactory.Instance); var updateCommandBuilder = new Mock <IUpdateSqlCommandBuilder>().Object; var deleteCommandBuilder = new WhereInDeleteSqlCommandBuilder(NullLogger <WhereInDeleteSqlCommandBuilder> .Instance); var upsertCommandBuilder = new Mock <IUpsertSqlCommandBuilder>().Object; _testService = new NpgsqlCommandsBulkService( bulkServiceOptions, NullLoggerFactory.Instance, insertCommandBuilder, updateCommandBuilder, deleteCommandBuilder, upsertCommandBuilder); var elements = new List <TestEntity> { new TestEntity { RecordId = "rec-01", SensorId = "sens-01", Value = 127 }, new TestEntity { RecordId = "rec-02", SensorId = "sens-01", Value = 128 }, new TestEntity { RecordId = "rec-01", SensorId = "sens-02", Value = 227 }, }; await using var connection = new NpgsqlConnection(_configuration.ConnectionString); var ex = Assert.ThrowsAsync <SqlBulkExecutionException <TestEntity> >(() => _testService.DeleteAsync(connection, elements, CancellationToken.None)); Assert.IsTrue(ex.InnerException is ArgumentException); }
public void SetUp() { _testService = new WhereInDeleteSqlCommandBuilder(NullLogger <WhereInDeleteSqlCommandBuilder> .Instance); }