Example #1
0
        public TestingServer(IServerClientFactory serverClientFactory, string updatePath)
        {
            this.serverClientFactory = serverClientFactory;

            Directory = Path.GetTempFileName();
            File.Delete(Directory);
            System.IO.Directory.CreateDirectory(Directory);
            Url = new Uri("http://localhost:5001");

            //so we need a db
            //we have to rely on env vars
            var databaseType              = Environment.GetEnvironmentVariable("TGS4_TEST_DATABASE_TYPE");
            var connectionString          = Environment.GetEnvironmentVariable("TGS4_TEST_CONNECTION_STRING");
            var gitHubAccessToken         = Environment.GetEnvironmentVariable("TGS4_TEST_GITHUB_TOKEN");
            var dumpOpenAPISpecPathEnvVar = Environment.GetEnvironmentVariable("TGS4_TEST_DUMP_API_SPEC");

            if (String.IsNullOrEmpty(databaseType))
            {
                Assert.Inconclusive("No database type configured in env var TGS4_TEST_DATABASE_TYPE!");
            }

            if (String.IsNullOrEmpty(connectionString))
            {
                Assert.Inconclusive("No connection string configured in env var TGS4_TEST_CONNECTION_STRING!");
            }

            if (String.IsNullOrEmpty(gitHubAccessToken))
            {
                Console.WriteLine("WARNING: No GitHub access token configured, test may fail due to rate limits!");
            }

            dumpOpenAPISpecpath = !String.IsNullOrEmpty(dumpOpenAPISpecPathEnvVar);

            var args = new List <string>()
            {
                String.Format(CultureInfo.InvariantCulture, "Kestrel:EndPoints:Http:Url={0}", Url),
                String.Format(CultureInfo.InvariantCulture, "Database:DatabaseType={0}", databaseType),
                String.Format(CultureInfo.InvariantCulture, "Database:ConnectionString={0}", connectionString),
                String.Format(CultureInfo.InvariantCulture, "Database:DropDatabase={0}", true),
                String.Format(CultureInfo.InvariantCulture, "General:SetupWizardMode={0}", SetupWizardMode.Never)
            };

            if (!String.IsNullOrEmpty(gitHubAccessToken))
            {
                args.Add(String.Format(CultureInfo.InvariantCulture, "General:GitHubAccessToken={0}", gitHubAccessToken));
            }

            if (dumpOpenAPISpecpath)
            {
                Environment.SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Development");
            }

            realServer = ServerFactory.CreateDefault().CreateServer(args.ToArray(), updatePath);
        }
 async Task TestServerInformation(IServerClientFactory clientFactory, IServerClient serverClient, CancellationToken cancellationToken)
 {
     var serverInfo = await serverClient.ServerInformation(default).ConfigureAwait(false);