Пример #1
0
        public async Task RunBeforeAnyTests()
        {
            (_dockerContainerId, _dockerSqlPort) = await DockerSqlDatabaseUtilities.EnsureDockerStartedAndGetContainerIdAndPortAsync();

            var dockerConnectionString = DockerSqlDatabaseUtilities.GetSqlConnectionString(_dockerSqlPort);

            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddInMemoryCollection(new Dictionary <string, string>
            {
                { "UseInMemoryDatabase", "false" },
                { "ConnectionStrings:", dockerConnectionString }
            })
                          .AddEnvironmentVariables();

            _configuration = builder.Build();
            _env           = Mock.Of <IWebHostEnvironment>();

            var startup = new Startup(_configuration, _env);

            var services = new ServiceCollection();

            services.AddLogging();

            startup.ConfigureServices(services);

            _scopeFactory = services.BuildServiceProvider().GetService <IServiceScopeFactory>();

            _checkpoint = new Checkpoint
            {
                TablesToIgnore = new[] { "__EFMigrationsHistory" },
            };

            EnsureDatabase();
        }
        public async Task RunBeforeAnyTests()
        {
            (_dockerContainerId, _dockerSqlPort) = await DockerSqlDatabaseUtilities.EnsureDockerStartedAndGetContainerIdAndPortAsync();

            var dockerConnectionString = DockerSqlDatabaseUtilities.GetSqlConnectionString(_dockerSqlPort);
            //    new NpgsqlConnectionStringBuilder()
            //{
            //    Host = "localhost",
            //    Password = DockerSqlDatabaseUtilities.DB_SA_PASSWORD,
            //    Username = DockerSqlDatabaseUtilities.DB_USER,
            //    Database = DockerSqlDatabaseUtilities.DB_NAME,
            //    IntegratedSecurity = true,
            //    Port = Int32.Parse(_dockerSqlPort)
            //}.ToString();

            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddInMemoryCollection(new Dictionary <string, string>
            {
                { "UseInMemoryDatabase", "false" },
                { "ConnectionStrings:AccessioningDbContext", dockerConnectionString }
            })
                          .AddEnvironmentVariables();

            _configuration = builder.Build();
            _env           = Mock.Of <IWebHostEnvironment>();

            var startup = new Startup(_configuration, _env);

            var services = new ServiceCollection();

            services.AddLogging();

            startup.ConfigureServices(services);

            // Replace service registration for ICurrentUserService
            // Remove existing registration
            //var currentUserServiceDescriptor = services.FirstOrDefault(d =>
            //    d.ServiceType == typeof(ICurrentUserService));

            //services.Remove(currentUserServiceDescriptor);

            // Register testing version
            //services.AddTransient(provider =>
            //    Mock.Of<ICurrentUserService>(s => s.UserId == _currentUserId));

            _scopeFactory = services.BuildServiceProvider().GetService <IServiceScopeFactory>();

            _checkpoint = new Checkpoint
            {
                TablesToIgnore   = new[] { "__EFMigrationsHistory" },
                SchemasToExclude = new[] { "information_schema", "pg_subscription", "pg_catalog", "pg_toast" },
                DbAdapter        = DbAdapter.Postgres
            };

            EnsureDatabase();
        }
        public async Task RunBeforeAnyTests()
        {{
            (_dockerContainerId, _dockerSqlPort) = await DockerSqlDatabaseUtilities.EnsureDockerStartedAndGetContainerIdAndPortAsync();
            var dockerConnectionString = DockerSqlDatabaseUtilities.GetSqlConnectionString(_dockerSqlPort);

            var builder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddInMemoryCollection(new Dictionary<string, string>
                    {{
                        {{ " "UseInMemoryDatabase" ", " "false" " }},