Example #1
0
        public AsyncQldbDriver CreateAsyncDriver(
            AmazonQLDBSessionConfig amazonQldbSessionConfig,
            int maxConcurrentTransactions = default,
            string ledgerName             = default)
        {
            AsyncQldbDriverBuilder builder = AsyncQldbDriver.Builder();

            string finalLedgerName;

            if (ledgerName != default)
            {
                finalLedgerName = ledgerName;
            }
            else
            {
                finalLedgerName = this.ledgerName;
            }

            if (maxConcurrentTransactions != default)
            {
                builder.WithMaxConcurrentTransactions(maxConcurrentTransactions);
            }

            return(builder.WithQLDBSessionConfig(amazonQldbSessionConfig)
                   .WithLedger(finalLedgerName)
                   .Build());
        }
        private void CreateDriverFactory()
        {
            _driverFactory = new Lazy <IAsyncQldbDriver>(() =>
            {
                var builder = AsyncQldbDriver.Builder()
                              .WithAWSCredentials(_credentials)
                              .WithQLDBSessionConfig(_sessionConfig);

                if (!string.IsNullOrEmpty(_ledger))
                {
                    builder.WithLedger(_ledger);
                }

                if (_maxConcurrentTransactions >= 0)
                {
                    builder.WithMaxConcurrentTransactions(_maxConcurrentTransactions);
                }

                if (_useRetryLogging)
                {
                    builder.WithRetryLogging();
                }

                if (_logger != null)
                {
                    builder.WithLogger(_logger);
                }

                return(builder
                       .Build());
            });
        }
Example #3
0
 private AmazonQldbDataProvider GetAmazonQLDBDataProvider(List <AuditEvent> ins, List <AuditEvent> repl) =>
 new AmazonAsyncQldbDataProviderForTest(ins, repl)
 {
     QldbDriver = new Lazy <IAsyncQldbDriver>(() => AsyncQldbDriver.Builder()
                                              .WithQLDBSessionConfig(new AmazonQLDBSessionConfig())
                                              .WithLedger("audit-ledger")
                                              .WithRetryLogging()
                                              .WithMaxConcurrentTransactions(2)
                                              .Build()),
     TableNameBuilder = ev => ev.EventType
 };
Example #4
0
        public void SetupTest()
        {
            builder = AsyncQldbDriver.Builder()
                      .WithLedger("testLedger")
                      .WithRetryLogging()
                      .WithLogger(NullLogger.Instance)
                      .WithAWSCredentials(new Mock <AWSCredentials>().Object)
                      .WithQLDBSessionConfig(new AmazonQLDBSessionConfig());
            Assert.IsNotNull(builder);

            mockClient = new MockSessionClient();
            mockClient.SetDefaultResponse(DefaultSendCommandResponse("testToken", TestTransactionId,
                                                                     TestRequestId, digest));

            testDriver = new AsyncQldbDriver(TestLedger, mockClient, 4, NullLogger.Instance, null);
            Assert.IsNotNull(testDriver);
        }
Example #5
0
        private static async Task PerformSetup()
        {
            IAsyncQldbDriver qldbDriver = AsyncQldbDriver.Builder()
                                          .WithLedger(LedgerName)
                                          .Build();

            CreateLedger createLedger = new CreateLedger();
            await createLedger.Run();

            CreateTables createTables = new CreateTables(qldbDriver);
            await createTables.Run();

            CreateIndexes createIndexes = new CreateIndexes(qldbDriver);
            await createIndexes.Run();

            SampleData sampleData = new SampleData(qldbDriver);
            await sampleData.Run();
        }
        public static async Task SetUp(TestContext context)
        {
            // Get AWS configuration properties from .runsettings file.
            string       region     = context.Properties["region"].ToString();
            const string ledgerName = "DotnetAsyncStatementExecution";

            amazonQldbSessionConfig = IntegrationTestBase.CreateAmazonQLDBSessionConfig(region);
            integrationTestBase     = new IntegrationTestBase(ledgerName, region);

            integrationTestBase.RunForceDeleteLedger();

            integrationTestBase.RunCreateLedger();
            qldbDriver = integrationTestBase.CreateAsyncDriver(amazonQldbSessionConfig, new ObjectSerializer());

            // Create table.
            var query = $"CREATE TABLE {Constants.TableName}";

            Assert.AreEqual(1, await ExecuteAndReturnRowCount(query));

            Assert.IsTrue(await ConfirmTableExists(Constants.TableName));
        }
 public async Task ExecuteAsync_UpdateSameRecordAtSameTime_ThrowsOccException()
 {
     // Create a driver that does not retry OCC errors
     AsyncQldbDriver driver = integrationTestBase.CreateAsyncDriver(amazonQldbSessionConfig, default, default);
 public IAmazonQldbProviderTableConfigurator WithQldbDriver(AsyncQldbDriver driver)
 {
     _driverFactory = new Lazy <IAsyncQldbDriver>(() => driver);
     return(_tableConfigurator);
 }
 /// <summary>
 /// Creates a new AmazonQLDB data provider using the given driver.
 /// </summary>
 /// <param name="driver">The Amazon QLDB driver instance.</param>
 public AmazonQldbDataProvider(AsyncQldbDriver driver)
 {
     QldbDriver = new Lazy <IAsyncQldbDriver>(() => driver);
 }