Example #1
0
        /// <summary>
        /// Instantiates the database and internal logger objects for tests.
        /// </summary>
        public void InstantiateDatabaseObjects(ITestOutputHelper output)
        {
            if (_messageSink == null)
            {
                _sqlContextLogger = new Mock <ILogger <DatabaseContext> >().Object;
                _sqlSessionLogger = new Mock <ILogger <SqlDatabaseSession> >().Object;
            }
            else
            {
                _sqlContextLogger = new XUnitLogger <DatabaseContext>(_messageSink).SetOutputHelper(output);
                _sqlSessionLogger = new XUnitLogger <SqlDatabaseSession>(_messageSink).SetOutputHelper(output);
            }

            // Entry by next tests after first - reuse everything already set
            if (_sqlContext != null && _sqlContext.Connection.State == ConnectionState.Open)
            {
                return;
            }

            _sqlContext     = new DatabaseContext(this.SqlConnection, _sqlContextLogger);
            this.SqlSession = new SqlDatabaseSession(_sqlContext, _sqlSessionLogger);
            this.Db         = new CommandQueryContext(this.SqlSession);
        }
Example #2
0
 /// <summary>
 /// Database session object, used by <see cref="CommandQueryContext"/> which is passed as parameter into "Execute" method of
 /// <see cref="IQuery{T}"/> or <see cref="ICommand"/> implementations and used there to use methods in this class for actual data manipulation.
 /// </summary>
 /// <param name="context">The SQL database context, containing the connection itself and all its manipulation methods.</param>
 /// <param name="logger">
 /// The logger (here just for Trace level to add method call trace into log).
 /// Log level is checked before using LogTrace to avoid SQL shortening procedure if it is not required.
 /// </param>
 public SqlDatabaseSession(IMsSqlContext context, ILogger <SqlDatabaseSession> logger)
 {
     _logger  = logger;
     _context = context;
 }