using System; using Microsoft.AspNet.Hosting; using Microsoft.AspNet.Hosting.Internal; using Microsoft.Extensions.Logging; using Microsoft.Extensions.OptionsModel; using Yavsc.Lib; using Yavsc.Services; using Yavsc; using Xunit; namespace test { [Trait("regres", "no")] public class ServerSideFixture : IDisposable { SiteSettings _siteSetup; ILogger _logger; IApplication _app; EMailer _mailer; ILoggerFactory _loggerFactory; IEmailSender _mailSender; public static string ApiKey => "53f4d5da-93a9-4584-82f9-b8fdf243b002" ; public SiteSettings SiteSetup { get { return _siteSetup; } set { _siteSetup = value; } } public IEmailSender MailSender { get { return _mailSender; } set { _mailSender = value; } } public IApplication App { get { return _app; } set { _app = value; } } public ILogger Logger { get { return _logger; } set { _logger = value; } } // public ServerSideFixture() { InitTestHost(); Logger = _loggerFactory.CreateLogger (); Logger.LogInformation("ServerSideFixture created."); } [Fact] void InitTestHost() { var host = new WebHostBuilder(); var hostengnine = host .UseEnvironment("Development") .UseServer("test") .UseStartup() .Build(); App = hostengnine.Start(); _mailer = App.Services.GetService(typeof(EMailer)) as EMailer; _loggerFactory = App.Services.GetService(typeof(ILoggerFactory)) as ILoggerFactory; var siteSetup = App.Services.GetService(typeof(IOptions)) as IOptions; SiteSetup = siteSetup.Value; MailSender = App.Services.GetService(typeof(IEmailSender)) as IEmailSender; } public void Dispose() { Logger.LogInformation("Disposing"); } } }