public void Setup()
        {
            Configuration = new ConfigurationBuilder()
                            .SetBasePath(TestContext.CurrentContext.TestDirectory)
                            .AddJsonFile("appsettings.json", optional: true)
                            .Build();

            PopulatedDatabaseName = Configuration.GetSection("TestDatabaseTemplateName").Value ??
                                    "EdFi_Ods_Populated_Template_Test";

            TestPopulatedDatabaseName = DatabasePrefix + Guid.NewGuid().ToString("N");

            if (string.IsNullOrWhiteSpace(PopulatedDatabaseName))
            {
                throw new ApplicationException(
                          "Invalid configuration for integration tests.  Verify a valid source database name is provided in the App Setting \"TestDatabaseTemplateName\"");
            }

            var databaseHelper = new MsSqlDatabaseHelper(Configuration);

            databaseHelper.CopyDatabase(PopulatedDatabaseName, TestPopulatedDatabaseName);

            Assembly.Load("EdFi.Ods.Common");
            Assembly.Load("EdFi.Ods.Standard");
        }
Exemple #2
0
        public async Task OneTimeStartup()
        {
            var executableAbsoluteDirectory = Path.GetDirectoryName(typeof(GlobalWebApiIntegrationTestFixture).Assembly.Location);

            Host = Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder()
                   .ConfigureAppConfiguration(
                (hostBuilderContext, configBuilder) =>
            {
                configBuilder.SetBasePath(executableAbsoluteDirectory)
                .AddJsonFile(Path.Combine(executableAbsoluteDirectory, "appsettings.json"))
                .AddJsonFile(Path.Combine(executableAbsoluteDirectory, "appsettings.yearspecific.json"));
            })
                   .UseServiceProviderFactory(new AutofacServiceProviderFactory())
                   .ConfigureWebHostDefaults(
                webBuilder =>
            {
                webBuilder.UseStartup <Startup>();
                webBuilder.UseUrls(TestConstants.YearSpecificBaseUrl);
            })
                   .Build();

            Configuration = (IConfiguration)Host.Services.GetService(typeof(IConfiguration));

            HttpClient = new HttpClient {
                BaseAddress = new Uri(TestConstants.YearSpecificBaseUrl)
            };

            CreateDatabases();

            await Host.StartAsync(GlobalWebApiIntegrationTestFixture.CancellationToken);

            void CreateDatabases()
            {
                string populatedTemplateDatabaseName = Configuration.GetValue <string>("TestDatabaseTemplateName");

                if (string.IsNullOrWhiteSpace(populatedTemplateDatabaseName))
                {
                    throw new ApplicationException(
                              "Invalid configuration for integration tests. Verify a valid source database name is provided in the App Setting \"TestDatabaseTemplateName\"");
                }

                _databaseHelper = new MsSqlDatabaseHelper((IConfigurationRoot)Configuration);

                // year specific databases
                _databaseHelper.CopyDatabase(
                    populatedTemplateDatabaseName, $"{GlobalWebApiIntegrationTestFixture.DatabaseName}_2014");

                _databaseHelper.CopyDatabase(
                    populatedTemplateDatabaseName, $"{GlobalWebApiIntegrationTestFixture.DatabaseName}_2015");
            }
        }
Exemple #3
0
        public async Task OneTimeSetup()
        {
            Host = Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder()
                   .UseServiceProviderFactory(new AutofacServiceProviderFactory())
                   .ConfigureWebHostDefaults(
                webBuilder =>
            {
                webBuilder.UseStartup <Startup>();
                webBuilder.UseUrls(TestConstants.SandboxBaseUrl);
            })
                   .Build();

            Configuration = (IConfiguration)Host.Services.GetService(typeof(IConfiguration));

            CreateDatabase();

            await Host.StartAsync(GlobalWebApiIntegrationTestFixture.CancellationToken);

            HttpClient = new HttpClient {
                BaseAddress = new Uri(TestConstants.SandboxBaseUrl)
            };

            void CreateDatabase()
            {
                var populatedTemplateDatabaseName = Configuration.GetValue <string>("TestDatabaseTemplateName");

                if (string.IsNullOrWhiteSpace(populatedTemplateDatabaseName))
                {
                    throw new ApplicationException(
                              "Invalid configuration for integration tests. Verify a valid source database name is provided in the App Setting \"TestDatabaseTemplateName\"");
                }

                _databaseHelper = new MsSqlDatabaseHelper((IConfigurationRoot)Configuration);

                // sandbox databases
                _databaseHelper.CopyDatabase(populatedTemplateDatabaseName, GlobalWebApiIntegrationTestFixture.DatabaseName);
            }
        }
Exemple #4
0
        public async Task OneTimeSetUpAsync()
        {
            SpecFlowDatabaseName = DatabasePrefix + Guid.NewGuid().ToString("N");

            var executableAbsoluteDirectory = AppContext.BaseDirectory;

            ConfigureLogging(executableAbsoluteDirectory);

            // Create and start up the host
            Host = Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder()
                   .UseServiceProviderFactory(new AutofacServiceProviderFactory())
                   .ConfigureWebHostDefaults(
                webBuilder =>
            {
                webBuilder.UseStartup <Startup>();
                webBuilder.UseUrls(CompositesTestConstants.BaseUrl);
            })
                   .Build();

            ServiceProvider = Host.Services;

            var configuration = (IConfigurationRoot)ServiceProvider.GetService(typeof(IConfiguration));

            var populatedTemplateDatabaseName = configuration.GetSection("TestDatabaseTemplateName").Value;

            if (string.IsNullOrWhiteSpace(populatedTemplateDatabaseName))
            {
                throw new ApplicationException(
                          "Invalid configuration for integration tests. Verify a valid source database name is provided in the App Setting \"TestDatabaseTemplateName\"");
            }

            DatabaseHelper = new MsSqlDatabaseHelper(configuration);
            DatabaseHelper.CopyDatabase(populatedTemplateDatabaseName, SpecFlowDatabaseName);

            await Host.StartAsync();
        }
        public void TearDown()
        {
            var databaseHelper = new MsSqlDatabaseHelper(Configuration);

            databaseHelper.DropMatchingDatabases(DatabasePrefix + "%");
        }