Exemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SqlDatabaseSessionTests"/> class.
 /// This happens for each separate test (NOT once for all tests in class).
 /// </summary>
 /// <param name="output">The output.</param>
 public SqlDatabaseSessionTests(ITestOutputHelper output)
 {
     _output     = output;
     _sqlContext = new Mock <IMsSqlContext>();
     _sqlContext.SetupGet(p => p.ExecutionTime).Returns(new TimeSpan(0, 0, 0, 0, 386)); // Execution time
     _logger = new XUnitLogger <SqlDatabaseSession>(_output);
 }
        public async Task QueryAsync_NoCancellationToken_Waits()
        {
            var sessionLogger = new XUnitLogger <SqlDatabaseSession>(_output);
            var sess          = new SqlDatabaseSession(_sut, sessionLogger);
            var cqrs          = new CommandQueryContext(sess);

            var result = await cqrs.QueryAsync(new LongQuery());

            result.Should().Be(1);
            _sut.ExecutionTime.Should().BeGreaterThan(TimeSpan.FromSeconds(9));
            _sut.Dispose();
        }
        public async Task QueryAsync_CancellationToken_GetsCancelled()
        {
            var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(3));
            var sessionLogger           = new XUnitLogger <SqlDatabaseSession>(_output);
            var sess = new SqlDatabaseSession(_sut, sessionLogger);
            var cqrs = new CommandQueryContext(sess);

            var resultTask = cqrs.QueryAsync(new LongQuery(), cancellationTokenSource.Token);

            try
            {
                if (!resultTask.Wait(TimeSpan.FromSeconds(5)))
                {
                    throw new TimeoutException("Async Query Cancellation did not happen."); // should have cancelled
                }
            }
            catch (AggregateException agg)
            {
                Assert.True(agg.InnerException.GetType().Name == "SqlException");
            }

            _sut.Dispose();
        }
 public DatabaseContextIntegrationTests(ITestOutputHelper output)
 {
     _log    = new XUnitLogger <DatabaseContext>(output);
     _sut    = new DatabaseContext(ChinookLightTestsFixture.SqlConnectionString, _log);
     _output = output;
 }