/// <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; }