Exemplo n.º 1
0
        public static WebHostBuilder UseProjectOf <TStartup>(this WebHostBuilder builder)
        {
            var libraryManager = DnxPlatformServices.Default.LibraryManager;

            var applicationName = typeof(TStartup).GetTypeInfo().Assembly.GetName().Name;
            var library         = libraryManager.GetLibrary(applicationName);
            var webRoot         = Path.GetDirectoryName(library.Path);

            var assemblyProvider = new StaticAssemblyProvider();

            assemblyProvider.CandidateAssemblies.Add(typeof(TStartup).Assembly);
            builder.ConfigureServices(services =>
            {
                var applicationEnvironment = new TestApplicationEnvironment(
                    PlatformServices.Default.Application,
                    applicationName,
                    webRoot);
                services.AddSingleton <IApplicationEnvironment>(applicationEnvironment);

                var hostingEnvironment = new HostingEnvironment();
                hostingEnvironment.Initialize(
                    webRoot,
                    new WebHostOptions
                {
                    Environment = "Production",
                },
                    configuration: null);
                services.AddSingleton <IHostingEnvironment>(hostingEnvironment);

                services.AddSingleton <IAssemblyProvider>(assemblyProvider);
            });

            return(builder);
        }
 public SessionControllerTests()
 {
     _server = new TestServer(TestServer.CreateBuilder()
         .UseEnvironment("Development")
         // needed for views to be accessed properly
         .UseServices(services =>
         {
             var env = new TestApplicationEnvironment();
             env.ApplicationBasePath =
                 Path.GetFullPath(Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, "..",
                     "..", "src", "TestingControllersSample"));
             env.ApplicationName = "TestingControllersSample";
             services.AddInstance<IApplicationEnvironment>(env);
         })
         .UseStartup<Startup>());
     _client = _server.CreateClient();
 }
 public SessionControllerTests()
 {
     _server = new TestServer(TestServer.CreateBuilder()
                              .UseEnvironment("Development")
                              // needed for views to be accessed properly
                              .UseServices(services =>
     {
         var env = new TestApplicationEnvironment();
         env.ApplicationBasePath =
             Path.GetFullPath(Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, "..",
                                           "..", "src", "TestingControllersSample"));
         env.ApplicationName = "TestingControllersSample";
         services.AddInstance <IApplicationEnvironment>(env);
     })
                              .UseStartup <Startup>());
     _client = _server.CreateClient();
 }
Exemplo n.º 4
0
        public static IServiceCollection AddTestApplicationEnvironment <TStartup>(this IServiceCollection self)
            where TStartup : class
        {
            self.AddInstance <ILoggerFactory>(NullLoggerFactory.Instance);
            var type = typeof(TStartup);
            var applicationServices    = CallContextServiceLocator.Locator.ServiceProvider;
            var libraryManager         = applicationServices.GetRequiredService <ILibraryManager>();
            var applicationName        = type.Assembly.GetName().Name;
            var library                = libraryManager.GetLibrary(applicationName);
            var applicationRoot        = Path.GetDirectoryName(library.Path);
            var applicationEnvironment = applicationServices.GetRequiredService <IApplicationEnvironment>();
            var env = new TestApplicationEnvironment(applicationEnvironment, applicationName, applicationRoot);

            self.AddInstance <IApplicationEnvironment>(
                new TestApplicationEnvironment(applicationEnvironment, applicationName, applicationRoot));
            return(self);
        }