Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
 }