Remove use of `ServiceDescriber` in MVC and cleanup related hacks

- see issues aspnet/DependencyInjection#193 and #1612
- use `TryAdd()` in `MvcServices` for the `IAssemblyProvider`

Move `ApplicationBasePath` handling into `RazorPreCompileModule`
- restores view precompilation in functional tests of sample sites
- if we need this, others will as well
- override `IApplicationEnvironment` but get folder from `ProjectContext`
 - also remove remaining `IServiceProvider` implementations in this code

test fixes:
- simplify `IApplicationEnvironment` override
- move override logic into `TestHelper.CreateServer()` methods
- remove `LoggerFactory` setup
 - does not seem to require special-casing
- remove unused `ITestConfigurationProvider` / `TestConfigurationProvider`
- remove `TestAssemblyProvider` classes
 - no longer required
- remove `ReplaceCallContextServiceLocationService` test helper
 - change MVC sample to fully-qualify config.json path
  - avoids `ReplaceCallContextServiceLocationService` need in `MvcSampleTests`
 - no longer required for other tests

nit: remove unused `_serviceProvider` and constructor overload in `RazorPreCompiler`
This commit is contained in:
Doug Bunting 2015-03-10 22:25:42 -07:00
parent db728cd386
commit cc7b319cb7
90 changed files with 1168 additions and 1594 deletions

View File

@ -1,19 +1,25 @@
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. // Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
#if DNX451
using System; using System;
using System.IO;
using Autofac;
#endif
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Mvc; using Microsoft.AspNet.Mvc;
using Microsoft.AspNet.Mvc.Razor; using Microsoft.AspNet.Mvc.Razor;
#if DNX451
using Microsoft.Framework.ConfigurationModel; using Microsoft.Framework.ConfigurationModel;
#endif
using Microsoft.Framework.DependencyInjection; using Microsoft.Framework.DependencyInjection;
#if DNX451
using Microsoft.Framework.DependencyInjection.Autofac;
using Microsoft.Framework.Runtime;
#endif
using MvcSample.Web.Filters; using MvcSample.Web.Filters;
using MvcSample.Web.Services; using MvcSample.Web.Services;
#if DNX451
using Autofac;
using Microsoft.Framework.DependencyInjection.Autofac;
#endif
namespace MvcSample.Web namespace MvcSample.Web
{ {
@ -22,15 +28,21 @@ namespace MvcSample.Web
public void Configure(IApplicationBuilder app) public void Configure(IApplicationBuilder app)
{ {
app.UseStatusCodePages(); app.UseStatusCodePages();
app.UseFileServer(); app.UseFileServer();
#if DNX451 #if DNX451
// Fully-qualify configuration path to avoid issues in functional tests. Just "config.json" would be fine
// but Configuration uses CallContextServiceLocator.Locator.ServiceProvider to get IApplicationEnvironment.
// Functional tests update that service but not in the static provider.
var applicationEnvironment = app.ApplicationServices.GetRequiredService<IApplicationEnvironment>();
var configurationPath = Path.Combine(applicationEnvironment.ApplicationBasePath, "config.json");
// Set up configuration sources. // Set up configuration sources.
var configuration = new Configuration() var configuration = new Configuration()
.AddJsonFile("config.json") .AddJsonFile(configurationPath)
.AddEnvironmentVariables(); .AddEnvironmentVariables();
string diSystem;
string diSystem;
if (configuration.TryGet("DependencyInjection", out diSystem) && if (configuration.TryGet("DependencyInjection", out diSystem) &&
diSystem.Equals("AutoFac", StringComparison.OrdinalIgnoreCase)) diSystem.Equals("AutoFac", StringComparison.OrdinalIgnoreCase))
{ {
@ -46,10 +58,6 @@ namespace MvcSample.Web
services.AddSingleton<UserNameService>(); services.AddSingleton<UserNameService>();
services.AddTransient<ITestService, TestService>(); services.AddTransient<ITestService, TestService>();
// Setup services with a test AssemblyProvider so that only the
// sample's assemblies are loaded. This prevents loading controllers from other assemblies
// when the sample is used in the Functional Tests.
services.AddTransient<IAssemblyProvider, TestAssemblyProvider<Startup>>();
services.ConfigureMvcOptions(options => services.ConfigureMvcOptions(options =>
{ {
options.Filters.Add(typeof(PassThroughAttribute), order: 17); options.Filters.Add(typeof(PassThroughAttribute), order: 17);
@ -91,11 +99,6 @@ namespace MvcSample.Web
services.AddSingleton<UserNameService>(); services.AddSingleton<UserNameService>();
services.AddTransient<ITestService, TestService>(); services.AddTransient<ITestService, TestService>();
// Setup services with a test AssemblyProvider so that only the
// sample's assemblies are loaded. This prevents loading controllers from other assemblies
// when the sample is used in the Functional Tests.
services.AddTransient<IAssemblyProvider, TestAssemblyProvider<Startup>>();
services.ConfigureMvcOptions(options => services.ConfigureMvcOptions(options =>
{ {
options.Filters.Add(typeof(PassThroughAttribute), order: 17); options.Filters.Add(typeof(PassThroughAttribute), order: 17);

View File

@ -1,29 +0,0 @@
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Collections.Generic;
using System.Reflection;
using Microsoft.AspNet.Mvc;
namespace MvcSample.Web
{
/// <summary>
/// Limits MVC to use a single Assembly for controller discovery.
/// This is used by the functional test to limit the Controller discovery to
/// MvcSample.Web Assembly alone.
/// The sample should work in the absense of this file.
/// </summary>
/// <remarks>
/// This is a generic type because it needs to instantiated by a service provider to replace
/// a built-in MVC service.
/// </remarks>
public class TestAssemblyProvider<T> : IAssemblyProvider
{
public TestAssemblyProvider()
{
CandidateAssemblies = new Assembly[] { typeof(T).GetTypeInfo().Assembly };
}
public IEnumerable<Assembly> CandidateAssemblies { get; private set; }
}
}

View File

@ -3,10 +3,8 @@
using System; using System;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Mvc;
using Microsoft.Framework.DependencyInjection; using Microsoft.Framework.DependencyInjection;
using Microsoft.Framework.Logging; using Microsoft.Framework.Logging;
using Microsoft.Framework.Logging.Console;
using TagHelperSample.Web.Services; using TagHelperSample.Web.Services;
namespace TagHelperSample.Web namespace TagHelperSample.Web
@ -19,9 +17,6 @@ namespace TagHelperSample.Web
{ {
services.AddMvc(); services.AddMvc();
// Setup services with a test AssemblyProvider so that only the sample's assemblies are loaded. This
// prevents loading controllers from other assemblies when the sample is used in functional tests.
services.AddTransient<IAssemblyProvider, TestAssemblyProvider<Startup>>();
services.AddSingleton<MoviesService>(); services.AddSingleton<MoviesService>();
}); });

View File

@ -1,28 +0,0 @@
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Collections.Generic;
using System.Reflection;
using Microsoft.AspNet.Mvc;
namespace TagHelperSample.Web
{
/// <summary>
/// Limits MVC to use a single Assembly for controller discovery. This is used by the functional test to limit the
/// Controller discovery to TagHelperSample.Web Assembly alone. The sample should work in the absence of this file
/// when not run from a functional test.
/// </summary>
/// <remarks>
/// This is a generic type because it needs to instantiated by a service provider to replace a built-in MVC
/// service.
/// </remarks>
public class TestAssemblyProvider<T> : IAssemblyProvider
{
public TestAssemblyProvider()
{
CandidateAssemblies = new Assembly[] { typeof(T).GetTypeInfo().Assembly };
}
public IEnumerable<Assembly> CandidateAssemblies { get; private set; }
}
}

View File

@ -24,30 +24,29 @@ namespace Microsoft.AspNet.Mvc.Razor
{ {
public class RazorPreCompiler public class RazorPreCompiler
{ {
private readonly IServiceProvider _serviceProvider;
private readonly IFileProvider _fileProvider; private readonly IFileProvider _fileProvider;
public RazorPreCompiler([NotNull] IServiceProvider designTimeServiceProvider, public RazorPreCompiler(
[NotNull] IBeforeCompileContext compileContext, [NotNull] IServiceProvider designTimeServiceProvider,
[NotNull] IMemoryCache precompilationCache, [NotNull] IBeforeCompileContext compileContext,
[NotNull] CompilationSettings compilationSettings) : [NotNull] IMemoryCache precompilationCache,
this(designTimeServiceProvider, [NotNull] CompilationSettings compilationSettings)
compileContext, : this(
designTimeServiceProvider.GetRequiredService<IAssemblyLoadContextAccessor>(), compileContext,
designTimeServiceProvider.GetRequiredService<IOptions<RazorViewEngineOptions>>(), designTimeServiceProvider.GetRequiredService<IAssemblyLoadContextAccessor>(),
precompilationCache, designTimeServiceProvider.GetRequiredService<IOptions<RazorViewEngineOptions>>(),
compilationSettings) precompilationCache,
compilationSettings)
{ {
} }
public RazorPreCompiler([NotNull] IServiceProvider designTimeServiceProvider, private RazorPreCompiler(
[NotNull] IBeforeCompileContext compileContext, [NotNull] IBeforeCompileContext compileContext,
[NotNull] IAssemblyLoadContextAccessor loadContextAccessor, [NotNull] IAssemblyLoadContextAccessor loadContextAccessor,
[NotNull] IOptions<RazorViewEngineOptions> optionsAccessor, [NotNull] IOptions<RazorViewEngineOptions> optionsAccessor,
[NotNull] IMemoryCache precompilationCache, [NotNull] IMemoryCache precompilationCache,
[NotNull] CompilationSettings compilationSettings) [NotNull] CompilationSettings compilationSettings)
{ {
_serviceProvider = designTimeServiceProvider;
CompileContext = compileContext; CompileContext = compileContext;
LoadContext = loadContextAccessor.GetLoadContext(GetType().GetTypeInfo().Assembly); LoadContext = loadContextAccessor.GetLoadContext(GetType().GetTypeInfo().Assembly);
_fileProvider = optionsAccessor.Options.FileProvider; _fileProvider = optionsAccessor.Options.FileProvider;

View File

@ -25,7 +25,7 @@ namespace Microsoft.Framework.DependencyInjection
IConfiguration configuration) IConfiguration configuration)
{ {
ConfigureDefaultServices(services, configuration); ConfigureDefaultServices(services, configuration);
services.TryAdd(MvcServices.GetDefaultServices(configuration)); services.TryAdd(MvcServices.GetDefaultServices());
return services; return services;
} }
@ -46,29 +46,12 @@ namespace Microsoft.Framework.DependencyInjection
/// discovery. /// discovery.
/// </summary> /// </summary>
/// <param name="services">The <see cref="IServiceCollection"/>.</param> /// <param name="services">The <see cref="IServiceCollection"/>.</param>
/// <param name="controllerTypes">A sequence of controller <see cref="Type"/>s to register in the <paramref name="services"/> /// <param name="controllerTypes">A sequence of controller <see cref="Type"/>s to register in the
/// and used for controller discovery.</param> /// <paramref name="services"/> and used for controller discovery.</param>
/// <returns>The <see cref="IServiceCollection"/>.</returns> /// <returns>The <see cref="IServiceCollection"/>.</returns>
public static IServiceCollection WithControllersAsServices( public static IServiceCollection WithControllersAsServices(
[NotNull] this IServiceCollection services, [NotNull] this IServiceCollection services,
[NotNull] IEnumerable<Type> controllerTypes) [NotNull] IEnumerable<Type> controllerTypes)
{
return WithControllersAsServices(services, controllerTypes, configuration: null);
}
/// <summary>
/// Register the specified <paramref name="controllerTypes"/> as services and as a source for controller
/// discovery.
/// </summary>
/// <param name="services">The <see cref="IServiceCollection"/>.</param>
/// <param name="controllerTypes">A sequence of controller <see cref="Type"/>s to register
/// in the <paramref name="services"/> and used for controller discovery.</param>
/// <param name="configuration">The application's <see cref="IConfiguration"/>.</param>
/// <returns>The <see cref="IServiceCollection"/>.</returns>
public static IServiceCollection WithControllersAsServices(
[NotNull] this IServiceCollection services,
[NotNull] IEnumerable<Type> controllerTypes,
IConfiguration configuration)
{ {
var controllerTypeProvider = new FixedSetControllerTypeProvider(); var controllerTypeProvider = new FixedSetControllerTypeProvider();
foreach (var type in controllerTypes) foreach (var type in controllerTypes)
@ -77,9 +60,8 @@ namespace Microsoft.Framework.DependencyInjection
controllerTypeProvider.ControllerTypes.Add(type.GetTypeInfo()); controllerTypeProvider.ControllerTypes.Add(type.GetTypeInfo());
} }
var describer = new ServiceDescriber(configuration); services.Replace(ServiceDescriptor.Transient<IControllerActivator, ServiceBasedControllerActivator>());
services.Replace(describer.Transient<IControllerActivator, ServiceBasedControllerActivator>()); services.Replace(ServiceDescriptor.Instance<IControllerTypeProvider>(controllerTypeProvider));
services.Replace(describer.Instance<IControllerTypeProvider>(controllerTypeProvider));
return services; return services;
} }
@ -94,24 +76,6 @@ namespace Microsoft.Framework.DependencyInjection
public static IServiceCollection WithControllersAsServices( public static IServiceCollection WithControllersAsServices(
[NotNull] this IServiceCollection services, [NotNull] this IServiceCollection services,
[NotNull] IEnumerable<Assembly> controllerAssemblies) [NotNull] IEnumerable<Assembly> controllerAssemblies)
{
return WithControllersAsServices(services,
controllerAssemblies,
configuration: null);
}
/// <summary>
/// Registers controller types from the specified <paramref name="assemblies"/> as services and as a source
/// for controller discovery.
/// </summary>
/// <param name="services">The <see cref="IServiceCollection"/>.</param>
/// <param name="controllerAssemblies">Assemblies to scan.</param>
/// <param name="configuration">The application's <see cref="IConfiguration"/>.</param>
/// <returns>The <see cref="IServiceCollection"/>.</returns>
public static IServiceCollection WithControllersAsServices(
[NotNull] this IServiceCollection services,
[NotNull] IEnumerable<Assembly> controllerAssemblies,
IConfiguration configuration)
{ {
var assemblyProvider = new FixedSetAssemblyProvider(); var assemblyProvider = new FixedSetAssemblyProvider();
foreach (var assembly in controllerAssemblies) foreach (var assembly in controllerAssemblies)
@ -123,9 +87,7 @@ namespace Microsoft.Framework.DependencyInjection
var controllerTypeProvider = new DefaultControllerTypeProvider(assemblyProvider, loggerFactory); var controllerTypeProvider = new DefaultControllerTypeProvider(assemblyProvider, loggerFactory);
var controllerTypes = controllerTypeProvider.ControllerTypes; var controllerTypes = controllerTypeProvider.ControllerTypes;
return WithControllersAsServices(services, return WithControllersAsServices(services, controllerTypes.Select(type => type.AsType()));
controllerTypes.Select(type => type.AsType()),
configuration);
} }
private static void ConfigureDefaultServices(IServiceCollection services, IConfiguration configuration) private static void ConfigureDefaultServices(IServiceCollection services, IConfiguration configuration)
@ -135,10 +97,8 @@ namespace Microsoft.Framework.DependencyInjection
services.AddRouting(); services.AddRouting();
services.AddAuthorization(configuration); services.AddAuthorization(configuration);
services.AddWebEncoders(); services.AddWebEncoders();
services.Configure<RouteOptions>(routeOptions => services.Configure<RouteOptions>(
routeOptions.ConstraintMap routeOptions => routeOptions.ConstraintMap.Add("exists", typeof(KnownRouteValueConstraint)));
.Add("exists",
typeof(KnownRouteValueConstraint)));
} }
} }
} }

View File

@ -1,7 +1,6 @@
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. // Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Collections.Generic;
using Microsoft.AspNet.Mvc.ActionConstraints; using Microsoft.AspNet.Mvc.ActionConstraints;
using Microsoft.AspNet.Mvc.ApplicationModels; using Microsoft.AspNet.Mvc.ApplicationModels;
using Microsoft.AspNet.Mvc.Core; using Microsoft.AspNet.Mvc.Core;
@ -18,7 +17,6 @@ using Microsoft.AspNet.Mvc.Rendering;
using Microsoft.AspNet.Mvc.Routing; using Microsoft.AspNet.Mvc.Routing;
using Microsoft.AspNet.Mvc.ViewComponents; using Microsoft.AspNet.Mvc.ViewComponents;
using Microsoft.Framework.Cache.Memory; using Microsoft.Framework.Cache.Memory;
using Microsoft.Framework.ConfigurationModel;
using Microsoft.Framework.DependencyInjection; using Microsoft.Framework.DependencyInjection;
using Microsoft.Framework.OptionsModel; using Microsoft.Framework.OptionsModel;
@ -26,161 +24,155 @@ namespace Microsoft.AspNet.Mvc
{ {
public class MvcServices public class MvcServices
{ {
public static IEnumerable<ServiceDescriptor> GetDefaultServices() public static IServiceCollection GetDefaultServices()
{ {
return GetDefaultServices(null); var services = new ServiceCollection();
}
public static IEnumerable<ServiceDescriptor> GetDefaultServices(IConfiguration configuration)
{
var describe = new ServiceDescriber(configuration);
// Options and core services. // Options and core services.
yield return describe.Transient<IConfigureOptions<MvcOptions>, MvcOptionsSetup>(); services.AddTransient<IConfigureOptions<MvcOptions>, MvcOptionsSetup>();
yield return describe.Transient<IConfigureOptions<RazorViewEngineOptions>, RazorViewEngineOptionsSetup>(); services.AddTransient<IConfigureOptions<RazorViewEngineOptions>, RazorViewEngineOptionsSetup>();
yield return describe.Transient<IAssemblyProvider, DefaultAssemblyProvider>();
yield return describe.Transient<MvcMarkerService, MvcMarkerService>(); // TryAdd() so functional tests can override this particular service. Test setup runs before this method.
yield return describe.Singleton(typeof(ITypeActivatorCache), typeof(DefaultTypeActivatorCache)); services.TryAdd(ServiceDescriptor.Transient<IAssemblyProvider, DefaultAssemblyProvider>());
yield return describe.Scoped(typeof(IScopedInstance<>), typeof(ScopedInstance<>));
services.AddTransient<MvcMarkerService, MvcMarkerService>();
services.AddSingleton<ITypeActivatorCache, DefaultTypeActivatorCache>();
services.AddScoped(typeof(IScopedInstance<>), typeof(ScopedInstance<>));
// Core action discovery, filters and action execution. // Core action discovery, filters and action execution.
// These are consumed only when creating action descriptors, then they can be de-allocated // These are consumed only when creating action descriptors, then they can be de-allocated
yield return describe.Transient<IControllerTypeProvider, DefaultControllerTypeProvider>(); services.AddTransient<IControllerTypeProvider, DefaultControllerTypeProvider>();
yield return describe.Transient<IControllerModelBuilder, DefaultControllerModelBuilder>(); services.AddTransient<IControllerModelBuilder, DefaultControllerModelBuilder>();
yield return describe.Transient<IActionModelBuilder, DefaultActionModelBuilder>(); services.AddTransient<IActionModelBuilder, DefaultActionModelBuilder>();
// This has a cache, so it needs to be a singleton // This has a cache, so it needs to be a singleton
yield return describe.Singleton<IControllerFactory, DefaultControllerFactory>(); services.AddSingleton<IControllerFactory, DefaultControllerFactory>();
yield return describe.Transient<IControllerActivator, DefaultControllerActivator>(); services.AddTransient<IControllerActivator, DefaultControllerActivator>();
// This accesses per-reqest services // This accesses per-reqest services
yield return describe.Transient<IActionInvokerFactory, ActionInvokerFactory>(); services.AddTransient<IActionInvokerFactory, ActionInvokerFactory>();
// This provider needs access to the per-request services, but might be used many times for a given // This provider needs access to the per-request services, but might be used many times for a given
// request. // request.
yield return describe.Transient<IActionConstraintProvider, DefaultActionConstraintProvider>(); services.AddTransient<IActionConstraintProvider, DefaultActionConstraintProvider>();
yield return describe.Singleton<IActionSelectorDecisionTreeProvider, ActionSelectorDecisionTreeProvider>(); services.AddSingleton<IActionSelectorDecisionTreeProvider, ActionSelectorDecisionTreeProvider>();
yield return describe.Singleton<IActionSelector, DefaultActionSelector>(); services.AddSingleton<IActionSelector, DefaultActionSelector>();
yield return describe.Transient<IControllerActionArgumentBinder, DefaultControllerActionArgumentBinder>(); services.AddTransient<IControllerActionArgumentBinder, DefaultControllerActionArgumentBinder>();
yield return describe.Transient<IObjectModelValidator, DefaultObjectValidator>(); services.AddTransient<IObjectModelValidator, DefaultObjectValidator>();
yield return describe.Transient<IActionDescriptorProvider, ControllerActionDescriptorProvider>(); services.AddTransient<IActionDescriptorProvider, ControllerActionDescriptorProvider>();
yield return describe.Transient<IActionInvokerProvider, services.AddTransient<IActionInvokerProvider, ControllerActionInvokerProvider>();
ControllerActionInvokerProvider>();
yield return describe.Singleton<IActionDescriptorsCollectionProvider, services.AddSingleton<IActionDescriptorsCollectionProvider, DefaultActionDescriptorsCollectionProvider>();
DefaultActionDescriptorsCollectionProvider>();
// The IGlobalFilterProvider is used to build the action descriptors (likely once) and so should // The IGlobalFilterProvider is used to build the action descriptors (likely once) and so should
// remain transient to avoid keeping it in memory. // remain transient to avoid keeping it in memory.
yield return describe.Transient<IGlobalFilterProvider, DefaultGlobalFilterProvider>(); services.AddTransient<IGlobalFilterProvider, DefaultGlobalFilterProvider>();
yield return describe.Transient<IFilterProvider, DefaultFilterProvider>(); services.AddTransient<IFilterProvider, DefaultFilterProvider>();
yield return describe.Transient<FormatFilter, FormatFilter>(); services.AddTransient<FormatFilter, FormatFilter>();
// Dataflow - ModelBinding, Validation and Formatting // Dataflow - ModelBinding, Validation and Formatting
// //
// The DefaultModelMetadataProvider does significant caching and should be a singleton. // The DefaultModelMetadataProvider does significant caching and should be a singleton.
yield return describe.Singleton<ModelBinding.IModelMetadataProvider, DefaultModelMetadataProvider>(); services.AddSingleton<ModelBinding.IModelMetadataProvider, DefaultModelMetadataProvider>();
yield return describe.Transient<ModelBinding.Metadata.ICompositeMetadataDetailsProvider>(services => services.AddTransient<ModelBinding.Metadata.ICompositeMetadataDetailsProvider>(serviceProvider =>
{ {
var options = services.GetRequiredService<IOptions<MvcOptions>>().Options; var options = serviceProvider.GetRequiredService<IOptions<MvcOptions>>().Options;
return new DefaultCompositeMetadataDetailsProvider(options.ModelMetadataDetailsProviders); return new DefaultCompositeMetadataDetailsProvider(options.ModelMetadataDetailsProviders);
}); });
yield return describe.Transient<IInputFormatterSelector, DefaultInputFormatterSelector>(); services.AddTransient<IInputFormatterSelector, DefaultInputFormatterSelector>();
yield return describe.Scoped<IInputFormattersProvider, DefaultInputFormattersProvider>(); services.AddScoped<IInputFormattersProvider, DefaultInputFormattersProvider>();
yield return describe.Transient<IModelBinderProvider, DefaultModelBindersProvider>(); services.AddTransient<IModelBinderProvider, DefaultModelBindersProvider>();
yield return describe.Transient<IValueProviderFactoryProvider, DefaultValueProviderFactoryProvider>(); services.AddTransient<IValueProviderFactoryProvider, DefaultValueProviderFactoryProvider>();
yield return describe.Transient<IOutputFormattersProvider, DefaultOutputFormattersProvider>(); services.AddTransient<IOutputFormattersProvider, DefaultOutputFormattersProvider>();
yield return describe.Instance(new JsonOutputFormatter()); services.AddInstance(new JsonOutputFormatter());
yield return describe.Transient<IModelValidatorProviderProvider, DefaultModelValidatorProviderProvider>(); services.AddTransient<IModelValidatorProviderProvider, DefaultModelValidatorProviderProvider>();
yield return describe.Transient<IValidationExcludeFiltersProvider, services.AddTransient<IValidationExcludeFiltersProvider, DefaultValidationExcludeFiltersProvider>();
DefaultValidationExcludeFiltersProvider>();
// Razor, Views and runtime compilation // Razor, Views and runtime compilation
// The provider is inexpensive to initialize and provides ViewEngines that may require request // The provider is inexpensive to initialize and provides ViewEngines that may require request
// specific services. // specific services.
yield return describe.Scoped<ICompositeViewEngine, CompositeViewEngine>(); services.AddScoped<ICompositeViewEngine, CompositeViewEngine>();
yield return describe.Transient<IViewEngineProvider, DefaultViewEngineProvider>(); services.AddTransient<IViewEngineProvider, DefaultViewEngineProvider>();
// Transient since the IViewLocationExpanders returned by the instance is cached by view engines. // Transient since the IViewLocationExpanders returned by the instance is cached by view engines.
yield return describe.Transient<IViewLocationExpanderProvider, DefaultViewLocationExpanderProvider>(); services.AddTransient<IViewLocationExpanderProvider, DefaultViewLocationExpanderProvider>();
// Caches view locations that are valid for the lifetime of the application. // Caches view locations that are valid for the lifetime of the application.
yield return describe.Singleton<IViewLocationCache, DefaultViewLocationCache>(); services.AddSingleton<IViewLocationCache, DefaultViewLocationCache>();
yield return describe.Singleton<ICodeTreeCache>(serviceProvider => services.AddSingleton<ICodeTreeCache>(serviceProvider =>
{ {
var cachedFileProvider = serviceProvider.GetRequiredService<IOptions<RazorViewEngineOptions>>(); var cachedFileProvider = serviceProvider.GetRequiredService<IOptions<RazorViewEngineOptions>>();
return new DefaultCodeTreeCache(cachedFileProvider.Options.FileProvider); return new DefaultCodeTreeCache(cachedFileProvider.Options.FileProvider);
}); });
// The host is designed to be discarded after consumption and is very inexpensive to initialize. // The host is designed to be discarded after consumption and is very inexpensive to initialize.
yield return describe.Transient<IMvcRazorHost, MvcRazorHost>(); services.AddTransient<IMvcRazorHost, MvcRazorHost>();
// Caches compilation artifacts across the lifetime of the application. // Caches compilation artifacts across the lifetime of the application.
yield return describe.Singleton<ICompilerCache, CompilerCache>(); services.AddSingleton<ICompilerCache, CompilerCache>();
// This caches compilation related details that are valid across the lifetime of the application // This caches compilation related details that are valid across the lifetime of the application
// and is required to be a singleton. // and is required to be a singleton.
yield return describe.Singleton<ICompilationService, RoslynCompilationService>(); services.AddSingleton<ICompilationService, RoslynCompilationService>();
// Both the compiler cache and roslyn compilation service hold on the compilation related // Both the compiler cache and roslyn compilation service hold on the compilation related
// caches. RazorCompilation service is just an adapter service, and it is transient to ensure // caches. RazorCompilation service is just an adapter service, and it is transient to ensure
// the IMvcRazorHost dependency does not maintain state. // the IMvcRazorHost dependency does not maintain state.
yield return describe.Transient<IRazorCompilationService, RazorCompilationService>(); services.AddTransient<IRazorCompilationService, RazorCompilationService>();
// The ViewStartProvider needs to be able to consume scoped instances of IRazorPageFactory // The ViewStartProvider needs to be able to consume scoped instances of IRazorPageFactory
yield return describe.Scoped<IViewStartProvider, ViewStartProvider>(); services.AddScoped<IViewStartProvider, ViewStartProvider>();
yield return describe.Transient<IRazorViewFactory, RazorViewFactory>(); services.AddTransient<IRazorViewFactory, RazorViewFactory>();
yield return describe.Singleton<IRazorPageActivator, RazorPageActivator>(); services.AddSingleton<IRazorPageActivator, RazorPageActivator>();
// Virtual path view factory needs to stay scoped so views can get get scoped services. // Virtual path view factory needs to stay scoped so views can get get scoped services.
yield return describe.Scoped<IRazorPageFactory, VirtualPathRazorPageFactory>(); services.AddScoped<IRazorPageFactory, VirtualPathRazorPageFactory>();
// View and rendering helpers // View and rendering helpers
yield return describe.Transient<IHtmlHelper, HtmlHelper>(); services.AddTransient<IHtmlHelper, HtmlHelper>();
yield return describe.Transient(typeof(IHtmlHelper<>), typeof(HtmlHelper<>)); services.AddTransient(typeof(IHtmlHelper<>), typeof(HtmlHelper<>));
yield return describe.Scoped<IUrlHelper, UrlHelper>(); services.AddScoped<IUrlHelper, UrlHelper>();
// Only want one ITagHelperActivator so it can cache Type activation information. Types won't conflict. // Only want one ITagHelperActivator so it can cache Type activation information. Types won't conflict.
yield return describe.Singleton<ITagHelperActivator, DefaultTagHelperActivator>(); services.AddSingleton<ITagHelperActivator, DefaultTagHelperActivator>();
// Consumed by the Cache tag helper to cache results across the lifetime of the application. // Consumed by the Cache tag helper to cache results across the lifetime of the application.
yield return describe.Singleton<IMemoryCache, MemoryCache>(); services.AddSingleton<IMemoryCache, MemoryCache>();
// DefaultHtmlGenerator is pretty much stateless but depends on Scoped services such as IUrlHelper and // DefaultHtmlGenerator is pretty much stateless but depends on Scoped services such as IUrlHelper and
// IActionBindingContextProvider. Therefore it too is scoped. // IActionBindingContextProvider. Therefore it too is scoped.
yield return describe.Transient<IHtmlGenerator, DefaultHtmlGenerator>(); services.AddTransient<IHtmlGenerator, DefaultHtmlGenerator>();
// These do caching so they should stay singleton // These do caching so they should stay singleton
yield return describe.Singleton<IViewComponentSelector, DefaultViewComponentSelector>(); services.AddSingleton<IViewComponentSelector, DefaultViewComponentSelector>();
yield return describe.Singleton<IViewComponentActivator, DefaultViewComponentActivator>(); services.AddSingleton<IViewComponentActivator, DefaultViewComponentActivator>();
yield return describe.Transient<IViewComponentInvokerFactory, DefaultViewComponentInvokerFactory>(); services.AddTransient<IViewComponentInvokerFactory, DefaultViewComponentInvokerFactory>();
yield return describe.Transient<IViewComponentInvokerProvider, DefaultViewComponentInvokerProvider>(); services.AddTransient<IViewComponentInvokerProvider, DefaultViewComponentInvokerProvider>();
yield return describe.Transient<IViewComponentHelper, DefaultViewComponentHelper>(); services.AddTransient<IViewComponentHelper, DefaultViewComponentHelper>();
// Security and Authorization // Security and Authorization
yield return describe.Singleton<IClaimUidExtractor, DefaultClaimUidExtractor>(); services.AddSingleton<IClaimUidExtractor, DefaultClaimUidExtractor>();
yield return describe.Singleton<AntiForgery, AntiForgery>(); services.AddSingleton<AntiForgery, AntiForgery>();
yield return describe.Singleton<IAntiForgeryAdditionalDataProvider, services.AddSingleton<IAntiForgeryAdditionalDataProvider, DefaultAntiForgeryAdditionalDataProvider>();
DefaultAntiForgeryAdditionalDataProvider>();
// Api Description // Api Description
yield return describe.Singleton<IApiDescriptionGroupCollectionProvider, services.AddSingleton<IApiDescriptionGroupCollectionProvider, ApiDescriptionGroupCollectionProvider>();
ApiDescriptionGroupCollectionProvider>(); services.AddTransient<IApiDescriptionProvider, DefaultApiDescriptionProvider>();
yield return describe.Transient<IApiDescriptionProvider, DefaultApiDescriptionProvider>();
// Temp Data // Temp Data
yield return describe.Singleton<ITempDataProvider, SessionStateTempDataProvider>(); services.AddSingleton<ITempDataProvider, SessionStateTempDataProvider>();
yield return describe.Scoped<ITempDataDictionary, TempDataDictionary>(); services.AddScoped<ITempDataDictionary, TempDataDictionary>();
return services;
} }
} }
} }

View File

@ -3,8 +3,10 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Runtime.Versioning;
using Microsoft.AspNet.Hosting; using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Mvc.Razor; using Microsoft.AspNet.Mvc.Razor;
using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis;
@ -16,14 +18,22 @@ using Microsoft.Framework.Runtime.Roslyn;
namespace Microsoft.AspNet.Mvc namespace Microsoft.AspNet.Mvc
{ {
/// <summary>
/// An <see cref="ICompileModule"/> implementation that pre-compiles Razor views in the application.
/// </summary>
public abstract class RazorPreCompileModule : ICompileModule public abstract class RazorPreCompileModule : ICompileModule
{ {
private readonly IServiceProvider _appServices; private readonly IServiceProvider _appServices;
private readonly IMemoryCache _memoryCache; private readonly IMemoryCache _memoryCache;
/// <summary>
/// Instantiates a new <see cref="RazorPreCompileModule"/> instance.
/// </summary>
/// <param name="services">The <see cref="IServiceProvider"/> for the application.</param>
public RazorPreCompileModule(IServiceProvider services) public RazorPreCompileModule(IServiceProvider services)
{ {
_appServices = services; _appServices = services;
// When ListenForMemoryPressure is true, the MemoryCache evicts items at every gen2 collection. // When ListenForMemoryPressure is true, the MemoryCache evicts items at every gen2 collection.
// In DTH, gen2 happens frequently enough to make it undesirable for caching precompilation results. We'll // In DTH, gen2 happens frequently enough to make it undesirable for caching precompilation results. We'll
// disable listening for memory pressure for the MemoryCache instance used by precompilation. // disable listening for memory pressure for the MemoryCache instance used by precompilation.
@ -35,61 +45,95 @@ namespace Microsoft.AspNet.Mvc
/// </summary> /// </summary>
public bool GenerateSymbols { get; protected set; } public bool GenerateSymbols { get; protected set; }
protected virtual string FileExtension { get; } = ".cshtml"; /// <inheritdoc />
/// <remarks>Pre-compiles all Razor views in the application.</remarks>
public virtual void BeforeCompile(IBeforeCompileContext context) public virtual void BeforeCompile(IBeforeCompileContext context)
{ {
var applicationEnvironment = _appServices.GetRequiredService<IApplicationEnvironment>(); var applicationEnvironment = _appServices.GetRequiredService<IApplicationEnvironment>();
var compilerOptionsProvider = _appServices.GetRequiredService<ICompilerOptionsProvider>(); var compilerOptionsProvider = _appServices.GetRequiredService<ICompilerOptionsProvider>();
var compilationSettings = compilerOptionsProvider.GetCompilationSettings(applicationEnvironment); var compilationSettings = compilerOptionsProvider.GetCompilationSettings(applicationEnvironment);
var setup = new RazorViewEngineOptionsSetup(applicationEnvironment); // Create something similar to a HttpContext.RequestServices provider. Necessary because this class is
var sc = new ServiceCollection(); // instantiated in a lower-level "HttpContext.ApplicationServices" context. One important added service
sc.ConfigureOptions(setup); // is an IOptions<RazorViewEngineOptions> but use AddMvc() for simplicity and flexibility.
sc.AddMvc(); var serviceCollection = HostingServices.Create(_appServices);
serviceCollection.AddMvc();
var serviceProvider = BuildFallbackServiceProvider(sc, _appServices); // We also need an IApplicationEnvironment with a base path that matches the containing web site, to
// find the razor files. We don't have a guarantee that the base path of the current application is
// this site. For example similar functional test changes to the IApplicationEnvironment happen later,
// after everything is compiled. IOptions<RazorViewEngineOptions> setup initializes the
// RazorViewEngineOptions based on this IApplicationEnvironment implementation.
var directory = context.ProjectContext.ProjectDirectory;
var precompilationApplicationEnvironment = new PrecompilationApplicationEnvironment(
applicationEnvironment,
context.ProjectContext.ProjectDirectory);
serviceCollection.AddInstance<IApplicationEnvironment>(precompilationApplicationEnvironment);
var serviceProvider = serviceCollection.BuildServiceProvider();
var viewCompiler = new RazorPreCompiler(serviceProvider, context, _memoryCache, compilationSettings) var viewCompiler = new RazorPreCompiler(serviceProvider, context, _memoryCache, compilationSettings)
{ {
GenerateSymbols = GenerateSymbols GenerateSymbols = GenerateSymbols
}; };
viewCompiler.CompileViews(); viewCompiler.CompileViews();
} }
/// <inheritdoc />
public void AfterCompile(IAfterCompileContext context) public void AfterCompile(IAfterCompileContext context)
{ {
} }
// TODO: KILL THIS private class PrecompilationApplicationEnvironment : IApplicationEnvironment
private static IServiceProvider BuildFallbackServiceProvider(
IServiceCollection services,
IServiceProvider fallback)
{ {
var sc = HostingServices.Create(fallback); private readonly IApplicationEnvironment _originalApplicationEnvironment;
sc.Add(services); private readonly string _applicationBasePath;
// Build the manifest public PrecompilationApplicationEnvironment(IApplicationEnvironment original, string appBasePath)
var manifestTypes = services.Where(t => t.ServiceType.GetTypeInfo().GenericTypeParameters.Length == 0
&& t.ServiceType != typeof(IServiceManifest)
&& t.ServiceType != typeof(IServiceProvider))
.Select(t => t.ServiceType).Distinct();
sc.AddInstance<IServiceManifest>(
new ServiceManifest(manifestTypes, fallback.GetRequiredService<IServiceManifest>()));
return sc.BuildServiceProvider();
}
private class ServiceManifest : IServiceManifest
{
public ServiceManifest(IEnumerable<Type> services, IServiceManifest fallback = null)
{ {
Services = services; _originalApplicationEnvironment = original;
if (fallback != null) _applicationBasePath = appBasePath;
}
public string ApplicationName
{
get
{ {
Services = Services.Concat(fallback.Services).Distinct(); return _originalApplicationEnvironment.ApplicationName;
} }
} }
public IEnumerable<Type> Services { get; private set; } public string Version
{
get
{
return _originalApplicationEnvironment.Version;
}
}
public string ApplicationBasePath
{
get
{
return _applicationBasePath;
}
}
public string Configuration
{
get
{
return _originalApplicationEnvironment.Configuration;
}
}
public FrameworkName RuntimeFramework
{
get
{
return _originalApplicationEnvironment.RuntimeFramework;
}
}
} }
} }
} }

View File

@ -2,30 +2,27 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System; using System;
using System.IO;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml.Serialization;
using ActionResultsWebSite; using ActionResultsWebSite;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ActionResultTests public class ActionResultTests
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices("ActionResultsWebSite"); private const string SiteName = nameof(ActionResultsWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task BadRequestResult_CanBeReturned() public async Task BadRequestResult_CanBeReturned()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "{\"SampleInt\":10}"; var input = "{\"SampleInt\":10}";
@ -47,7 +44,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CreatedResult_SetsRelativePathInLocationHeader() public async Task CreatedResult_SetsRelativePathInLocationHeader()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -67,7 +64,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CreatedResult_SetsAbsolutePathInLocationHeader() public async Task CreatedResult_SetsAbsolutePathInLocationHeader()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -87,7 +84,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CreatedResult_SetsQualifiedPathInLocationHeader() public async Task CreatedResult_SetsQualifiedPathInLocationHeader()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -109,7 +106,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CreatedResult_SetsUriInLocationHeader() public async Task CreatedResult_SetsUriInLocationHeader()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -129,7 +126,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CreatedAtActionResult_GeneratesUri_WithActionAndController() public async Task CreatedAtActionResult_GeneratesUri_WithActionAndController()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -149,7 +146,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CreatedAtRouteResult_GeneratesUri_WithRouteValues() public async Task CreatedAtRouteResult_GeneratesUri_WithRouteValues()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -169,7 +166,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CreatedAtRouteResult_GeneratesUri_WithRouteName() public async Task CreatedAtRouteResult_GeneratesUri_WithRouteName()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -189,7 +186,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task SerializableError_CanSerializeNormalObjects() public async Task SerializableError_CanSerializeNormalObjects()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + var input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
@ -212,7 +209,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ContentResult_WritesContent_SetsDefaultContentTypeAndEncoding() public async Task ContentResult_WritesContent_SetsDefaultContentTypeAndEncoding()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
HttpMethod.Post, HttpMethod.Post,
@ -232,7 +229,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ContentResult_WritesContent_SetsContentTypeWithDefaultEncoding() public async Task ContentResult_WritesContent_SetsContentTypeWithDefaultEncoding()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
HttpMethod.Post, HttpMethod.Post,
@ -252,7 +249,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ContentResult_WritesContent_SetsContentTypeAndEncoding() public async Task ContentResult_WritesContent_SetsContentTypeAndEncoding()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
HttpMethod.Post, HttpMethod.Post,
@ -272,7 +269,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ObjectResult_WithStatusCodeAndNoContent_SetsSameStatusCode() public async Task ObjectResult_WithStatusCodeAndNoContent_SetsSameStatusCode()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
HttpMethod.Get, HttpMethod.Get,
@ -289,7 +286,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task HttpNotFoundObjectResult_NoResponseContent() public async Task HttpNotFoundObjectResult_NoResponseContent()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -308,7 +305,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task HttpNotFoundObjectResult_WithResponseContent() public async Task HttpNotFoundObjectResult_WithResponseContent()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "{\"SampleInt\":10}"; var input = "{\"SampleInt\":10}";

View File

@ -5,21 +5,20 @@ using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using ActivatorWebSite; using ActivatorWebSite;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ActivatorTests public class ActivatorTests
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices("ActivatorWebSite"); private const string SiteName = nameof(ActivatorWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task ControllerThatCannotBeActivated_ThrowsWhenAttemptedToBeInvoked() public async Task ControllerThatCannotBeActivated_ThrowsWhenAttemptedToBeInvoked()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedMessage = "The property 'Service' on controller 'ActivatorWebSite.CannotBeActivatedController' " + var expectedMessage = "The property 'Service' on controller 'ActivatorWebSite.CannotBeActivatedController' " +
@ -37,7 +36,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task PropertiesForPocoControllersAreInitialized() public async Task PropertiesForPocoControllersAreInitialized()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = "4|some-text"; var expected = "4|some-text";
@ -55,7 +54,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task PropertiesForTypesDerivingFromControllerAreInitialized() public async Task PropertiesForTypesDerivingFromControllerAreInitialized()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = "Hello world"; var expected = "Hello world";
@ -70,7 +69,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ViewActivator_ActivatesDefaultInjectedProperties() public async Task ViewActivator_ActivatesDefaultInjectedProperties()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = @"<label for=""Hello"">Hello</label> world! /View/ConsumeServicesFromBaseType"; var expected = @"<label for=""Hello"">Hello</label> world! /View/ConsumeServicesFromBaseType";
@ -85,7 +84,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ViewActivator_ActivatesAndContextualizesInjectedServices() public async Task ViewActivator_ActivatesAndContextualizesInjectedServices()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = "4 test-value"; var expected = "4 test-value";
@ -100,7 +99,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ViewActivator_ActivatesServicesFromBaseType() public async Task ViewActivator_ActivatesServicesFromBaseType()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = @"/content/scripts/test.js"; var expected = @"/content/scripts/test.js";
@ -115,7 +114,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ViewComponentActivator_ActivatesProperties() public async Task ViewComponentActivator_ActivatesProperties()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = @"Random Number:4"; var expected = @"Random Number:4";
@ -130,7 +129,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ViewComponentActivator_ActivatesPropertiesAndContextualizesThem() public async Task ViewComponentActivator_ActivatesPropertiesAndContextualizesThem()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = "test-value"; var expected = "test-value";
@ -145,7 +144,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ViewComponentActivator_ActivatesPropertiesAndContextualizesThem_WhenMultiplePropertiesArePresent() public async Task ViewComponentActivator_ActivatesPropertiesAndContextualizesThem_WhenMultiplePropertiesArePresent()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = "Random Number:4 test-value"; var expected = "Random Number:4 test-value";
@ -160,7 +159,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ViewComponentThatCannotBeActivated_ThrowsWhenAttemptedToBeInvoked() public async Task ViewComponentThatCannotBeActivated_ThrowsWhenAttemptedToBeInvoked()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedMessage = "No service for type 'ActivatorWebSite.CannotBeActivatedComponent+FakeType' " + var expectedMessage = "No service for type 'ActivatorWebSite.CannotBeActivatedComponent+FakeType' " +
"has been registered."; "has been registered.";
@ -177,7 +176,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TagHelperActivation_ActivateHtmlHelper_RendersProperly() public async Task TagHelperActivation_ActivateHtmlHelper_RendersProperly()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = "<body><h2>Activation Test</h2>" + var expected = "<body><h2>Activation Test</h2>" +
Environment.NewLine + Environment.NewLine +

View File

@ -8,21 +8,20 @@ using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class AntiForgeryTests public class AntiForgeryTests
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices("AntiForgeryWebSite"); private const string SiteName = nameof(AntiForgeryWebSite);
private readonly Action<IApplicationBuilder> _app = new AntiForgeryWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new AntiForgeryWebSite.Startup().Configure;
[Fact] [Fact]
public async Task MultipleAFTokensWithinTheSamePage_GeneratesASingleCookieToken() public async Task MultipleAFTokensWithinTheSamePage_GeneratesASingleCookieToken()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -45,7 +44,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task MultipleFormPostWithingASingleView_AreAllowed() public async Task MultipleFormPostWithingASingleView_AreAllowed()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// do a get response. // do a get response.
@ -80,7 +79,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task InvalidCookieToken_Throws() public async Task InvalidCookieToken_Throws()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var getResponse = await client.GetAsync("http://localhost/Account/Login"); var getResponse = await client.GetAsync("http://localhost/Account/Login");
@ -112,7 +111,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task InvalidFormToken_Throws() public async Task InvalidFormToken_Throws()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var getResponse = await client.GetAsync("http://localhost/Account/Login"); var getResponse = await client.GetAsync("http://localhost/Account/Login");
@ -142,7 +141,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task IncompatibleCookieToken_Throws() public async Task IncompatibleCookieToken_Throws()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// do a get response. // do a get response.
@ -180,7 +179,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task MissingCookieToken_Throws() public async Task MissingCookieToken_Throws()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// do a get response. // do a get response.
@ -210,7 +209,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task MissingAFToken_Throws() public async Task MissingAFToken_Throws()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var getResponse = await client.GetAsync("http://localhost/Account/Login"); var getResponse = await client.GetAsync("http://localhost/Account/Login");
var resposneBody = await getResponse.Content.ReadAsStringAsync(); var resposneBody = await getResponse.Content.ReadAsStringAsync();
@ -239,7 +238,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task SetCookieAndHeaderBeforeFlushAsync_GeneratesCookieTokenAndHeader() public async Task SetCookieAndHeaderBeforeFlushAsync_GeneratesCookieTokenAndHeader()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -259,7 +258,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task SetCookieAndHeaderBeforeFlushAsync_PostToForm() public async Task SetCookieAndHeaderBeforeFlushAsync_PostToForm()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// do a get response. // do a get response.

View File

@ -8,7 +8,6 @@ using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Mvc.ModelBinding; using Microsoft.AspNet.Mvc.ModelBinding;
using Microsoft.AspNet.Mvc.Xml; using Microsoft.AspNet.Mvc.Xml;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -16,14 +15,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ApiExplorerTest public class ApiExplorerTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices("ApiExplorerWebSite"); private const string SiteName = nameof(ApiExplorerWebSite);
private readonly Action<IApplicationBuilder> _app = new ApiExplorerWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new ApiExplorerWebSite.Startup().Configure;
[Fact] [Fact]
public async Task ApiExplorer_IsVisible_EnabledWithConvention() public async Task ApiExplorer_IsVisible_EnabledWithConvention()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -40,7 +39,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_IsVisible_DisabledWithConvention() public async Task ApiExplorer_IsVisible_DisabledWithConvention()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -57,7 +56,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_IsVisible_DisabledWithAttribute() public async Task ApiExplorer_IsVisible_DisabledWithAttribute()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -74,7 +73,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_IsVisible_EnabledWithAttribute() public async Task ApiExplorer_IsVisible_EnabledWithAttribute()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -91,7 +90,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_GroupName_SetByConvention() public async Task ApiExplorer_GroupName_SetByConvention()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -109,7 +108,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_GroupName_SetByAttributeOnController() public async Task ApiExplorer_GroupName_SetByAttributeOnController()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -127,7 +126,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_GroupName_SetByAttributeOnAction() public async Task ApiExplorer_GroupName_SetByAttributeOnAction()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -145,7 +144,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_RouteTemplate_DisplaysFixedRoute() public async Task ApiExplorer_RouteTemplate_DisplaysFixedRoute()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -163,7 +162,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_RouteTemplate_DisplaysRouteWithParameters() public async Task ApiExplorer_RouteTemplate_DisplaysRouteWithParameters()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -187,7 +186,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_RouteTemplate_StripsInlineConstraintsFromThePath() public async Task ApiExplorer_RouteTemplate_StripsInlineConstraintsFromThePath()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/ApiExplorerRouteAndPathParametersInformation/Constraint/5"; var url = "http://localhost/ApiExplorerRouteAndPathParametersInformation/Constraint/5";
@ -212,7 +211,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_RouteTemplate_StripsCatchAllsFromThePath() public async Task ApiExplorer_RouteTemplate_StripsCatchAllsFromThePath()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/ApiExplorerRouteAndPathParametersInformation/CatchAll/5"; var url = "http://localhost/ApiExplorerRouteAndPathParametersInformation/CatchAll/5";
@ -236,7 +235,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_RouteTemplate_StripsCatchAllsWithConstraintsFromThePath() public async Task ApiExplorer_RouteTemplate_StripsCatchAllsWithConstraintsFromThePath()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/ApiExplorerRouteAndPathParametersInformation/CatchAllAndConstraint/5"; var url = "http://localhost/ApiExplorerRouteAndPathParametersInformation/CatchAllAndConstraint/5";
@ -263,7 +262,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_RouteTemplateStripsMultipleConstraints_OnTheSamePathSegment() public async Task ApiExplorer_RouteTemplateStripsMultipleConstraints_OnTheSamePathSegment()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/ApiExplorerRouteAndPathParametersInformation/" var url = "http://localhost/ApiExplorerRouteAndPathParametersInformation/"
@ -302,7 +301,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_RouteTemplateStripsMultipleConstraints_InMultipleSegments() public async Task ApiExplorer_RouteTemplateStripsMultipleConstraints_InMultipleSegments()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/ApiExplorerRouteAndPathParametersInformation/" var url = "http://localhost/ApiExplorerRouteAndPathParametersInformation/"
+ "MultipleParametersInMultipleSegments/12/01/1987"; + "MultipleParametersInMultipleSegments/12/01/1987";
@ -340,7 +339,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_DescribeParameters_FromAllSources() public async Task ApiExplorer_DescribeParameters_FromAllSources()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/ApiExplorerRouteAndPathParametersInformation/MultipleTypesOfParameters/1/2/3"; var url = "http://localhost/ApiExplorerRouteAndPathParametersInformation/MultipleTypesOfParameters/1/2/3";
@ -371,7 +370,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_RouteTemplate_MakesParametersOptional() public async Task ApiExplorer_RouteTemplate_MakesParametersOptional()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -393,7 +392,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_HttpMethod_All() public async Task ApiExplorer_HttpMethod_All()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -411,7 +410,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_HttpMethod_Single() public async Task ApiExplorer_HttpMethod_Single()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -433,7 +432,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_HttpMethod_Single(string httpMethod) public async Task ApiExplorer_HttpMethod_Single(string httpMethod)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -459,7 +458,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_ResponseType_VoidWithoutAttribute(string action) public async Task ApiExplorer_ResponseType_VoidWithoutAttribute(string action)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -484,7 +483,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_ResponseType_UnknownWithoutAttribute(string action) public async Task ApiExplorer_ResponseType_UnknownWithoutAttribute(string action)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -507,7 +506,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_ResponseType_KnownWithoutAttribute(string action, string type) public async Task ApiExplorer_ResponseType_KnownWithoutAttribute(string action, string type)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -531,7 +530,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_ResponseType_KnownWithAttribute(string action, string type) public async Task ApiExplorer_ResponseType_KnownWithAttribute(string action, string type)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -552,7 +551,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_ResponseType_OverrideOnAction(string action, string type) public async Task ApiExplorer_ResponseType_OverrideOnAction(string action, string type)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -571,7 +570,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_ResponseContentType_Unset() public async Task ApiExplorer_ResponseContentType_Unset()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -601,7 +600,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_ResponseContentType_Specific() public async Task ApiExplorer_ResponseContentType_Specific()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -627,7 +626,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_ResponseContentType_NoMatch() public async Task ApiExplorer_ResponseContentType_NoMatch()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -652,7 +651,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
string formatterType) string formatterType)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -674,7 +673,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_Parameters_SimpleTypes_Default() public async Task ApiExplorer_Parameters_SimpleTypes_Default()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -702,7 +701,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_Parameters_SimpleTypes_BinderMetadataOnParameters() public async Task ApiExplorer_Parameters_SimpleTypes_BinderMetadataOnParameters()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -730,7 +729,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_ParametersSimpleModel() public async Task ApiExplorer_ParametersSimpleModel()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -754,7 +753,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_Parameters_SimpleTypes_SimpleModel_FromBody() public async Task ApiExplorer_Parameters_SimpleTypes_SimpleModel_FromBody()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -782,7 +781,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiExplorer_Parameters_SimpleTypes_ComplexModel() public async Task ApiExplorer_Parameters_SimpleTypes_ComplexModel()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -6,21 +6,20 @@ using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ApplicationModelTest public class ApplicationModelTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(ApplicationModelWebSite)); private const string SiteName = nameof(ApplicationModelWebSite);
private readonly Action<IApplicationBuilder> _app = new ApplicationModelWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new ApplicationModelWebSite.Startup().Configure;
[Fact] [Fact]
public async Task ControllerModel_CustomizedWithAttribute() public async Task ControllerModel_CustomizedWithAttribute()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -37,7 +36,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ActionModel_CustomizedWithAttribute() public async Task ActionModel_CustomizedWithAttribute()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -54,7 +53,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ParameterModel_CustomizedWithAttribute() public async Task ParameterModel_CustomizedWithAttribute()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -71,7 +70,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApplicationModel_AddPropertyToActionDescriptor_FromApplicationModel() public async Task ApplicationModel_AddPropertyToActionDescriptor_FromApplicationModel()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -88,7 +87,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApplicationModel_AddPropertyToActionDescriptor_ControllerModelOverwritesCommonApplicationProperty() public async Task ApplicationModel_AddPropertyToActionDescriptor_ControllerModelOverwritesCommonApplicationProperty()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -105,7 +104,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApplicationModel_ProvidesMetadataToActionDescriptor_ActionModelOverwritesControllerModelProperty() public async Task ApplicationModel_ProvidesMetadataToActionDescriptor_ActionModelOverwritesControllerModelProperty()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -122,7 +121,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApplicationModelExtensions_AddsConventionToAllControllers() public async Task ApplicationModelExtensions_AddsConventionToAllControllers()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -141,7 +140,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApplicationModelExtensions_AddsConventionToAllActions() public async Task ApplicationModelExtensions_AddsConventionToAllActions()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Home/GetHelloWorld"); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Home/GetHelloWorld");

View File

@ -3,7 +3,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Net.Http.Headers; using System.Net.Http.Headers;
@ -11,7 +10,6 @@ using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
using BasicWebSite; using BasicWebSite;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -19,7 +17,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class BasicTests public class BasicTests
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(BasicWebSite)); private const string SiteName = nameof(BasicWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
// Some tests require comparing the actual response body against an expected response baseline // Some tests require comparing the actual response body against an expected response baseline
@ -35,7 +33,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanRender_ViewsWithLayout(string url) public async Task CanRender_ViewsWithLayout(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedMediaType = MediaTypeHeaderValue.Parse("text/html; charset=utf-8"); var expectedMediaType = MediaTypeHeaderValue.Parse("text/html; charset=utf-8");
@ -59,7 +57,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanRender_SimpleViews() public async Task CanRender_SimpleViews()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContent = await _resourcesAssembly.ReadResourceAsStringAsync("compiler/resources/BasicWebSite.Home.PlainView.html"); var expectedContent = await _resourcesAssembly.ReadResourceAsStringAsync("compiler/resources/BasicWebSite.Home.PlainView.html");
var expectedMediaType = MediaTypeHeaderValue.Parse("text/html; charset=utf-8"); var expectedMediaType = MediaTypeHeaderValue.Parse("text/html; charset=utf-8");
@ -79,7 +77,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanReturn_ResultsWithoutContent() public async Task CanReturn_ResultsWithoutContent()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -97,7 +95,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ReturningTaskFromAction_ProducesNoContentResult() public async Task ReturningTaskFromAction_ProducesNoContentResult()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -112,7 +110,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ActionDescriptors_CreatedOncePerRequest() public async Task ActionDescriptors_CreatedOncePerRequest()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContent = "1"; var expectedContent = "1";
@ -132,7 +130,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ActionWithRequireHttps_RedirectsToSecureUrl_ForNonHttpsGetRequests() public async Task ActionWithRequireHttps_RedirectsToSecureUrl_ForNonHttpsGetRequests()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -152,7 +150,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ActionWithRequireHttps_ReturnsBadRequestResponse_ForNonHttpsNonGetRequests() public async Task ActionWithRequireHttps_ReturnsBadRequestResponse_ForNonHttpsNonGetRequests()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -174,7 +172,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ActionWithRequireHttps_AllowsHttpsRequests(string method) public async Task ActionWithRequireHttps_AllowsHttpsRequests(string method)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = new HttpClient(server.CreateHandler(), false); var client = new HttpClient(server.CreateHandler(), false);
// Act // Act
@ -190,7 +188,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonViewComponent_RendersJson() public async Task JsonViewComponent_RendersJson()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = new HttpClient(server.CreateHandler(), false); var client = new HttpClient(server.CreateHandler(), false);
var expectedBody = JsonConvert.SerializeObject(new BasicWebSite.Models.Person() var expectedBody = JsonConvert.SerializeObject(new BasicWebSite.Models.Person()
{ {
@ -249,7 +247,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task HtmlHelperLinkGeneration(string viewName, string expectedLink) public async Task HtmlHelperLinkGeneration(string viewName, string expectedLink)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = new HttpClient(server.CreateHandler(), false); var client = new HttpClient(server.CreateHandler(), false);
// Act // Act
@ -265,7 +263,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ConfigureMvcOptionsAddsOptionsProperly() public async Task ConfigureMvcOptionsAddsOptionsProperly()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = new HttpClient(server.CreateHandler(), false); var client = new HttpClient(server.CreateHandler(), false);
// Act // Act
@ -281,7 +279,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TypesWithoutControllerSuffix_DerivingFromTypesWithControllerSuffix_CanBeAccessed() public async Task TypesWithoutControllerSuffix_DerivingFromTypesWithControllerSuffix_CanBeAccessed()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = new HttpClient(server.CreateHandler(), false); var client = new HttpClient(server.CreateHandler(), false);
// Act // Act
@ -295,7 +293,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TypesMarkedAsNonAction_AreInaccessible() public async Task TypesMarkedAsNonAction_AreInaccessible()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = new HttpClient(server.CreateHandler(), false); var client = new HttpClient(server.CreateHandler(), false);
// Act // Act

View File

@ -6,7 +6,6 @@ using System;
using System.Net; using System.Net;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
@ -14,7 +13,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public class BestEffortLinkGenerationTest public class BestEffortLinkGenerationTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(BestEffortLinkGenerationWebSite)); private const string SiteName = nameof(BestEffortLinkGenerationWebSite);
private readonly Action<IApplicationBuilder> _app = new BestEffortLinkGenerationWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new BestEffortLinkGenerationWebSite.Startup().Configure;
private const string ExpectedOutput = @"<html> private const string ExpectedOutput = @"<html>
@ -27,7 +26,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GenerateLink_NonExistentAction() public async Task GenerateLink_NonExistentAction()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/Home/Index"; var url = "http://localhost/Home/Index";
@ -39,6 +38,5 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Assert.Equal(ExpectedOutput, content); Assert.Equal(ExpectedOutput, content);
} }
} }
} }

View File

@ -2,10 +2,8 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System; using System;
using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using RazorWebSite; using RazorWebSite;
using Xunit; using Xunit;
@ -15,7 +13,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// precompiled and dynamically compiled views. // precompiled and dynamically compiled views.
public class CompilationOptionsTests public class CompilationOptionsTests
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(RazorWebSite)); private const string SiteName = nameof(RazorWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
@ -33,7 +31,7 @@ This method is only defined in DNX451";
This method is only defined in DNXCORE50"; This method is only defined in DNXCORE50";
#endif #endif
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -4,21 +4,20 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class CompositeViewEngineTests public class CompositeViewEngineTests
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(CompositeViewEngineWebSite)); private const string SiteName = nameof(CompositeViewEngineWebSite);
private readonly Action<IApplicationBuilder> _app = new CompositeViewEngineWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new CompositeViewEngineWebSite.Startup().Configure;
[Fact] [Fact]
public async Task CompositeViewEngine_FindsPartialViewsAcrossAllEngines() public async Task CompositeViewEngine_FindsPartialViewsAcrossAllEngines()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -32,7 +31,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CompositeViewEngine_FindsViewsAcrossAllEngines() public async Task CompositeViewEngine_FindsViewsAcrossAllEngines()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -2,16 +2,12 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System; using System;
using System.IO;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Net.Http.Headers;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml.Serialization;
using ActionConstraintsWebSite; using ActionConstraintsWebSite;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -19,14 +15,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ConsumesAttributeTests public class ConsumesAttributeTests
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices("ActionConstraintsWebSite"); private const string SiteName = nameof(ActionConstraintsWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task NoRequestContentType_SelectsActionWithoutConstraint() public async Task NoRequestContentType_SelectsActionWithoutConstraint()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
HttpMethod.Post, HttpMethod.Post,
@ -45,7 +41,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task NoRequestContentType_Throws_IfMultipleActionsWithConstraints() public async Task NoRequestContentType_Throws_IfMultipleActionsWithConstraints()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
HttpMethod.Post, HttpMethod.Post,
@ -69,7 +65,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task NoRequestContentType_Selects_IfASingleActionWithConstraintIsPresent() public async Task NoRequestContentType_Selects_IfASingleActionWithConstraintIsPresent()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -91,7 +87,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task Selects_Action_BasedOnRequestContentType(string requestContentType) public async Task Selects_Action_BasedOnRequestContentType(string requestContentType)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "{SampleString:\""+requestContentType+"\"}"; var input = "{SampleString:\""+requestContentType+"\"}";
@ -114,7 +110,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ActionLevelAttribute_OveridesClassLevel(string requestContentType) public async Task ActionLevelAttribute_OveridesClassLevel(string requestContentType)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "{SampleString:\"" + requestContentType + "\"}"; var input = "{SampleString:\"" + requestContentType + "\"}";
@ -137,7 +133,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task DerivedClassLevelAttribute_OveridesBaseClassLevel() public async Task DerivedClassLevelAttribute_OveridesBaseClassLevel()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "<Product xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" " + var input = "<Product xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" " +

View File

@ -2,18 +2,13 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System; using System;
using System.IO;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml;
using System.Xml.Serialization;
using ContentNegotiationWebSite; using ContentNegotiationWebSite;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Microsoft.AspNet.Mvc.Xml; using Microsoft.AspNet.Mvc.Xml;
using Xunit; using Xunit;
@ -21,14 +16,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ContentNegotiationTest public class ContentNegotiationTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(ContentNegotiationWebSite)); private const string SiteName = nameof(ContentNegotiationWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task ProducesAttribute_SingleContentType_PicksTheFirstSupportedFormatter() public async Task ProducesAttribute_SingleContentType_PicksTheFirstSupportedFormatter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Selects custom even though it is last in the list. // Selects custom even though it is last in the list.
@ -48,7 +43,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ProducesAttribute_MultipleContentTypes_RunsConnegToSelectFormatter() public async Task ProducesAttribute_MultipleContentTypes_RunsConnegToSelectFormatter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8"); var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8");
var expectedBody = "{\r\n \"Name\": \"My name\",\r\n \"Address\": \"My address\"\r\n}"; var expectedBody = "{\r\n \"Name\": \"My name\",\r\n \"Address\": \"My address\"\r\n}";
@ -66,7 +61,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task NoProducesAttribute_ActionReturningString_RunsUsingTextFormatter() public async Task NoProducesAttribute_ActionReturningString_RunsUsingTextFormatter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse("text/plain;charset=utf-8"); var expectedContentType = MediaTypeHeaderValue.Parse("text/plain;charset=utf-8");
var expectedBody = "NormalController"; var expectedBody = "NormalController";
@ -84,7 +79,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task NoProducesAttribute_ActionReturningAnyObject_RunsUsingDefaultFormatters() public async Task NoProducesAttribute_ActionReturningAnyObject_RunsUsingDefaultFormatters()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8"); var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8");
@ -99,7 +94,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ProducesAttributeWithTypeOnly_RunsRegularContentNegotiation() public async Task ProducesAttributeWithTypeOnly_RunsRegularContentNegotiation()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8"); var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8");
@ -119,7 +114,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ProducesAttribute_WithTypeAndContentType_UsesContentType() public async Task ProducesAttribute_WithTypeAndContentType_UsesContentType()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml")); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
var expectedContentType = MediaTypeHeaderValue.Parse("application/xml;charset=utf-8"); var expectedContentType = MediaTypeHeaderValue.Parse("application/xml;charset=utf-8");
@ -141,7 +136,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task NoMatchingFormatter_ForTheGivenContentType_Returns406() public async Task NoMatchingFormatter_ForTheGivenContentType_Returns406()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -160,7 +155,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
string expectedResponseBody) string expectedResponseBody)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
expectedResponseBody = expectedResponseBody.Replace("#", Environment.NewLine); expectedResponseBody = expectedResponseBody.Replace("#", Environment.NewLine);
@ -181,7 +176,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[Fact] [Fact]
public async Task ProducesAttribute_OnAction_OverridesTheValueOnClass() public async Task ProducesAttribute_OnAction_OverridesTheValueOnClass()
{ {
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Value on the class is application/json. // Value on the class is application/json.
@ -201,7 +196,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[Fact] [Fact]
public async Task ProducesAttribute_OnDerivedClass_OverridesTheValueOnBaseClass() public async Task ProducesAttribute_OnDerivedClass_OverridesTheValueOnBaseClass()
{ {
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse( var expectedContentType = MediaTypeHeaderValue.Parse(
"application/custom_ProducesContentOnClassController;charset=utf-8"); "application/custom_ProducesContentOnClassController;charset=utf-8");
@ -220,7 +215,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[Fact] [Fact]
public async Task ProducesAttribute_OnDerivedAction_OverridesTheValueOnBaseClass() public async Task ProducesAttribute_OnDerivedAction_OverridesTheValueOnBaseClass()
{ {
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse( var expectedContentType = MediaTypeHeaderValue.Parse(
"application/custom_NoProducesContentOnClassController_Action;charset=utf-8"); "application/custom_NoProducesContentOnClassController_Action;charset=utf-8");
@ -238,7 +233,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[Fact] [Fact]
public async Task ProducesAttribute_OnDerivedAction_OverridesTheValueOnBaseAction() public async Task ProducesAttribute_OnDerivedAction_OverridesTheValueOnBaseAction()
{ {
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse( var expectedContentType = MediaTypeHeaderValue.Parse(
"application/custom_NoProducesContentOnClassController_Action;charset=utf-8"); "application/custom_NoProducesContentOnClassController_Action;charset=utf-8");
@ -257,7 +252,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ProducesAttribute_OnDerivedClassAndAction_OverridesTheValueOnBaseClass() public async Task ProducesAttribute_OnDerivedClassAndAction_OverridesTheValueOnBaseClass()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse( var expectedContentType = MediaTypeHeaderValue.Parse(
"application/custom_ProducesContentOnClassController_Action;charset=utf-8"); "application/custom_ProducesContentOnClassController_Action;charset=utf-8");
@ -276,7 +271,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ProducesAttribute_IsNotHonored_ForJsonResult() public async Task ProducesAttribute_IsNotHonored_ForJsonResult()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8"); var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8");
var expectedBody = "{\"MethodName\":\"Produces_WithNonObjectResult\"}"; var expectedBody = "{\"MethodName\":\"Produces_WithNonObjectResult\"}";
@ -294,7 +289,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonResult_UsesDefaultContentTypes_IfNoneAreAddedExplicitly() public async Task JsonResult_UsesDefaultContentTypes_IfNoneAreAddedExplicitly()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8"); var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8");
var expectedBody = "{\"MethodName\":\"ReturnJsonResult\"}"; var expectedBody = "{\"MethodName\":\"ReturnJsonResult\"}";
@ -312,7 +307,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonResult_UsesExplicitContentTypeAndFormatter_IfAdded() public async Task JsonResult_UsesExplicitContentTypeAndFormatter_IfAdded()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse("application/custom-json;charset=utf-8"); var expectedContentType = MediaTypeHeaderValue.Parse("application/custom-json;charset=utf-8");
var expectedBody = "{ MethodName = ReturnJsonResult_WithCustomMediaType }"; var expectedBody = "{ MethodName = ReturnJsonResult_WithCustomMediaType }";
@ -330,7 +325,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonResult_UsesDefaultJsonFormatter_IfNoMatchingFormatterIsFound() public async Task JsonResult_UsesDefaultJsonFormatter_IfNoMatchingFormatterIsFound()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8"); var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8");
var expectedBody = "{\"MethodName\":\"ReturnJsonResult_WithCustomMediaType_NoFormatter\"}"; var expectedBody = "{\"MethodName\":\"ReturnJsonResult_WithCustomMediaType_NoFormatter\"}";
@ -348,7 +343,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonFormatter_SupportedMediaType_DoesNotChangeAcrossRequests() public async Task JsonFormatter_SupportedMediaType_DoesNotChangeAcrossRequests()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8"); var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8");
var expectedBody = "{\"MethodName\":\"ReturnJsonResult\"}"; var expectedBody = "{\"MethodName\":\"ReturnJsonResult\"}";
@ -368,7 +363,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task XmlFormatter_SupportedMediaType_DoesNotChangeAcrossRequests() public async Task XmlFormatter_SupportedMediaType_DoesNotChangeAcrossRequests()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml")); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
client.DefaultRequestHeaders.AcceptCharset.Add(new StringWithQualityHeaderValue("utf-8")); client.DefaultRequestHeaders.AcceptCharset.Add(new StringWithQualityHeaderValue("utf-8"));
@ -394,7 +389,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task NoMatchOn_RequestContentType_FallsBackOnTypeBasedMatch_MatchFound(string actionName) public async Task NoMatchOn_RequestContentType_FallsBackOnTypeBasedMatch_MatchFound(string actionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8"); var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8");
var expectedBody = "1234"; var expectedBody = "1234";
@ -419,7 +414,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task NoMatchOn_RequestContentType_SkipTypeMatchByAddingACustomFormatter(string actionName) public async Task NoMatchOn_RequestContentType_SkipTypeMatchByAddingACustomFormatter(string actionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var targetUri = "http://localhost/FallbackOnTypeBasedMatch/" + actionName + "/?input=1234"; var targetUri = "http://localhost/FallbackOnTypeBasedMatch/" + actionName + "/?input=1234";
var content = new StringContent("1234", Encoding.UTF8, "application/custom"); var content = new StringContent("1234", Encoding.UTF8, "application/custom");
@ -438,7 +433,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task NoMatchOn_RequestContentType_FallsBackOnTypeBasedMatch_NoMatchFound_Returns406() public async Task NoMatchOn_RequestContentType_FallsBackOnTypeBasedMatch_NoMatchFound_Returns406()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var targetUri = "http://localhost/FallbackOnTypeBasedMatch/FallbackGivesNoMatch/?input=1234"; var targetUri = "http://localhost/FallbackOnTypeBasedMatch/FallbackGivesNoMatch/?input=1234";
var content = new StringContent("1234", Encoding.UTF8, "application/custom"); var content = new StringContent("1234", Encoding.UTF8, "application/custom");
@ -457,7 +452,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ProducesAttribute_And_FormatFilterAttribute_Conflicting() public async Task ProducesAttribute_And_FormatFilterAttribute_Conflicting()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse("application/json"); var expectedContentType = MediaTypeHeaderValue.Parse("application/json");
@ -472,7 +467,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ProducesAttribute_And_FormatFilterAttribute_Collaborating() public async Task ProducesAttribute_And_FormatFilterAttribute_Collaborating()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -8,8 +8,6 @@ using System.Net;
using System.Threading.Tasks; using System.Threading.Tasks;
using ControllerDiscoveryConventionsWebSite; using ControllerDiscoveryConventionsWebSite;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.TestHost;
using Microsoft.Framework.DependencyInjection; using Microsoft.Framework.DependencyInjection;
using Microsoft.Framework.Runtime; using Microsoft.Framework.Runtime;
using Xunit; using Xunit;
@ -18,15 +16,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ControllerDiscoveryConventionTests public class ControllerDiscoveryConventionTests
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices( private const string SiteName = nameof(ControllerDiscoveryConventionsWebSite);
nameof(ControllerDiscoveryConventionsWebSite));
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task AbstractControllers_AreSkipped() public async Task AbstractControllers_AreSkipped()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.BaseAddress = new Uri("http://localhost/"); client.BaseAddress = new Uri("http://localhost/");
@ -41,7 +38,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TypesDerivingFromControllerBaseTypesThatDoNotReferenceMvc_AreSkipped() public async Task TypesDerivingFromControllerBaseTypesThatDoNotReferenceMvc_AreSkipped()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.BaseAddress = new Uri("http://localhost/"); client.BaseAddress = new Uri("http://localhost/");
@ -56,7 +53,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TypesMarkedWithNonController_AreSkipped() public async Task TypesMarkedWithNonController_AreSkipped()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.BaseAddress = new Uri("http://localhost/"); client.BaseAddress = new Uri("http://localhost/");
@ -71,7 +68,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task PocoTypesWithControllerSuffix_AreDiscovered() public async Task PocoTypesWithControllerSuffix_AreDiscovered()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.BaseAddress = new Uri("http://localhost/"); client.BaseAddress = new Uri("http://localhost/");
@ -87,7 +84,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TypesDerivingFromTypesWithControllerSuffix_AreDiscovered() public async Task TypesDerivingFromTypesWithControllerSuffix_AreDiscovered()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.BaseAddress = new Uri("http://localhost/"); client.BaseAddress = new Uri("http://localhost/");
@ -103,13 +100,13 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TypesDerivingFromApiController_AreDiscovered() public async Task TypesDerivingFromApiController_AreDiscovered()
{ {
// Arrange // Arrange
// TestHelper.CreateServices replaces the DefaultAssemblyProvider with a provider that // TestHelper.CreateServer normally replaces the DefaultAssemblyProvider with a provider that
// limits the set of candidate assemblies to the executing application. For this test, // limits the set of candidate assemblies to the executing application. For this test,
// we'll switch it back to using a filtered default assembly provider. // we'll switch it back to using a filtered default assembly provider.
var services = HostingServices.Create(); var server = TestHelper.CreateServer(
services.AddTransient<IAssemblyProvider, FilteredDefaultAssemblyProvider>(); _app,
var serviceProvider = TestHelper.CreateServices(nameof(ControllerDiscoveryConventionsWebSite), services); SiteName,
var server = TestServer.Create(serviceProvider, _app); services => services.AddTransient<IAssemblyProvider, FilteredDefaultAssemblyProvider>());
var client = server.CreateClient(); var client = server.CreateClient();
client.BaseAddress = new Uri("http://localhost/"); client.BaseAddress = new Uri("http://localhost/");

View File

@ -7,15 +7,13 @@ using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using ControllersFromServicesWebSite; using ControllersFromServicesWebSite;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ControllerFromServicesTest public class ControllerFromServicesTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices( private const string SiteName = nameof(ControllersFromServicesWebSite);
nameof(ControllersFromServicesWebSite));
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
@ -23,7 +21,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var expected = "/constructorinjection 14 test-header-value"; var expected = "/constructorinjection 14 test-header-value";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.DefaultRequestHeaders.TryAddWithoutValidation("Test-Header", "test-header-value"); client.DefaultRequestHeaders.TryAddWithoutValidation("Test-Header", "test-header-value");
@ -39,7 +37,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var expected = "No schedules available for 23"; var expected = "No schedules available for 23";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -54,7 +52,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var expected = "4"; var expected = "4";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -69,7 +67,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var expected = "Updated record employee303"; var expected = "Updated record employee303";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -86,7 +84,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var expected = "Saved record employee #211"; var expected = "Saved record employee #211";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -106,7 +104,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AddControllersFromServices_UsesControllerDiscoveryContentions(string action) public async Task AddControllersFromServices_UsesControllerDiscoveryContentions(string action)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -2,20 +2,17 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System; using System;
using System.Collections.Generic;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class CustomRouteTest public class CustomRouteTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(CustomRouteWebSite)); private const string SiteName = nameof(CustomRouteWebSite);
private readonly Action<IApplicationBuilder> _app = new CustomRouteWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new CustomRouteWebSite.Startup().Configure;
[Theory] [Theory]
@ -25,7 +22,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task RouteToLocale_ConventionalRoute_BasedOnUser(string user, string expected) public async Task RouteToLocale_ConventionalRoute_BasedOnUser(string user, string expected)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/CustomRoute_Products/Index"); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/CustomRoute_Products/Index");
@ -47,7 +44,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task RouteWithAttributeRoute_IncludesLocale_BasedOnUser(string user, string expected) public async Task RouteWithAttributeRoute_IncludesLocale_BasedOnUser(string user, string expected)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/CustomRoute_Orders/5"); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/CustomRoute_Orders/5");

View File

@ -5,7 +5,6 @@ using System;
using System.Net; using System.Net;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
@ -19,46 +18,40 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
/// </summary> /// </summary>
public class CustomUrlHelperTests public class CustomUrlHelperTests
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices("UrlHelperWebSite"); private const string SiteName = nameof(UrlHelperWebSite);
private readonly Action<IApplicationBuilder> _app = new UrlHelperWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new UrlHelperWebSite.Startup().Configure;
private const string _cdnServerBaseUrl = "http://cdn.contoso.com"; private const string _cdnServerBaseUrl = "http://cdn.contoso.com";
[Fact] [Fact]
public async Task CustomUrlHelper_GeneratesUrlFromController() public async Task CustomUrlHelper_GeneratesUrlFromController()
{ {
using (TestHelper.ReplaceCallContextServiceLocationService(_services)) // Arrange
{ var server = TestHelper.CreateServer(_app, SiteName);
// Arrange var client = server.CreateClient();
var server = TestServer.Create(_services, _app);
var client = server.CreateClient();
// Act // Act
var response = await client.GetAsync("http://localhost/Home/UrlContent"); var response = await client.GetAsync("http://localhost/Home/UrlContent");
var responseData = await response.Content.ReadAsStringAsync(); var responseData = await response.Content.ReadAsStringAsync();
//Assert //Assert
Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Assert.Equal(_cdnServerBaseUrl + "/bootstrap.min.css", responseData); Assert.Equal(_cdnServerBaseUrl + "/bootstrap.min.css", responseData);
}
} }
[Fact] [Fact]
public async Task CustomUrlHelper_GeneratesUrlFromView() public async Task CustomUrlHelper_GeneratesUrlFromView()
{ {
using (TestHelper.ReplaceCallContextServiceLocationService(_services)) // Arrange
{ var server = TestHelper.CreateServer(_app, SiteName);
// Arrange var client = server.CreateClient();
var server = TestServer.Create(_services, _app);
var client = server.CreateClient();
// Act // Act
var response = await client.GetAsync("http://localhost/Home/Index"); var response = await client.GetAsync("http://localhost/Home/Index");
var responseData = await response.Content.ReadAsStringAsync(); var responseData = await response.Content.ReadAsStringAsync();
//Assert //Assert
Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Assert.Contains(_cdnServerBaseUrl + "/bootstrap.min.css", responseData); Assert.Contains(_cdnServerBaseUrl + "/bootstrap.min.css", responseData);
}
} }
[Theory] [Theory]
@ -66,20 +59,17 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[InlineData("http://localhost/Home/LinkByUrlAction", "/home/urlcontent")] [InlineData("http://localhost/Home/LinkByUrlAction", "/home/urlcontent")]
public async Task LowercaseUrls_LinkGeneration(string url, string expectedLink) public async Task LowercaseUrls_LinkGeneration(string url, string expectedLink)
{ {
using (TestHelper.ReplaceCallContextServiceLocationService(_services)) // Arrange
{ var server = TestHelper.CreateServer(_app, SiteName);
// Arrange var client = server.CreateClient();
var server = TestServer.Create(_services, _app);
var client = server.CreateClient();
// Act // Act
var response = await client.GetAsync(url); var response = await client.GetAsync(url);
var responseData = await response.Content.ReadAsStringAsync(); var responseData = await response.Content.ReadAsStringAsync();
//Assert //Assert
Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Assert.Equal(expectedLink, responseData, ignoreCase: false); Assert.Equal(expectedLink, responseData, ignoreCase: false);
}
} }
} }
} }

View File

@ -10,7 +10,6 @@ using Microsoft.AspNet.Mvc.Core;
using Microsoft.AspNet.Mvc.Description; using Microsoft.AspNet.Mvc.Description;
using Microsoft.AspNet.Mvc.Razor; using Microsoft.AspNet.Mvc.Razor;
using Microsoft.AspNet.Mvc.ViewComponents; using Microsoft.AspNet.Mvc.ViewComponents;
using Microsoft.AspNet.TestHost;
using Microsoft.Framework.OptionsModel; using Microsoft.Framework.OptionsModel;
using Xunit; using Xunit;
@ -19,7 +18,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Tests that various MVC services have the correct order. // Tests that various MVC services have the correct order.
public class DefaultOrderTest public class DefaultOrderTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(BasicWebSite)); private const string SiteName = nameof(BasicWebSite);
private readonly Action<IApplicationBuilder> _app = new BasicWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new BasicWebSite.Startup().Configure;
[Theory] [Theory]
@ -34,7 +33,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ServiceOrder_GetOrder(Type serviceType, Type actualType, int order) public async Task ServiceOrder_GetOrder(Type serviceType, Type actualType, int order)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/Order/GetServiceOrder?serviceType=" + serviceType.AssemblyQualifiedName; var url = "http://localhost/Order/GetServiceOrder?serviceType=" + serviceType.AssemblyQualifiedName;

View File

@ -3,29 +3,26 @@
#if DNX451 #if DNX451
using System; using System;
using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using AutofacWebSite; using AutofacWebSite;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class DependencyResolverTests public class DependencyResolverTests
{ {
private const string SiteName = nameof(AutofacWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Theory] [Theory]
[InlineData("http://localhost/di", "<p>Builder Output: Hello from builder.</p>")] [InlineData("http://localhost/di", "<p>Builder Output: Hello from builder.</p>")]
[InlineData("http://localhost/basic", "<p>Hello From Basic View</p>")] [InlineData("http://localhost/basic", "<p>Hello From Basic View</p>")]
public async Task AutofacDIContainerCanUseMvc(string url, string expectedResponseBody) public async Task AutofacDIContainerCanUseMvc(string url, string expectedResponseBody)
{ {
// Arrange // Arrange & Act & Assert (does not throw)
var provider = TestHelper.CreateServices("AutofacWebSite");
Action<IApplicationBuilder> app = new Startup().Configure;
// Act & Assert (does not throw)
// This essentially calls into the Startup.Configuration method // This essentially calls into the Startup.Configuration method
var server = TestServer.Create(provider, app); var server = TestHelper.CreateServer(_app, SiteName);
// Make a request to start resolving DI pieces // Make a request to start resolving DI pieces
var response = await server.CreateClient().GetAsync(url); var response = await server.CreateClient().GetAsync(url);

View File

@ -4,7 +4,6 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using RazorWebSite; using RazorWebSite;
using Xunit; using Xunit;
@ -12,14 +11,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class DirectivesTest public class DirectivesTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices("RazorWebSite"); private const string SiteName = nameof(RazorWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task ViewsInheritsUsingsAndInjectDirectivesFromViewStarts() public async Task ViewsInheritsUsingsAndInjectDirectivesFromViewStarts()
{ {
var expected = @"Hello Person1"; var expected = @"Hello Person1";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -33,7 +32,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ViewInheritsBasePageFromViewStarts() public async Task ViewInheritsBasePageFromViewStarts()
{ {
var expected = @"WriteLiteral says:layout:Write says:Write says:Hello Person2"; var expected = @"WriteLiteral says:layout:Write says:Write says:Hello Person2";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -8,7 +8,6 @@ using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
using ErrorPageMiddlewareWebSite; using ErrorPageMiddlewareWebSite;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
@ -18,7 +17,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
/// </summary> /// </summary>
public class ErrorPageTests public class ErrorPageTests
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(ErrorPageMiddlewareWebSite)); private const string SiteName = nameof(ErrorPageMiddlewareWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
private readonly Assembly _resourcesAssembly = typeof(ErrorPageTests).GetTypeInfo().Assembly; private readonly Assembly _resourcesAssembly = typeof(ErrorPageTests).GetTypeInfo().Assembly;
@ -32,7 +31,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CompilationFailuresAreListedByErrorPageMiddleware(string action, string expected) public async Task CompilationFailuresAreListedByErrorPageMiddleware(string action, string expected)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedMediaType = MediaTypeHeaderValue.Parse("text/html"); var expectedMediaType = MediaTypeHeaderValue.Parse("text/html");

View File

@ -5,21 +5,20 @@ using System;
using System.Net; using System.Net;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class FileResultTests public class FileResultTests
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices("FilesWebSite"); private const string SiteName = nameof(FilesWebSite);
private readonly Action<IApplicationBuilder> _app = new FilesWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new FilesWebSite.Startup().Configure;
[Fact] [Fact]
public async Task FileFromDisk_CanBeEnabled_WithMiddleware() public async Task FileFromDisk_CanBeEnabled_WithMiddleware()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -40,7 +39,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FileFromDisk_ReturnsFileWithFileName() public async Task FileFromDisk_ReturnsFileWithFileName()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -65,7 +64,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FileFromStream_ReturnsFile() public async Task FileFromStream_ReturnsFile()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -86,7 +85,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FileFromStream_ReturnsFileWithFileName() public async Task FileFromStream_ReturnsFileWithFileName()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -111,7 +110,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FileFromBinaryData_ReturnsFile() public async Task FileFromBinaryData_ReturnsFile()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -132,7 +131,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FileFromBinaryData_ReturnsFileWithFileName() public async Task FileFromBinaryData_ReturnsFileWithFileName()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -9,14 +9,13 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Mvc.Xml; using Microsoft.AspNet.Mvc.Xml;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class FiltersTest public class FiltersTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices("FiltersWebSite"); private const string SiteName = nameof(FiltersWebSite);
private readonly Action<IApplicationBuilder> _app = new FiltersWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new FiltersWebSite.Startup().Configure;
// A controller can only be an action filter and result filter, so we don't have entries // A controller can only be an action filter and result filter, so we don't have entries
@ -25,7 +24,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ListAllFilters() public async Task ListAllFilters()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = new string[] var expected = new string[]
@ -81,7 +80,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AnonymousUsersAreBlocked() public async Task AnonymousUsersAreBlocked()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -95,7 +94,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AllowsAnonymousUsersToAccessController() public async Task AllowsAnonymousUsersToAccessController()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -114,7 +113,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanAuthorize(string testAction) public async Task CanAuthorize(string testAction)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -130,7 +129,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AllowAnonymousOverridesAuthorize() public async Task AllowAnonymousOverridesAuthorize()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -146,7 +145,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ImpossiblePolicyFailsAuthorize() public async Task ImpossiblePolicyFailsAuthorize()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -161,7 +160,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ServiceFilterUsesRegisteredServicesAsFilter() public async Task ServiceFilterUsesRegisteredServicesAsFilter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -176,7 +175,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ServiceFilterThrowsIfServiceIsNotRegistered() public async Task ServiceFilterThrowsIfServiceIsNotRegistered()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/RandomNumber/GetAuthorizedRandomNumber"; var url = "http://localhost/RandomNumber/GetAuthorizedRandomNumber";
@ -192,7 +191,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TypeFilterInitializesArguments() public async Task TypeFilterInitializesArguments()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/RandomNumber/GetModifiedRandomNumber?randomNumber=10"; var url = "http://localhost/RandomNumber/GetModifiedRandomNumber?randomNumber=10";
@ -208,7 +207,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TypeFilterThrowsIfServicesAreNotRegistered() public async Task TypeFilterThrowsIfServicesAreNotRegistered()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/RandomNumber/GetHalfOfModifiedRandomNumber?randomNumber=3"; var url = "http://localhost/RandomNumber/GetHalfOfModifiedRandomNumber?randomNumber=3";
@ -224,7 +223,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ActionFilterOverridesActionExecuted() public async Task ActionFilterOverridesActionExecuted()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -241,7 +240,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ResultFilterOverridesOnResultExecuting() public async Task ResultFilterOverridesOnResultExecuting()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -258,7 +257,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ResultFilterOverridesOnResultExecuted() public async Task ResultFilterOverridesOnResultExecuted()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -275,7 +274,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task OrderOfExecutionOfFilters_WhenOrderAttribute_IsNotMentioned() public async Task OrderOfExecutionOfFilters_WhenOrderAttribute_IsNotMentioned()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -293,7 +292,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ExceptionsHandledInActionFilters_WillNotShortCircuitResultFilters() public async Task ExceptionsHandledInActionFilters_WillNotShortCircuitResultFilters()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -310,7 +309,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ExceptionFilter_OnAction_ShortCircuitsResultFilters() public async Task ExceptionFilter_OnAction_ShortCircuitsResultFilters()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -329,7 +328,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GlobalExceptionFilter_HandlesAnException() public async Task GlobalExceptionFilter_HandlesAnException()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -346,7 +345,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ExceptionFilter_Scope() public async Task ExceptionFilter_Scope()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -367,7 +366,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ActionFilter_Scope() public async Task ActionFilter_Scope()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -394,7 +393,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ResultFilter_Scope() public async Task ResultFilter_Scope()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -417,7 +416,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FiltersWithOrder() public async Task FiltersWithOrder()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -434,7 +433,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ActionFiltersWithOrder() public async Task ActionFiltersWithOrder()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -455,7 +454,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ResultFiltersWithOrder() public async Task ResultFiltersWithOrder()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -474,7 +473,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ActionFilterShortCircuitsAction() public async Task ActionFilterShortCircuitsAction()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -491,7 +490,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ResultFilterShortCircuitsResult() public async Task ResultFilterShortCircuitsResult()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -508,7 +507,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ExceptionFilterShortCircuitsAnotherExceptionFilter() public async Task ExceptionFilterShortCircuitsAnotherExceptionFilter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -525,7 +524,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ThrowingFilters_ResultFilter_NotHandledByGlobalExceptionFilter() public async Task ThrowingFilters_ResultFilter_NotHandledByGlobalExceptionFilter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -542,7 +541,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ThrowingFilters_ActionFilter_HandledByGlobalExceptionFilter() public async Task ThrowingFilters_ActionFilter_HandledByGlobalExceptionFilter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -559,7 +558,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ThrowingFilters_AuthFilter_NotHandledByGlobalExceptionFilter() public async Task ThrowingFilters_AuthFilter_NotHandledByGlobalExceptionFilter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -576,7 +575,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ThrowingExceptionFilter_ExceptionFilter_NotHandledByGlobalExceptionFilter() public async Task ThrowingExceptionFilter_ExceptionFilter_NotHandledByGlobalExceptionFilter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -593,7 +592,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Arrange // Arrange
var input = "{ sampleInt: 10 }"; var input = "{ sampleInt: 10 }";
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/Json"); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/Json");
@ -618,7 +617,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// There's nothing that can deserialize the body, so the result contains the default // There's nothing that can deserialize the body, so the result contains the default
// value. // value.
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/Json"); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/Json");

View File

@ -6,7 +6,6 @@ using System.IO;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Microsoft.Framework.DependencyInjection; using Microsoft.Framework.DependencyInjection;
using RazorWebSite; using RazorWebSite;
using Xunit; using Xunit;
@ -15,15 +14,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class FlushPointTest public class FlushPointTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices("RazorWebSite"); private const string SiteName = nameof(RazorWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task FlushPointsAreExecutedForPagesWithLayouts() public async Task FlushPointsAreExecutedForPagesWithLayouts()
{ {
var waitService = new WaitService(); var waitService = new WaitService();
var serviceProvider = GetServiceProvider(waitService); var server = TestHelper.CreateServer(_app, SiteName, services => services.AddInstance(waitService));
var server = TestServer.Create(serviceProvider, _app);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -46,9 +44,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FlushPointsAreExecutedForPagesWithoutLayouts() public async Task FlushPointsAreExecutedForPagesWithoutLayouts()
{ {
var waitService = new WaitService(); var waitService = new WaitService();
var serviceProvider = GetServiceProvider(waitService); var server = TestHelper.CreateServer(_app, SiteName, services => services.AddInstance(waitService));
var server = TestServer.Create(serviceProvider, _app);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -83,9 +79,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FlushPointsAreExecutedForPagesWithComponentsPartialsAndSections(string action, string title) public async Task FlushPointsAreExecutedForPagesWithComponentsPartialsAndSections(string action, string title)
{ {
var waitService = new WaitService(); var waitService = new WaitService();
var serviceProvider = GetServiceProvider(waitService); var server = TestHelper.CreateServer(_app, SiteName, services => services.AddInstance(waitService));
var server = TestServer.Create(serviceProvider, _app);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -121,9 +115,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var waitService = new WaitService(); var waitService = new WaitService();
var serviceProvider = GetServiceProvider(waitService); var server = TestHelper.CreateServer(_app, SiteName, services => services.AddInstance(waitService));
var server = TestServer.Create(serviceProvider, _app);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -144,9 +136,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FlushBeforeCallingLayout() public async Task FlushBeforeCallingLayout()
{ {
var waitService = new WaitService(); var waitService = new WaitService();
var serviceProvider = GetServiceProvider(waitService); var server = TestHelper.CreateServer(_app, SiteName, services => services.AddInstance(waitService));
var server = TestServer.Create(serviceProvider, _app);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedMessage = "A layout page cannot be rendered after 'FlushAsync' has been invoked."; var expectedMessage = "A layout page cannot be rendered after 'FlushAsync' has been invoked.";
@ -169,13 +159,6 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
} }
} }
private IServiceProvider GetServiceProvider(WaitService waitService)
{
var services = new ServiceCollection();
services.AddInstance(waitService);
return TestHelper.CreateServices("RazorWebSite", services);
}
private string GetTrimmedString(Stream stream) private string GetTrimmedString(Stream stream)
{ {
var buffer = new byte[1024]; var buffer = new byte[1024];

View File

@ -5,21 +5,20 @@ using System;
using System.Net; using System.Net;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class FormatFilterTest public class FormatFilterTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(FormatFilterWebSite)); private const string SiteName = nameof(FormatFilterWebSite);
private readonly Action<IApplicationBuilder> _app = new FormatFilterWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new FormatFilterWebSite.Startup().Configure;
[Fact] [Fact]
public async Task FormatFilter_NoExtensionInRequest() public async Task FormatFilter_NoExtensionInRequest()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -34,7 +33,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormatFilter_ExtensionInRequest_Default() public async Task FormatFilter_ExtensionInRequest_Default()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -49,7 +48,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormatFilter_ExtensionInRequest_Optional() public async Task FormatFilter_ExtensionInRequest_Optional()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -64,7 +63,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormatFilter_ExtensionInRequest_Custom() public async Task FormatFilter_ExtensionInRequest_Custom()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -79,7 +78,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormatFilter_ExtensionInRequest_CaseInsensitivity() public async Task FormatFilter_ExtensionInRequest_CaseInsensitivity()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -94,7 +93,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormatFilter_ExtensionInRequest_NonExistant() public async Task FormatFilter_ExtensionInRequest_NonExistant()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -108,7 +107,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormatFilter_And_ProducesFilter_Match() public async Task FormatFilter_And_ProducesFilter_Match()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -123,7 +122,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormatFilter_And_ProducesFilter_Conflict() public async Task FormatFilter_And_ProducesFilter_Conflict()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -137,7 +136,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormatFilter_And_OverrideProducesFilter() public async Task FormatFilter_And_OverrideProducesFilter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -8,7 +8,6 @@ using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using InlineConstraints; using InlineConstraints;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -16,14 +15,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class InlineConstraintTests public class InlineConstraintTests
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices("InlineConstraintsWebSite"); private const string SiteName = nameof(InlineConstraintsWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task RoutingToANonExistantArea_WithExistConstraint_RoutesToCorrectAction() public async Task RoutingToANonExistantArea_WithExistConstraint_RoutesToCorrectAction()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -39,7 +38,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task RoutingToANonExistantArea_WithoutExistConstraint_RoutesToIncorrectAction() public async Task RoutingToANonExistantArea_WithoutExistConstraint_RoutesToIncorrectAction()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -57,7 +56,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductById_IntConstraintForOptionalId_IdPresent() public async Task GetProductById_IntConstraintForOptionalId_IdPresent()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -76,7 +75,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductById_IntConstraintForOptionalId_NoId() public async Task GetProductById_IntConstraintForOptionalId_NoId()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -93,7 +92,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductById_IntConstraintForOptionalId_NotIntId() public async Task GetProductById_IntConstraintForOptionalId_NotIntId()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -107,7 +106,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductByName_AlphaContraintForMandatoryName_ValidName() public async Task GetProductByName_AlphaContraintForMandatoryName_ValidName()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -125,7 +124,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductByName_AlphaContraintForMandatoryName_NonAlphaName() public async Task GetProductByName_AlphaContraintForMandatoryName_NonAlphaName()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -139,7 +138,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductByName_AlphaContraintForMandatoryName_NoName() public async Task GetProductByName_AlphaContraintForMandatoryName_NoName()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -153,7 +152,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductByManufacturingDate_DateTimeConstraintForMandatoryDateTime_ValidDateTime() public async Task GetProductByManufacturingDate_DateTimeConstraintForMandatoryDateTime_ValidDateTime()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -173,7 +172,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductByCategoryName_StringLengthConstraint_ForOptionalCategoryName_ValidCatName() public async Task GetProductByCategoryName_StringLengthConstraint_ForOptionalCategoryName_ValidCatName()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -191,7 +190,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductByCategoryName_StringLengthConstraint_ForOptionalCategoryName_InvalidCatName() public async Task GetProductByCategoryName_StringLengthConstraint_ForOptionalCategoryName_InvalidCatName()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -206,7 +205,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductByCategoryName_StringLength1To20Constraint_ForOptionalCategoryName_NoCatName() public async Task GetProductByCategoryName_StringLength1To20Constraint_ForOptionalCategoryName_NoCatName()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -223,7 +222,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductByCategoryId_Int10To100Constraint_ForMandatoryCatId_ValidId() public async Task GetProductByCategoryId_Int10To100Constraint_ForMandatoryCatId_ValidId()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -241,7 +240,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductByCategoryId_Int10To100Constraint_ForMandatoryCatId_InvalidId() public async Task GetProductByCategoryId_Int10To100Constraint_ForMandatoryCatId_InvalidId()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -255,7 +254,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductByCategoryId_Int10To100Constraint_ForMandatoryCatId_NotIntId() public async Task GetProductByCategoryId_Int10To100Constraint_ForMandatoryCatId_NotIntId()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -269,7 +268,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductByPrice_FloatContraintForOptionalPrice_Valid() public async Task GetProductByPrice_FloatContraintForOptionalPrice_Valid()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -287,7 +286,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductByPrice_FloatContraintForOptionalPrice_NoPrice() public async Task GetProductByPrice_FloatContraintForOptionalPrice_NoPrice()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -304,7 +303,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductByManufacturerId_IntMin10Constraint_ForOptionalManufacturerId_Valid() public async Task GetProductByManufacturerId_IntMin10Constraint_ForOptionalManufacturerId_Valid()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -322,7 +321,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetProductByManufacturerId_IntMin10Cinstraint_ForOptionalManufacturerId_NoId() public async Task GetProductByManufacturerId_IntMin10Cinstraint_ForOptionalManufacturerId_NoId()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -339,7 +338,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetUserByName_RegExConstraint_ForMandatoryName_Valid() public async Task GetUserByName_RegExConstraint_ForMandatoryName_Valid()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -357,7 +356,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetUserByName_RegExConstraint_ForMandatoryName_InValid() public async Task GetUserByName_RegExConstraint_ForMandatoryName_InValid()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -371,7 +370,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetStoreById_GuidConstraintForOptionalId_Valid() public async Task GetStoreById_GuidConstraintForOptionalId_Valid()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -390,7 +389,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetStoreById_GuidConstraintForOptionalId_NoId() public async Task GetStoreById_GuidConstraintForOptionalId_NoId()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -407,7 +406,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetStoreById_GuidConstraintForOptionalId_NotGuidId() public async Task GetStoreById_GuidConstraintForOptionalId_NotGuidId()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -421,7 +420,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetStoreByLocation_StringLengthConstraint_AlphaConstraint_ForMandatoryLocation_Valid() public async Task GetStoreByLocation_StringLengthConstraint_AlphaConstraint_ForMandatoryLocation_Valid()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -439,7 +438,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetStoreByLocation_StringLengthConstraint_AlphaConstraint_ForMandatoryLocation_MoreLength() public async Task GetStoreByLocation_StringLengthConstraint_AlphaConstraint_ForMandatoryLocation_MoreLength()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -453,7 +452,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetStoreByLocation_StringLengthConstraint_AlphaConstraint_ForMandatoryLocation_LessLength() public async Task GetStoreByLocation_StringLengthConstraint_AlphaConstraint_ForMandatoryLocation_LessLength()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -467,7 +466,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GetStoreByLocation_StringLengthConstraint_AlphaConstraint_ForMandatoryLocation_NoAlpha() public async Task GetStoreByLocation_StringLengthConstraint_AlphaConstraint_ForMandatoryLocation_NoAlpha()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -624,7 +623,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
string expectedLink) string expectedLink)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -8,7 +8,6 @@ using System.Net.Http.Headers;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -16,14 +15,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class InputFormatterTests public class InputFormatterTests
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices("FormatterWebSite"); private const string SiteName = nameof(FormatterWebSite);
private readonly Action<IApplicationBuilder> _app = new FormatterWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new FormatterWebSite.Startup().Configure;
[Fact] [Fact]
public async Task CheckIfXmlInputFormatterIsBeingCalled() public async Task CheckIfXmlInputFormatterIsBeingCalled()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var sampleInputInt = 10; var sampleInputInt = 10;
var input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + var input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
@ -48,7 +47,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonInputFormatter_IsSelectedForJsonRequest(string requestContentType) public async Task JsonInputFormatter_IsSelectedForJsonRequest(string requestContentType)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var sampleInputInt = 10; var sampleInputInt = 10;
var input = "{\"SampleInt\":10}"; var input = "{\"SampleInt\":10}";
@ -80,7 +79,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
var actionName = filterHandlesModelStateError ? "ActionFilterHandlesError" : "ActionHandlesError"; var actionName = filterHandlesModelStateError ? "ActionFilterHandlesError" : "ActionHandlesError";
var expectedSource = filterHandlesModelStateError ? "filter" : "action"; var expectedSource = filterHandlesModelStateError ? "filter" : "action";
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "{\"SampleInt\":10}"; var input = "{\"SampleInt\":10}";
var content = new StringContent(input); var content = new StringContent(input);
@ -111,7 +110,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonInputFormatter_IsModelStateValid_ForValidContentType(string requestContentType, string jsonInput, int expectedSampleIntValue) public async Task JsonInputFormatter_IsModelStateValid_ForValidContentType(string requestContentType, string jsonInput, int expectedSampleIntValue)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new StringContent(jsonInput, Encoding.UTF8, requestContentType); var content = new StringContent(jsonInput, Encoding.UTF8, requestContentType);
@ -131,7 +130,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonInputFormatter_IsModelStateInvalid_ForEmptyContentType(string jsonInput) public async Task JsonInputFormatter_IsModelStateInvalid_ForEmptyContentType(string jsonInput)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new StringContent(jsonInput, Encoding.UTF8, "application/json"); var content = new StringContent(jsonInput, Encoding.UTF8, "application/json");
content.Headers.Clear(); content.Headers.Clear();
@ -150,7 +149,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonInputFormatter_IsModelStateValid_ForTransferEncodingChunk(string requestContentType, string jsonInput, int expectedSampleIntValue) public async Task JsonInputFormatter_IsModelStateValid_ForTransferEncodingChunk(string requestContentType, string jsonInput, int expectedSampleIntValue)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new StringContent(jsonInput, Encoding.UTF8, requestContentType); var content = new StringContent(jsonInput, Encoding.UTF8, requestContentType);
client.DefaultRequestHeaders.TransferEncodingChunked = true; client.DefaultRequestHeaders.TransferEncodingChunked = true;
@ -170,7 +169,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CustomFormatter_IsSelected_ForSupportedContentTypeAndEncoding(string encoding) public async Task CustomFormatter_IsSelected_ForSupportedContentTypeAndEncoding(string encoding)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new StringContent("Test Content", Encoding.GetEncoding(encoding), "text/plain"); var content = new StringContent("Test Content", Encoding.GetEncoding(encoding), "text/plain");
@ -189,7 +188,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CustomFormatter_NotSelected_ForUnsupportedContentType(string contentType) public async Task CustomFormatter_NotSelected_ForUnsupportedContentType(string contentType)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new StringContent("Test Content", Encoding.UTF8, contentType); var content = new StringContent("Test Content", Encoding.UTF8, contentType);

View File

@ -9,7 +9,6 @@ using System.Net.Http;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Microsoft.AspNet.WebUtilities; using Microsoft.AspNet.WebUtilities;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -18,7 +17,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class InputObjectValidationTests public class InputObjectValidationTests
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices("FormatterWebSite"); private const string SiteName = nameof(FormatterWebSite);
private readonly Action<IApplicationBuilder> _app = new FormatterWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new FormatterWebSite.Startup().Configure;
// Parameters: Request Content, Expected status code, Expected model state error message // Parameters: Request Content, Expected status code, Expected model state error message
@ -47,7 +46,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CheckIfObjectIsDeserializedWithoutErrors() public async Task CheckIfObjectIsDeserializedWithoutErrors()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var sampleId = 2; var sampleId = 2;
var sampleName = "SampleUser"; var sampleName = "SampleUser";
@ -74,7 +73,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CheckIfObjectIsDeserialized_WithErrors() public async Task CheckIfObjectIsDeserialized_WithErrors()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var sampleId = 0; var sampleId = 0;
var sampleName = "user"; var sampleName = "user";
@ -101,7 +100,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CheckIfExcludedFieldsAreNotValidated() public async Task CheckIfExcludedFieldsAreNotValidated()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new StringContent("{\"Alias\":\"xyz\"}", Encoding.UTF8, "application/json"); var content = new StringContent("{\"Alias\":\"xyz\"}", Encoding.UTF8, "application/json");
@ -118,7 +117,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ShallowValidation_HappensOnExcluded_ComplexTypeProperties() public async Task ShallowValidation_HappensOnExcluded_ComplexTypeProperties()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var requestData = "{\"Name\":\"Library Manager\", \"Suppliers\": [{\"Name\":\"Contoso Corp\"}]}"; var requestData = "{\"Name\":\"Library Manager\", \"Suppliers\": [{\"Name\":\"Contoso Corp\"}]}";
var content = new StringContent(requestData, Encoding.UTF8, "application/json"); var content = new StringContent(requestData, Encoding.UTF8, "application/json");
@ -151,7 +150,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
string expectedModelStateErrorMessage) string expectedModelStateErrorMessage)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new StringContent(requestContent, Encoding.UTF8, "application/json"); var content = new StringContent(requestContent, Encoding.UTF8, "application/json");
@ -173,7 +172,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CheckIfExcludedField_IsValidatedForNonBodyBoundModels() public async Task CheckIfExcludedField_IsValidatedForNonBodyBoundModels()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var kvps = new List<KeyValuePair<string, string>>(); var kvps = new List<KeyValuePair<string, string>>();
kvps.Add(new KeyValuePair<string, string>("Alias", "xyz")); kvps.Add(new KeyValuePair<string, string>("Alias", "xyz"));

View File

@ -8,7 +8,6 @@ using System.Net.Http.Headers;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -16,7 +15,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class JsonOutputFormatterTests public class JsonOutputFormatterTests
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices("FormatterWebSite"); private const string SiteName = nameof(FormatterWebSite);
private readonly Action<IApplicationBuilder> _app = new FormatterWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new FormatterWebSite.Startup().Configure;
[Fact] [Fact]
@ -36,7 +35,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
serializerSettings.Formatting = Formatting.Indented; serializerSettings.Formatting = Formatting.Indented;
var expectedBody = JsonConvert.SerializeObject(user, serializerSettings); var expectedBody = JsonConvert.SerializeObject(user, serializerSettings);
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -51,7 +50,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task SerializableErrorIsReturnedInExpectedFormat() public async Task SerializableErrorIsReturnedInExpectedFormat()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + var input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +

View File

@ -6,14 +6,13 @@ using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class JsonResultTest public class JsonResultTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(BasicWebSite)); private const string SiteName = nameof(BasicWebSite);
private readonly Action<IApplicationBuilder> _app = new BasicWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new BasicWebSite.Startup().Configure;
[Theory] [Theory]
@ -22,7 +21,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonResult_Conneg(string mediaType) public async Task JsonResult_Conneg(string mediaType)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/JsonResult/Plain"; var url = "http://localhost/JsonResult/Plain";
@ -48,7 +47,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonResult_Conneg_Fails(string mediaType) public async Task JsonResult_Conneg_Fails(string mediaType)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/JsonResult/Plain"; var url = "http://localhost/JsonResult/Plain";
@ -71,7 +70,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonResult_Null() public async Task JsonResult_Null()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/JsonResult/Null"; var url = "http://localhost/JsonResult/Null";
@ -93,7 +92,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonResult_String() public async Task JsonResult_String()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/JsonResult/String"; var url = "http://localhost/JsonResult/String";
@ -116,7 +115,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonResult_CustomFormatter_Conneg(string mediaType) public async Task JsonResult_CustomFormatter_Conneg(string mediaType)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/JsonResult/CustomFormatter"; var url = "http://localhost/JsonResult/CustomFormatter";
@ -142,7 +141,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonResult_CustomFormatter_Conneg_Fails(string mediaType) public async Task JsonResult_CustomFormatter_Conneg_Fails(string mediaType)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/JsonResult/CustomFormatter"; var url = "http://localhost/JsonResult/CustomFormatter";
@ -164,7 +163,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonResult_CustomContentType() public async Task JsonResult_CustomContentType()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/JsonResult/CustomContentType"; var url = "http://localhost/JsonResult/CustomContentType";

View File

@ -7,14 +7,13 @@ using System.Net.Http.Headers;
using System.Reflection; using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class LinkGenerationTests public class LinkGenerationTests
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices("BasicWebSite"); private const string SiteName = nameof(BasicWebSite);
private readonly Action<IApplicationBuilder> _app = new BasicWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new BasicWebSite.Startup().Configure;
// Some tests require comparing the actual response body against an expected response baseline // Some tests require comparing the actual response body against an expected response baseline
@ -29,7 +28,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GeneratedLinksWithActionResults_AreRelativeLinks_WhenSetOnLocationHeader(string url) public async Task GeneratedLinksWithActionResults_AreRelativeLinks_WhenSetOnLocationHeader(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -48,7 +47,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GeneratedLinks_AreNotPunyEncoded_WhenGeneratedOnViews() public async Task GeneratedLinks_AreNotPunyEncoded_WhenGeneratedOnViews()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedMediaType = MediaTypeHeaderValue.Parse("text/html; charset=utf-8"); var expectedMediaType = MediaTypeHeaderValue.Parse("text/html; charset=utf-8");

View File

@ -11,7 +11,6 @@ using System.Threading.Tasks;
using LoggingWebSite; using LoggingWebSite;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Mvc.Logging; using Microsoft.AspNet.Mvc.Logging;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -19,14 +18,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class LoggingActionSelectionTest public class LoggingActionSelectionTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(LoggingWebSite)); private const string SiteName = nameof(LoggingWebSite);
private readonly Action<IApplicationBuilder> _app = new LoggingWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task Successful_ActionSelection_Logged() public async Task Successful_ActionSelection_Logged()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var requestTraceId = Guid.NewGuid().ToString(); var requestTraceId = Guid.NewGuid().ToString();
@ -61,7 +60,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task Failed_ActionSelection_Logged() public async Task Failed_ActionSelection_Logged()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var requestTraceId = Guid.NewGuid().ToString(); var requestTraceId = Guid.NewGuid().ToString();
@ -95,7 +94,6 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
var logActivities = JsonConvert.DeserializeObject<List<ActivityContextDto>>(responseData); var logActivities = JsonConvert.DeserializeObject<List<ActivityContextDto>>(responseData);
return logActivities.FilterByRequestTraceId(requestTraceId); return logActivities.FilterByRequestTraceId(requestTraceId);
} }
} }
} }
#endif #endif

View File

@ -11,7 +11,6 @@ using LoggingWebSite.Controllers;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Mvc.Filters; using Microsoft.AspNet.Mvc.Filters;
using Microsoft.AspNet.Mvc.Logging; using Microsoft.AspNet.Mvc.Logging;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -19,8 +18,8 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class LoggingStartupTest public class LoggingStartupTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(LoggingWebSite)); private const string SiteName = nameof(LoggingWebSite);
private readonly Action<IApplicationBuilder> _app = new LoggingWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task AssemblyValues_LoggedAtStartup() public async Task AssemblyValues_LoggedAtStartup()
@ -88,7 +87,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
private async Task<IEnumerable<LogInfoDto>> GetLogsByDataTypeAsync<T>() private async Task<IEnumerable<LogInfoDto>> GetLogsByDataTypeAsync<T>()
{ {
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var response = await client.GetStringAsync("http://localhost/logs"); var response = await client.GetStringAsync("http://localhost/logs");

View File

@ -6,7 +6,6 @@ using System.Collections.Generic;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using ModelBindingWebSite; using ModelBindingWebSite;
using ModelBindingWebSite.Controllers; using ModelBindingWebSite.Controllers;
using ModelBindingWebSite.Models; using ModelBindingWebSite.Models;
@ -17,14 +16,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ModelBindingFromFormTest public class ModelBindingFromFormTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(ModelBindingWebSite)); private const string SiteName = nameof(ModelBindingWebSite);
private readonly Action<IApplicationBuilder> _app = new ModelBindingWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task FromForm_CustomModelPrefix_ForParameter() public async Task FromForm_CustomModelPrefix_ForParameter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/FromFormAttribute_Company/CreateCompany"; var url = "http://localhost/FromFormAttribute_Company/CreateCompany";
@ -52,7 +51,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FromForm_CustomModelPrefix_ForCollectionParameter() public async Task FromForm_CustomModelPrefix_ForCollectionParameter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/FromFormAttribute_Company/CreateCompanyFromEmployees"; var url = "http://localhost/FromFormAttribute_Company/CreateCompanyFromEmployees";
@ -78,7 +77,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FromForm_CustomModelPrefix_ForProperty() public async Task FromForm_CustomModelPrefix_ForProperty()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/FromFormAttribute_Company/CreateCompany"; var url = "http://localhost/FromFormAttribute_Company/CreateCompany";
@ -104,7 +103,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FromForm_CustomModelPrefix_ForCollectionProperty() public async Task FromForm_CustomModelPrefix_ForCollectionProperty()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/FromFormAttribute_Company/CreateDepartment"; var url = "http://localhost/FromFormAttribute_Company/CreateDepartment";
@ -131,7 +130,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FromForm_NonExistingValueAddsValidationErrors_OnProperty_UsingCustomModelPrefix() public async Task FromForm_NonExistingValueAddsValidationErrors_OnProperty_UsingCustomModelPrefix()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/FromFormAttribute_Company/ValidateDepartment"; var url = "http://localhost/FromFormAttribute_Company/ValidateDepartment";

View File

@ -6,15 +6,14 @@ using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ModelBindingFromHeaderTest public class ModelBindingFromHeaderTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(ModelBindingWebSite)); private const string SiteName = nameof(ModelBindingWebSite);
private readonly Action<IApplicationBuilder> _app = new ModelBindingWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new ModelBindingWebSite.Startup().Configure;
// The action that this test hits will echo back the model-bound value // The action that this test hits will echo back the model-bound value
@ -27,7 +26,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Arrange // Arrange
var expected = headerValue; var expected = headerValue;
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToStringParameter"); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToStringParameter");
@ -51,7 +50,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
var title = "How to make really really good soup."; var title = "How to make really really good soup.";
var tags = new string[] { "Cooking", "Recipes", "Awesome" }; var tags = new string[] { "Cooking", "Recipes", "Awesome" };
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToProperty/CustomName"); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToProperty/CustomName");
@ -77,7 +76,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Arrange // Arrange
var tags = new string[] { "Cooking", "Recipes", "Awesome" }; var tags = new string[] { "Cooking", "Recipes", "Awesome" };
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToProperty/CustomName"); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToProperty/CustomName");
@ -100,7 +99,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FromHeader_NonExistingHeaderAddsValidationErrors_OnCollectionProperty_CustomName() public async Task FromHeader_NonExistingHeaderAddsValidationErrors_OnCollectionProperty_CustomName()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToProperty/CustomName"); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToProperty/CustomName");
@ -126,7 +125,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Arrange // Arrange
var expected = "1e331f25-0869-4c87-8a94-64e6e40cb5a0"; var expected = "1e331f25-0869-4c87-8a94-64e6e40cb5a0";
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToStringParameter/CustomName"); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToStringParameter/CustomName");
@ -154,7 +153,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Arrange // Arrange
var expected = headerValue; var expected = headerValue;
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToStringParameter"); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToStringParameter");
@ -182,7 +181,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
string headerValue) string headerValue)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -213,7 +212,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Arrange // Arrange
var expected = headerValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); var expected = headerValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToStringArrayParameter"); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToStringArrayParameter");
@ -241,7 +240,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
var title = "How to make really really good soup."; var title = "How to make really really good soup.";
var tags = new string[] { "Cooking", "Recipes", "Awesome" }; var tags = new string[] { "Cooking", "Recipes", "Awesome" };
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToModel?author=Marvin"); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToModel?author=Marvin");
@ -269,7 +268,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FromHeader_BindHeader_ToModel_NoValues_ValidationError() public async Task FromHeader_BindHeader_ToModel_NoValues_ValidationError()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToModel?author=Marvin"); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Blog/BindToModel?author=Marvin");
@ -299,7 +298,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FromHeader_BindHeader_ToModel_NoValues_InitializedValue_ValidationError() public async Task FromHeader_BindHeader_ToModel_NoValues_InitializedValue_ValidationError()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -331,7 +330,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FromHeader_BindHeader_ToModel_NoValues_DefaultValue_NoValidationError() public async Task FromHeader_BindHeader_ToModel_NoValues_DefaultValue_NoValidationError()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(

View File

@ -4,25 +4,24 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using ModelBindingWebSite; using ModelBindingWebSite;
using ModelBindingWebSite.Controllers;
using ModelBindingWebSite.Models; using ModelBindingWebSite.Models;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
using ModelBindingWebSite.Controllers;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ModelBindingFromQueryTest public class ModelBindingFromQueryTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(ModelBindingWebSite)); private const string SiteName = nameof(ModelBindingWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task FromQuery_CustomModelPrefix_ForParameter() public async Task FromQuery_CustomModelPrefix_ForParameter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// [FromQuery(Name = "customPrefix")] is used to apply a prefix // [FromQuery(Name = "customPrefix")] is used to apply a prefix
@ -44,7 +43,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FromQuery_CustomModelPrefix_ForCollectionParameter() public async Task FromQuery_CustomModelPrefix_ForCollectionParameter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = var url =
@ -65,7 +64,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FromQuery_CustomModelPrefix_ForProperty() public async Task FromQuery_CustomModelPrefix_ForProperty()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// [FromQuery(Name = "EmployeeId")] is used to apply a prefix // [FromQuery(Name = "EmployeeId")] is used to apply a prefix
@ -88,7 +87,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FromQuery_CustomModelPrefix_ForCollectionProperty() public async Task FromQuery_CustomModelPrefix_ForCollectionProperty()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = var url =
@ -111,7 +110,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FromQuery_NonExistingValueAddsValidationErrors_OnProperty_UsingCustomModelPrefix() public async Task FromQuery_NonExistingValueAddsValidationErrors_OnProperty_UsingCustomModelPrefix()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = var url =

View File

@ -6,7 +6,6 @@ using System.Collections.Generic;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using ModelBindingWebSite; using ModelBindingWebSite;
using ModelBindingWebSite.Models; using ModelBindingWebSite.Models;
using Newtonsoft.Json; using Newtonsoft.Json;
@ -16,14 +15,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ModelBindingFromRouteTest public class ModelBindingFromRouteTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(ModelBindingWebSite)); private const string SiteName = nameof(ModelBindingWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task FromRoute_CustomModelPrefix_ForParameter() public async Task FromRoute_CustomModelPrefix_ForParameter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// [FromRoute(Name = "customPrefix")] is used to apply a prefix // [FromRoute(Name = "customPrefix")] is used to apply a prefix
@ -43,7 +42,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FromRoute_CustomModelPrefix_ForProperty() public async Task FromRoute_CustomModelPrefix_ForProperty()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// [FromRoute(Name = "EmployeeId")] is used to apply a prefix // [FromRoute(Name = "EmployeeId")] is used to apply a prefix
@ -64,7 +63,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FromRoute_NonExistingValueAddsValidationErrors_OnProperty_UsingCustomModelPrefix() public async Task FromRoute_NonExistingValueAddsValidationErrors_OnProperty_UsingCustomModelPrefix()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// [FromRoute(Name = "TestEmployees")] is used to apply a prefix // [FromRoute(Name = "TestEmployees")] is used to apply a prefix

View File

@ -4,7 +4,6 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using ModelBindingWebSite.Models; using ModelBindingWebSite.Models;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -13,14 +12,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ModelBindingModelBinderAttributeTest public class ModelBindingModelBinderAttributeTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(ModelBindingWebSite)); private const string SiteName = nameof(ModelBindingWebSite);
private readonly Action<IApplicationBuilder> _app = new ModelBindingWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new ModelBindingWebSite.Startup().Configure;
[Fact] [Fact]
public async Task ModelBinderAttribute_CustomModelPrefix() public async Task ModelBinderAttribute_CustomModelPrefix()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// [ModelBinder(Name = "customPrefix")] is used to apply a prefix // [ModelBinder(Name = "customPrefix")] is used to apply a prefix
@ -42,7 +41,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelBinderAttribute_CustomModelPrefix_OnProperty() public async Task ModelBinderAttribute_CustomModelPrefix_OnProperty()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = var url =
@ -65,7 +64,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelBinderAttribute_WithPrefixOnParameter(string action) public async Task ModelBinderAttribute_WithPrefixOnParameter(string action)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// [ModelBinder(Name = "customPrefix")] is used to apply a prefix // [ModelBinder(Name = "customPrefix")] is used to apply a prefix
@ -90,7 +89,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelBinderAttribute_WithBinderOnParameter(string action) public async Task ModelBinderAttribute_WithBinderOnParameter(string action)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = var url =
@ -112,7 +111,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelBinderAttribute_WithBinderOnEnum() public async Task ModelBinderAttribute_WithBinderOnEnum()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = var url =

View File

@ -11,7 +11,6 @@ using System.Reflection;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using ModelBindingWebSite.Models; using ModelBindingWebSite.Models;
using ModelBindingWebSite.ViewModels; using ModelBindingWebSite.ViewModels;
using Newtonsoft.Json; using Newtonsoft.Json;
@ -21,14 +20,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ModelBindingTest public class ModelBindingTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices("ModelBindingWebSite"); private const string SiteName = nameof(ModelBindingWebSite);
private readonly Action<IApplicationBuilder> _app = new ModelBindingWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new ModelBindingWebSite.Startup().Configure;
[Fact] [Fact]
public async Task TypeBasedExclusion_ForBodyAndNonBodyBoundModels() public async Task TypeBasedExclusion_ForBodyAndNonBodyBoundModels()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Make sure the body object gets created with an invalid zip. // Make sure the body object gets created with an invalid zip.
@ -50,7 +49,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelValidation_DoesNotValidate_AnAlreadyValidatedObject() public async Task ModelValidation_DoesNotValidate_AnAlreadyValidatedObject()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -70,7 +69,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CompositeModelBinder_Restricts_ValueProviders(string actionName, string expectedValue) public async Task CompositeModelBinder_Restricts_ValueProviders(string actionName, string expectedValue)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Provide all three values, it should bind based on the attribute on the action method. // Provide all three values, it should bind based on the attribute on the action method.
@ -95,7 +94,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TryUpdateModel_WithAPropertyFromBody() public async Task TryUpdateModel_WithAPropertyFromBody()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// the name would be of customer.Department.Name // the name would be of customer.Department.Name
@ -121,7 +120,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanModelBindServiceToAnArgument() public async Task CanModelBindServiceToAnArgument()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -135,7 +134,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[Fact] [Fact]
public async Task CanModelBindServiceToAProperty() public async Task CanModelBindServiceToAProperty()
{ {
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -150,7 +149,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[Fact] [Fact]
public async Task CanModelBindServiceToAProperty_OnBaseType() public async Task CanModelBindServiceToAProperty_OnBaseType()
{ {
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -166,7 +165,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task MultipleParametersMarkedWithFromBody_Throws() public async Task MultipleParametersMarkedWithFromBody_Throws()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -184,7 +183,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task MultipleParameterAndPropertiesMarkedWithFromBody_Throws() public async Task MultipleParameterAndPropertiesMarkedWithFromBody_Throws()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -202,7 +201,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task MultipleParametersMarkedWith_FromFormAndFromBody_Throws() public async Task MultipleParametersMarkedWith_FromFormAndFromBody_Throws()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -220,7 +219,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task MultipleParameterAndPropertiesMarkedWith_FromFormAndFromBody_Throws() public async Task MultipleParameterAndPropertiesMarkedWith_FromFormAndFromBody_Throws()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -238,7 +237,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanBind_MultipleParameters_UsingFromForm() public async Task CanBind_MultipleParameters_UsingFromForm()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Post, var request = new HttpRequestMessage(HttpMethod.Post,
@ -276,7 +275,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanBind_MultipleProperties_UsingFromForm() public async Task CanBind_MultipleProperties_UsingFromForm()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Post, var request = new HttpRequestMessage(HttpMethod.Post,
@ -314,7 +313,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanBind_ComplexData_OnParameters_UsingFromAttributes() public async Task CanBind_ComplexData_OnParameters_UsingFromAttributes()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Provide all three values, it should bind based on the attribute on the action method. // Provide all three values, it should bind based on the attribute on the action method.
@ -358,7 +357,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanBind_ComplexData_OnProperties_UsingFromAttributes() public async Task CanBind_ComplexData_OnProperties_UsingFromAttributes()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Provide all three values, it should bind based on the attribute on the action method. // Provide all three values, it should bind based on the attribute on the action method.
@ -402,7 +401,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanBind_ComplexData_OnProperties_UsingFromAttributes_WithBody() public async Task CanBind_ComplexData_OnProperties_UsingFromAttributes_WithBody()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Provide all three values, it should bind based on the attribute on the action method. // Provide all three values, it should bind based on the attribute on the action method.
@ -442,7 +441,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task NonExistingModelBinder_ForABinderMetadata_DoesNotRecurseInfinitely() public async Task NonExistingModelBinder_ForABinderMetadata_DoesNotRecurseInfinitely()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act & Assert // Act & Assert
@ -460,7 +459,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ParametersWithNoValueProviderMetadataUseTheAvailableValueProviders() public async Task ParametersWithNoValueProviderMetadataUseTheAvailableValueProviders()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -482,7 +481,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ParametersAreAlwaysCreated_IfValuesAreProvidedWithoutModelName() public async Task ParametersAreAlwaysCreated_IfValuesAreProvidedWithoutModelName()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -504,7 +503,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ParametersAreAlwaysCreated_IfValueIsProvidedForModelName() public async Task ParametersAreAlwaysCreated_IfValueIsProvidedForModelName()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -525,7 +524,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ParametersAreAlwaysCreated_IfNoValuesAreProvided() public async Task ParametersAreAlwaysCreated_IfNoValuesAreProvided()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -546,7 +545,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task PropertiesAreBound_IfTheyAreProvidedByValueProviders() public async Task PropertiesAreBound_IfTheyAreProvidedByValueProviders()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -568,7 +567,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task PropertiesAreBound_IfTheyAreMarkedExplicitly() public async Task PropertiesAreBound_IfTheyAreMarkedExplicitly()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -589,7 +588,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task PropertiesAreBound_IfTheyArePocoMetadataMarkedTypes() public async Task PropertiesAreBound_IfTheyArePocoMetadataMarkedTypes()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -614,7 +613,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task PropertiesAreNotBound_ByDefault() public async Task PropertiesAreNotBound_ByDefault()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -636,7 +635,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanBind_ComplexData_FromRouteData(string url) public async Task CanBind_ComplexData_FromRouteData(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -659,7 +658,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelBindCancellationTokenParameteres() public async Task ModelBindCancellationTokenParameteres()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -674,7 +673,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelBindCancellationToken_ForProperties() public async Task ModelBindCancellationToken_ForProperties()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -690,7 +689,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelBindingBindsBase64StringsToByteArrays() public async Task ModelBindingBindsBase64StringsToByteArrays()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -705,7 +704,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelBindingBindsEmptyStringsToByteArrays() public async Task ModelBindingBindsEmptyStringsToByteArrays()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -720,7 +719,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelBinding_LimitsErrorsToMaxErrorCount() public async Task ModelBinding_LimitsErrorsToMaxErrorCount()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var queryString = string.Join("=&", Enumerable.Range(0, 10).Select(i => "field" + i)); var queryString = string.Join("=&", Enumerable.Range(0, 10).Select(i => "field" + i));
@ -745,7 +744,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelBinding_ValidatesAllPropertiesInModel() public async Task ModelBinding_ValidatesAllPropertiesInModel()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -763,7 +762,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindAttribute_Filters_UsingDefaultPropertyFilterProvider_WithExpressions() public async Task BindAttribute_Filters_UsingDefaultPropertyFilterProvider_WithExpressions()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -786,7 +785,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindAttribute_Filters_UsingPropertyFilterProvider_UsingServices() public async Task BindAttribute_Filters_UsingPropertyFilterProvider_UsingServices()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -809,7 +808,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindAttribute_Filters_UsingDefaultPropertyFilterProvider_WithPredicate() public async Task BindAttribute_Filters_UsingDefaultPropertyFilterProvider_WithPredicate()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -828,7 +827,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindAttribute_AppliesAtBothParameterAndTypeLevelTogether_BlacklistedAtEitherLevelIsNotBound() public async Task BindAttribute_AppliesAtBothParameterAndTypeLevelTogether_BlacklistedAtEitherLevelIsNotBound()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -847,7 +846,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindAttribute_AppliesAtBothParameterAndTypeLevelTogether_IncludedAtBothLevelsIsBound() public async Task BindAttribute_AppliesAtBothParameterAndTypeLevelTogether_IncludedAtBothLevelsIsBound()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -865,7 +864,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindAttribute_AppliesAtBothParameterAndTypeLevelTogether_IncludingAtOneLevelIsNotBound() public async Task BindAttribute_AppliesAtBothParameterAndTypeLevelTogether_IncludingAtOneLevelIsNotBound()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -884,7 +883,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindAttribute_BindsUsingParameterPrefix() public async Task BindAttribute_BindsUsingParameterPrefix()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -900,7 +899,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindAttribute_DoesNotUseTypePrefix() public async Task BindAttribute_DoesNotUseTypePrefix()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -916,7 +915,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindAttribute_FallsBackOnEmptyPrefixIfNoParameterPrefixIsProvided() public async Task BindAttribute_FallsBackOnEmptyPrefixIfNoParameterPrefixIsProvided()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -932,7 +931,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindAttribute_DoesNotFallBackOnEmptyPrefixIfParameterPrefixIsProvided() public async Task BindAttribute_DoesNotFallBackOnEmptyPrefixIfParameterPrefixIsProvided()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -949,7 +948,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TryUpdateModel_IncludeTopLevelProperty_IncludesAllSubProperties() public async Task TryUpdateModel_IncludeTopLevelProperty_IncludesAllSubProperties()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -978,7 +977,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TryUpdateModel_ChainedPropertyExpression_Throws() public async Task TryUpdateModel_ChainedPropertyExpression_Throws()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
Expression<Func<User, object>> expression = model => model.Address.Country; Expression<Func<User, object>> expression = model => model.Address.Country;
@ -1000,7 +999,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TryUpdateModel_FailsToUpdateProperties() public async Task TryUpdateModel_FailsToUpdateProperties()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1019,7 +1018,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TryUpdateModel_IncludeExpression_WorksOnlyAtTopLevel() public async Task TryUpdateModel_IncludeExpression_WorksOnlyAtTopLevel()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1042,7 +1041,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TryUpdateModel_Validates_ForTopLevelNotIncludedProperties() public async Task TryUpdateModel_Validates_ForTopLevelNotIncludedProperties()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1059,7 +1058,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TryUpdateModelExcludeSpecific_Properties() public async Task TryUpdateModelExcludeSpecific_Properties()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1082,7 +1081,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TryUpdateModelIncludeSpecific_Properties() public async Task TryUpdateModelIncludeSpecific_Properties()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1105,7 +1104,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TryUpdateModelIncludesAllProperties_ByDefault() public async Task TryUpdateModelIncludesAllProperties_ByDefault()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1128,7 +1127,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task UpdateVehicle_WithJson_ProducesModelStateErrors() public async Task UpdateVehicle_WithJson_ProducesModelStateErrors()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new var content = new
{ {
@ -1164,7 +1163,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task UpdateVehicle_WithJson_DoesPropertyValidationPriorToValidationAtType() public async Task UpdateVehicle_WithJson_DoesPropertyValidationPriorToValidationAtType()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new var content = new
{ {
@ -1198,7 +1197,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task UpdateVehicle_WithJson_BindsBodyAndServices() public async Task UpdateVehicle_WithJson_BindsBodyAndServices()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var trackingId = Guid.NewGuid().ToString(); var trackingId = Guid.NewGuid().ToString();
var postedContent = new var postedContent = new
@ -1235,7 +1234,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task UpdateVehicle_WithXml_BindsBodyServicesAndHeaders() public async Task UpdateVehicle_WithXml_BindsBodyServicesAndHeaders()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var trackingId = Guid.NewGuid().ToString(); var trackingId = Guid.NewGuid().ToString();
var postedContent = new VehicleViewModel var postedContent = new VehicleViewModel
@ -1275,7 +1274,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Arrange // Arrange
var expectedContent = await GetType().GetTypeInfo().Assembly.ReadResourceAsStringAsync( var expectedContent = await GetType().GetTypeInfo().Assembly.ReadResourceAsStringAsync(
"compiler/resources/UpdateDealerVehicle_PopulatesPropertyErrorsInViews.txt"); "compiler/resources/UpdateDealerVehicle_PopulatesPropertyErrorsInViews.txt");
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var postedContent = new var postedContent = new
{ {
@ -1306,7 +1305,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Arrange // Arrange
var expectedContent = await GetType().GetTypeInfo().Assembly.ReadResourceAsStringAsync( var expectedContent = await GetType().GetTypeInfo().Assembly.ReadResourceAsStringAsync(
"compiler/resources/UpdateDealerVehicle_PopulatesValidationSummary.txt"); "compiler/resources/UpdateDealerVehicle_PopulatesValidationSummary.txt");
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var postedContent = new var postedContent = new
{ {
@ -1337,7 +1336,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Arrange // Arrange
var expectedContent = await GetType().GetTypeInfo().Assembly.ReadResourceAsStringAsync( var expectedContent = await GetType().GetTypeInfo().Assembly.ReadResourceAsStringAsync(
"compiler/resources/UpdateDealerVehicle_UpdateSuccessful.txt"); "compiler/resources/UpdateDealerVehicle_UpdateSuccessful.txt");
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var postedContent = new var postedContent = new
{ {
@ -1366,7 +1365,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormFileModelBinder_CanBind_SingleFile() public async Task FormFileModelBinder_CanBind_SingleFile()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/FileUpload/UploadSingle"; var url = "http://localhost/FileUpload/UploadSingle";
var formData = new MultipartFormDataContent("Upload----"); var formData = new MultipartFormDataContent("Upload----");
@ -1387,7 +1386,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormFileModelBinder_CanBind_MultipleFiles() public async Task FormFileModelBinder_CanBind_MultipleFiles()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/FileUpload/UploadMultiple"; var url = "http://localhost/FileUpload/UploadMultiple";
var formData = new MultipartFormDataContent("Upload----"); var formData = new MultipartFormDataContent("Upload----");
@ -1412,7 +1411,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormFileModelBinder_CanBind_MultipleListOfFiles() public async Task FormFileModelBinder_CanBind_MultipleListOfFiles()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/FileUpload/UploadMultipleList"; var url = "http://localhost/FileUpload/UploadMultipleList";
var formData = new MultipartFormDataContent("Upload----"); var formData = new MultipartFormDataContent("Upload----");
@ -1447,7 +1446,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormFileModelBinder_CanBind_FileInsideModel() public async Task FormFileModelBinder_CanBind_FileInsideModel()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/FileUpload/UploadModelWithFile"; var url = "http://localhost/FileUpload/UploadModelWithFile";
var formData = new MultipartFormDataContent("Upload----"); var formData = new MultipartFormDataContent("Upload----");
@ -1472,7 +1471,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TryUpdateModel_ReturnDerivedAndBaseProperties() public async Task TryUpdateModel_ReturnDerivedAndBaseProperties()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1495,7 +1494,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Arrange // Arrange
var expectedContent = await GetType().GetTypeInfo().Assembly.ReadResourceAsStringAsync( var expectedContent = await GetType().GetTypeInfo().Assembly.ReadResourceAsStringAsync(
"compiler/resources/ModelBindingWebSite.Vehicle.Details.html"); "compiler/resources/ModelBindingWebSite.Vehicle.Details.html");
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/vehicles/42"; var url = "http://localhost/vehicles/42";
@ -1515,7 +1514,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Arrange // Arrange
var expectedContent = await GetType().GetTypeInfo().Assembly.ReadResourceAsStringAsync( var expectedContent = await GetType().GetTypeInfo().Assembly.ReadResourceAsStringAsync(
"compiler/resources/ModelBindingWebSite.Vehicle.Edit.html"); "compiler/resources/ModelBindingWebSite.Vehicle.Edit.html");
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/vehicles/42/edit"; var url = "http://localhost/vehicles/42/edit";
@ -1535,7 +1534,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Arrange // Arrange
var expectedContent = await GetType().GetTypeInfo().Assembly.ReadResourceAsStringAsync( var expectedContent = await GetType().GetTypeInfo().Assembly.ReadResourceAsStringAsync(
"compiler/resources/ModelBindingWebSite.Vehicle.Edit.Invalid.html"); "compiler/resources/ModelBindingWebSite.Vehicle.Edit.Invalid.html");
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/vehicles/42/edit"; var url = "http://localhost/vehicles/42/edit";
var contentDictionary = new Dictionary<string, string> var contentDictionary = new Dictionary<string, string>
@ -1573,7 +1572,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/Home/GetErrorMessage"; var url = "http://localhost/Home/GetErrorMessage";
@ -1596,7 +1595,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task OverriddenMetadataProvider_CanChangeAdditionalValues() public async Task OverriddenMetadataProvider_CanChangeAdditionalValues()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/AdditionalValues"; var url = "http://localhost/AdditionalValues";
var expectedDictionary = new Dictionary<string, string> var expectedDictionary = new Dictionary<string, string>
@ -1619,7 +1618,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task OverriddenMetadataProvider_CanUseAttributesToChangeAdditionalValues() public async Task OverriddenMetadataProvider_CanUseAttributesToChangeAdditionalValues()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/GroupNames"; var url = "http://localhost/GroupNames";
var expectedDictionary = new Dictionary<string, string> var expectedDictionary = new Dictionary<string, string>
@ -1646,7 +1645,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TryUpdateModelNonGeneric_IncludesAllProperties_CanBind() public async Task TryUpdateModelNonGeneric_IncludesAllProperties_CanBind()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1669,7 +1668,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormCollectionModelBinder_CanBind_FormValues() public async Task FormCollectionModelBinder_CanBind_FormValues()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/FormCollection/ReturnValuesAsList"; var url = "http://localhost/FormCollection/ReturnValuesAsList";
var nameValueCollection = new List<KeyValuePair<string, string>> var nameValueCollection = new List<KeyValuePair<string, string>>
@ -1693,7 +1692,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormCollectionModelBinder_CanBind_FormValuesWithDuplicateKeys() public async Task FormCollectionModelBinder_CanBind_FormValuesWithDuplicateKeys()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/FormCollection/ReturnValuesAsList"; var url = "http://localhost/FormCollection/ReturnValuesAsList";
var nameValueCollection = new List<KeyValuePair<string, string>> var nameValueCollection = new List<KeyValuePair<string, string>>
@ -1718,7 +1717,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormCollectionModelBinder_CannotBind_NonFormValues() public async Task FormCollectionModelBinder_CannotBind_NonFormValues()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/FormCollection/ReturnCollectionCount"; var url = "http://localhost/FormCollection/ReturnCollectionCount";
var data = new StringContent("Non form content"); var data = new StringContent("Non form content");
@ -1737,7 +1736,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task FormCollectionModelBinder_CanBind_FormWithFile() public async Task FormCollectionModelBinder_CanBind_FormWithFile()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/FormCollection/ReturnFileContent"; var url = "http://localhost/FormCollection/ReturnFileContent";
var expectedContent = "Test Content"; var expectedContent = "Test Content";
@ -1757,7 +1756,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TryUpdateModelNonGenericIncludesAllProperties_ByDefault() public async Task TryUpdateModelNonGenericIncludesAllProperties_ByDefault()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1823,7 +1822,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
IEnumerable<string> expectedModelStateErrorMessages) IEnumerable<string> expectedModelStateErrorMessages)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new StringContent(input, Encoding.UTF8, "text/json"); var content = new StringContent(input, Encoding.UTF8, "text/json");
@ -1849,7 +1848,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindModelAsync_WithCollection() public async Task BindModelAsync_WithCollection()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new Dictionary<string, string> var content = new Dictionary<string, string>
{ {
@ -1875,7 +1874,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindModelAsync_WithCollection_SpecifyingIndex() public async Task BindModelAsync_WithCollection_SpecifyingIndex()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new[] var content = new[]
{ {
@ -1901,7 +1900,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindModelAsync_WithNestedCollection() public async Task BindModelAsync_WithNestedCollection()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new Dictionary<string, string> var content = new Dictionary<string, string>
{ {
@ -1936,7 +1935,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindModelAsync_WithIncorrectlyFormattedNestedCollectionValue() public async Task BindModelAsync_WithIncorrectlyFormattedNestedCollectionValue()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new Dictionary<string, string> var content = new Dictionary<string, string>
{ {
@ -1959,7 +1958,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindModelAsync_WithNestedCollectionContainingRecursiveRelation() public async Task BindModelAsync_WithNestedCollectionContainingRecursiveRelation()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new Dictionary<string, string> var content = new Dictionary<string, string>
{ {
@ -1997,7 +1996,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindModelAsync_WithNestedCollectionContainingRecursiveRelation_WithMalformedValue() public async Task BindModelAsync_WithNestedCollectionContainingRecursiveRelation_WithMalformedValue()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new Dictionary<string, string> var content = new Dictionary<string, string>
{ {
@ -2024,7 +2023,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
bool expectedResult) bool expectedResult)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new List<KeyValuePair<string, string>> var content = new List<KeyValuePair<string, string>>
{ {
@ -2046,7 +2045,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task BindModelAsync_CheckBoxesList_BindSuccessful() public async Task BindModelAsync_CheckBoxesList_BindSuccessful()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var content = new List<KeyValuePair<string, string>> var content = new List<KeyValuePair<string, string>>
{ {

View File

@ -7,7 +7,6 @@ using System.Net.Http;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -15,14 +14,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ModelMetadataAttributeTest public class ModelMetadataAttributeTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(ValidationWebSite)); private const string SiteName = nameof(ValidationWebSite);
private readonly Action<IApplicationBuilder> _app = new ValidationWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new ValidationWebSite.Startup().Configure;
[Fact] [Fact]
public async Task ModelMetaDataTypeAttribute_ValidBaseClass_EmptyResponseBody() public async Task ModelMetaDataTypeAttribute_ValidBaseClass_EmptyResponseBody()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "{ \"Name\": \"MVC\", \"Contact\":\"4258959019\", \"Category\":\"Technology\"," + var input = "{ \"Name\": \"MVC\", \"Contact\":\"4258959019\", \"Category\":\"Technology\"," +
"\"CompanyName\":\"Microsoft\", \"Country\":\"USA\",\"Price\": 21, \"ProductDetails\": {\"Detail1\": \"d1\"," + "\"CompanyName\":\"Microsoft\", \"Country\":\"USA\",\"Price\": 21, \"ProductDetails\": {\"Detail1\": \"d1\"," +
@ -43,7 +42,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelMetaDataTypeAttribute_InvalidPropertiesAndSubPropertiesOnBaseClass_ReturnsErrors() public async Task ModelMetaDataTypeAttribute_InvalidPropertiesAndSubPropertiesOnBaseClass_ReturnsErrors()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "{ \"Price\": 2, \"ProductDetails\": {\"Detail1\": \"d1\"}}"; var input = "{ \"Price\": 2, \"ProductDetails\": {\"Detail1\": \"d1\"}}";
var content = new StringContent(input, Encoding.UTF8, "application/json"); var content = new StringContent(input, Encoding.UTF8, "application/json");
@ -69,7 +68,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelMetaDataTypeAttribute_InvalidComplexTypePropertyOnBaseClass_ReturnsErrors() public async Task ModelMetaDataTypeAttribute_InvalidComplexTypePropertyOnBaseClass_ReturnsErrors()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "{ \"Contact\":\"4255678765\", \"Category\":\"Technology\"," + var input = "{ \"Contact\":\"4255678765\", \"Category\":\"Technology\"," +
"\"CompanyName\":\"Microsoft\", \"Country\":\"USA\",\"Price\": 21 }"; "\"CompanyName\":\"Microsoft\", \"Country\":\"USA\",\"Price\": 21 }";
@ -91,7 +90,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelMetaDataTypeAttribute_InvalidClassAttributeOnBaseClass_ReturnsErrors() public async Task ModelMetaDataTypeAttribute_InvalidClassAttributeOnBaseClass_ReturnsErrors()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "{ \"Contact\":\"4258959019\", \"Category\":\"Technology\"," + var input = "{ \"Contact\":\"4258959019\", \"Category\":\"Technology\"," +
"\"CompanyName\":\"Microsoft\", \"Country\":\"UK\",\"Price\": 21, \"ProductDetails\": {\"Detail1\": \"d1\"," + "\"CompanyName\":\"Microsoft\", \"Country\":\"UK\",\"Price\": 21, \"ProductDetails\": {\"Detail1\": \"d1\"," +
@ -115,7 +114,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelMetaDataTypeAttribute_ValidDerivedClass_EmptyResponseBody() public async Task ModelMetaDataTypeAttribute_ValidDerivedClass_EmptyResponseBody()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "{ \"Name\": \"MVC\", \"Contact\":\"4258959019\", \"Category\":\"Technology\"," + var input = "{ \"Name\": \"MVC\", \"Contact\":\"4258959019\", \"Category\":\"Technology\"," +
"\"CompanyName\":\"Microsoft\", \"Country\":\"USA\", \"Version\":\"2\"," + "\"CompanyName\":\"Microsoft\", \"Country\":\"USA\", \"Version\":\"2\"," +
@ -136,7 +135,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelMetaDataTypeAttribute_InvalidPropertiesOnDerivedClass_ReturnsErrors() public async Task ModelMetaDataTypeAttribute_InvalidPropertiesOnDerivedClass_ReturnsErrors()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "{ \"Name\": \"MVC\", \"Contact\":\"425-895-9019\", \"Category\":\"Technology\"," + var input = "{ \"Name\": \"MVC\", \"Contact\":\"425-895-9019\", \"Category\":\"Technology\"," +
"\"CompanyName\":\"Microsoft\", \"Country\":\"USA\",\"Price\": 2}"; "\"CompanyName\":\"Microsoft\", \"Country\":\"USA\",\"Price\": 2}";
@ -159,7 +158,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelMetaDataTypeAttribute_InvalidClassAttributeOnBaseClassProduct_ReturnsErrors() public async Task ModelMetaDataTypeAttribute_InvalidClassAttributeOnBaseClassProduct_ReturnsErrors()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "{ \"Contact\":\"4258959019\", \"Category\":\"Technology\"," + var input = "{ \"Contact\":\"4258959019\", \"Category\":\"Technology\"," +
"\"CompanyName\":\"Microsoft\", \"Country\":\"UK\",\"Version\":\"2\"," + "\"CompanyName\":\"Microsoft\", \"Country\":\"UK\",\"Version\":\"2\"," +
@ -177,6 +176,5 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
Assert.Equal(1, json.Count); Assert.Equal(1, json.Count);
Assert.Equal("Product must be made in the USA if it is not named.", json["software"]); Assert.Equal("Product must be made in the USA if it is not named.", json["software"]);
} }
} }
} }

View File

@ -10,16 +10,17 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Mvc.Xml; using Microsoft.AspNet.Mvc.Xml;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class MvcSampleTests public class MvcSampleTests
{ {
private const string SiteName = nameof(MvcSample) + "." + nameof(MvcSample.Web);
// Path relative to Mvc\\test\Microsoft.AspNet.Mvc.FunctionalTests // Path relative to Mvc\\test\Microsoft.AspNet.Mvc.FunctionalTests
private readonly IServiceProvider _services = private readonly static string SamplesFolder = Path.Combine("..", "..", "samples");
TestHelper.CreateServices("MvcSample.Web", Path.Combine("..", "..", "samples"));
private readonly Action<IApplicationBuilder> _app = new MvcSample.Web.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new MvcSample.Web.Startup().Configure;
[Theory] [Theory]
@ -37,19 +38,16 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[InlineData("/Home/ValidationSummary")] // Home/ValidationSummary.cshtml [InlineData("/Home/ValidationSummary")] // Home/ValidationSummary.cshtml
public async Task Home_Pages_ReturnSuccess(string path) public async Task Home_Pages_ReturnSuccess(string path)
{ {
using (TestHelper.ReplaceCallContextServiceLocationService(_services)) // Arrange
{ var server = TestHelper.CreateServer(_app, SiteName, SamplesFolder);
// Arrange var client = server.CreateClient();
var server = TestServer.Create(_services, _app);
var client = server.CreateClient();
// Act // Act
var response = await client.GetAsync("http://localhost" + path); var response = await client.GetAsync("http://localhost" + path);
// Assert // Assert
Assert.NotNull(response); Assert.NotNull(response);
Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(HttpStatusCode.OK, response.StatusCode);
}
} }
[Theory] [Theory]
@ -67,84 +65,72 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[InlineData("Name=SamplePerson", "false")] [InlineData("Name=SamplePerson", "false")]
public async Task FormUrlEncoded_ReturnsAppropriateResults(string input, string expectedOutput) public async Task FormUrlEncoded_ReturnsAppropriateResults(string input, string expectedOutput)
{ {
using (TestHelper.ReplaceCallContextServiceLocationService(_services)) // Arrange
{ var server = TestHelper.CreateServer(_app, SiteName, SamplesFolder);
// Arrange var client = server.CreateClient();
var server = TestServer.Create(_services, _app); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/FormUrlEncoded/IsValidPerson");
var client = server.CreateClient(); request.Content = new StringContent(input, Encoding.UTF8, "application/x-www-form-urlencoded");
var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/FormUrlEncoded/IsValidPerson");
request.Content = new StringContent(input, Encoding.UTF8, "application/x-www-form-urlencoded");
// Act // Act
var response = await client.SendAsync(request); var response = await client.SendAsync(request);
// Assert // Assert
Assert.Equal(expectedOutput, await response.Content.ReadAsStringAsync()); Assert.Equal(expectedOutput, await response.Content.ReadAsStringAsync());
}
} }
[Fact] [Fact]
public async Task FormUrlEncoded_Index_ReturnSuccess() public async Task FormUrlEncoded_Index_ReturnSuccess()
{ {
using (TestHelper.ReplaceCallContextServiceLocationService(_services)) // Arrange
{ var server = TestHelper.CreateServer(_app, SiteName, SamplesFolder);
// Arrange var client = server.CreateClient();
var server = TestServer.Create(_services, _app);
var client = server.CreateClient();
// Act // Act
var response = await client.GetAsync("http://localhost/FormUrlEncoded"); var response = await client.GetAsync("http://localhost/FormUrlEncoded");
// Assert // Assert
Assert.NotNull(response); Assert.NotNull(response);
Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(HttpStatusCode.OK, response.StatusCode);
}
} }
[Fact] [Fact]
public async Task Home_NotFoundAction_Returns404() public async Task Home_NotFoundAction_Returns404()
{ {
using (TestHelper.ReplaceCallContextServiceLocationService(_services)) // Arrange
{ var server = TestHelper.CreateServer(_app, SiteName, SamplesFolder);
// Arrange var client = server.CreateClient();
var server = TestServer.Create(_services, _app);
var client = server.CreateClient();
// Act // Act
var response = await client.GetAsync("http://localhost/Home/NotFound"); var response = await client.GetAsync("http://localhost/Home/NotFound");
// Assert // Assert
Assert.NotNull(response); Assert.NotNull(response);
Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
}
} }
[Fact] [Fact]
public async Task Home_CreateUser_ReturnsXmlBasedOnAcceptHeader() public async Task Home_CreateUser_ReturnsXmlBasedOnAcceptHeader()
{ {
using (TestHelper.ReplaceCallContextServiceLocationService(_services)) // Arrange
{ var server = TestHelper.CreateServer(_app, SiteName, SamplesFolder);
// Arrange var client = server.CreateClient();
var server = TestServer.Create(_services, _app); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Home/ReturnUser");
var client = server.CreateClient(); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml;charset=utf-8"));
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Home/ReturnUser");
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml;charset=utf-8"));
// Act // Act
var response = await client.SendAsync(request); var response = await client.SendAsync(request);
// Assert // Assert
Assert.NotNull(response); Assert.NotNull(response);
Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(HttpStatusCode.OK, response.StatusCode);
XmlAssert.Equal("<User xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=" + XmlAssert.Equal("<User xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=" +
"\"http://schemas.datacontract.org/2004/07/MvcSample.Web.Models\"><About>I like playing Football" + "\"http://schemas.datacontract.org/2004/07/MvcSample.Web.Models\"><About>I like playing Football" +
"</About><Address>My address</Address><Age>13</Age><Alive>true</Alive><Dependent><About i:nil=\"true\" />" + "</About><Address>My address</Address><Age>13</Age><Alive>true</Alive><Dependent><About i:nil=\"true\" />" +
"<Address>Dependents address</Address><Age>0</Age><Alive>false</Alive><Dependent i:nil=\"true\" />" + "<Address>Dependents address</Address><Age>0</Age><Alive>false</Alive><Dependent i:nil=\"true\" />" +
"<GPA>0</GPA><Log i:nil=\"true\" /><Name>Dependents name</Name><Password i:nil=\"true\" />" + "<GPA>0</GPA><Log i:nil=\"true\" /><Name>Dependents name</Name><Password i:nil=\"true\" />" +
"<Profession i:nil=\"true\" /></Dependent><GPA>13.37</GPA><Log i:nil=\"true\" />" + "<Profession i:nil=\"true\" /></Dependent><GPA>13.37</GPA><Log i:nil=\"true\" />" +
"<Name>My name</Name><Password>Secure string</Password><Profession>Software Engineer</Profession></User>", "<Name>My name</Name><Password>Secure string</Password><Profession>Software Engineer</Profession></User>",
await response.Content.ReadAsStringAsync()); await response.Content.ReadAsStringAsync());
}
} }
[Theory] [Theory]
@ -153,38 +139,32 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[InlineData("http://localhost/Filters/NotGrantedClaim", HttpStatusCode.Unauthorized)] [InlineData("http://localhost/Filters/NotGrantedClaim", HttpStatusCode.Unauthorized)]
public async Task FiltersController_Tests(string url, HttpStatusCode statusCode) public async Task FiltersController_Tests(string url, HttpStatusCode statusCode)
{ {
using (TestHelper.ReplaceCallContextServiceLocationService(_services)) // Arrange
{ var server = TestHelper.CreateServer(_app, SiteName, SamplesFolder);
// Arrange var client = server.CreateClient();
var server = TestServer.Create(_services, _app);
var client = server.CreateClient();
// Act // Act
var response = await client.GetAsync(url); var response = await client.GetAsync(url);
// Assert // Assert
Assert.NotNull(response); Assert.NotNull(response);
Assert.Equal(statusCode, response.StatusCode); Assert.Equal(statusCode, response.StatusCode);
}
} }
[Fact] [Fact]
public async Task FiltersController_Crash_ThrowsException() public async Task FiltersController_Crash_ThrowsException()
{ {
using (TestHelper.ReplaceCallContextServiceLocationService(_services)) // Arrange
{ var server = TestHelper.CreateServer(_app, SiteName, SamplesFolder);
// Arrange var client = server.CreateClient();
var server = TestServer.Create(_services, _app);
var client = server.CreateClient();
// Act // Act
var response = await client.GetAsync("http://localhost/Filters/Crash?message=HelloWorld"); var response = await client.GetAsync("http://localhost/Filters/Crash?message=HelloWorld");
// Assert // Assert
Assert.NotNull(response); Assert.NotNull(response);
Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Assert.Equal("Boom HelloWorld", await response.Content.ReadAsStringAsync()); Assert.Equal("Boom HelloWorld", await response.Content.ReadAsStringAsync());
}
} }
} }
} }

View File

@ -3,14 +3,13 @@
using System; using System;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class MvcStartupTests public class MvcStartupTests
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices("AddServicesWebSite"); private const string SiteName = nameof(AddServicesWebSite);
private readonly Action<IApplicationBuilder> _app = new AddServicesWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new AddServicesWebSite.Startup().Configure;
[Fact] [Fact]
@ -22,7 +21,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
"or 'IApplicationBuilder.UseMvc(...)' in the application startup code."; "or 'IApplicationBuilder.UseMvc(...)' in the application startup code.";
// Act & Assert // Act & Assert
var ex = Assert.Throws<InvalidOperationException>(() => TestServer.Create(_provider, _app)); var ex = Assert.Throws<InvalidOperationException>(() => TestHelper.CreateServer(_app, SiteName));
Assert.Equal(expectedMessage, ex.Message); Assert.Equal(expectedMessage, ex.Message);
} }
} }

View File

@ -10,11 +10,7 @@ using System.Net.Http.Headers;
using System.Reflection; using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Mvc.ModelBinding;
using Microsoft.AspNet.Mvc.Rendering;
using Microsoft.AspNet.TestHost;
using Microsoft.Framework.DependencyInjection; using Microsoft.Framework.DependencyInjection;
using Microsoft.Framework.Internal;
using MvcTagHelpersWebSite; using MvcTagHelpersWebSite;
using Xunit; using Xunit;
@ -22,7 +18,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class MvcTagHelpersTest public class MvcTagHelpersTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices("MvcTagHelpersWebSite"); private const string SiteName = nameof(MvcTagHelpersWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
private static readonly Assembly _resourcesAssembly = typeof(MvcTagHelpersTest).GetTypeInfo().Assembly; private static readonly Assembly _resourcesAssembly = typeof(MvcTagHelpersTest).GetTypeInfo().Assembly;
@ -51,7 +47,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task MvcTagHelpers_GeneratesExpectedResults(string action, string antiForgeryPath) public async Task MvcTagHelpers_GeneratesExpectedResults(string action, string antiForgeryPath)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedMediaType = MediaTypeHeaderValue.Parse("text/html; charset=utf-8"); var expectedMediaType = MediaTypeHeaderValue.Parse("text/html; charset=utf-8");
@ -82,7 +78,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ValidationTagHelpers_GeneratesExpectedSpansAndDivs() public async Task ValidationTagHelpers_GeneratesExpectedSpansAndDivs()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContent = await _resourcesAssembly.ReadResourceAsStringAsync( var expectedContent = await _resourcesAssembly.ReadResourceAsStringAsync(
"compiler/resources/MvcTagHelpersWebSite.MvcTagHelper_Customer.Index.html"); "compiler/resources/MvcTagHelpersWebSite.MvcTagHelper_Customer.Index.html");
@ -116,7 +112,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Arrange // Arrange
var assertFile = var assertFile =
"compiler/resources/CacheTagHelper_CanCachePortionsOfViewsPartialViewsAndViewComponents.Assert"; "compiler/resources/CacheTagHelper_CanCachePortionsOfViewsPartialViewsAndViewComponents.Assert";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.BaseAddress = new Uri("http://localhost"); client.BaseAddress = new Uri("http://localhost");
client.DefaultRequestHeaders.Add("Locale", "North"); client.DefaultRequestHeaders.Add("Locale", "North");
@ -165,7 +161,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CacheTagHelper_ExpiresContent_BasedOnExpiresParameter() public async Task CacheTagHelper_ExpiresContent_BasedOnExpiresParameter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.BaseAddress = new Uri("http://localhost"); client.BaseAddress = new Uri("http://localhost");
@ -189,7 +185,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CacheTagHelper_UsesVaryByCookie_ToVaryContent() public async Task CacheTagHelper_UsesVaryByCookie_ToVaryContent()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.BaseAddress = new Uri("http://localhost"); client.BaseAddress = new Uri("http://localhost");
@ -221,7 +217,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CacheTagHelper_VariesByRoute() public async Task CacheTagHelper_VariesByRoute()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.BaseAddress = new Uri("http://localhost"); client.BaseAddress = new Uri("http://localhost");
@ -277,7 +273,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CacheTagHelper_VariesByUserId() public async Task CacheTagHelper_VariesByUserId()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.BaseAddress = new Uri("http://localhost"); client.BaseAddress = new Uri("http://localhost");
@ -304,7 +300,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CacheTagHelper_BubblesExpirationOfNestedTagHelpers() public async Task CacheTagHelper_BubblesExpirationOfNestedTagHelpers()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.BaseAddress = new Uri("http://localhost"); client.BaseAddress = new Uri("http://localhost");
@ -349,8 +345,7 @@ Products: Laptops (3)";
// Arrange // Arrange
var newServices = new ServiceCollection(); var newServices = new ServiceCollection();
newServices.ConfigureTagHelpers().ConfigureForm(options => options.GenerateAntiForgeryToken = optionsAntiForgery); newServices.ConfigureTagHelpers().ConfigureForm(options => options.GenerateAntiForgeryToken = optionsAntiForgery);
var serviceProvider = TestHelper.CreateServices("MvcTagHelpersWebSite", newServices); var server = TestHelper.CreateServer(_app, SiteName, services => services.Add(newServices));
var server = TestServer.Create(serviceProvider, _app);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedMediaType = MediaTypeHeaderValue.Parse("text/html; charset=utf-8"); var expectedMediaType = MediaTypeHeaderValue.Parse("text/html; charset=utf-8");

View File

@ -7,14 +7,13 @@ using System.Net.Http.Headers;
using System.Threading.Tasks; using System.Threading.Tasks;
using ContentNegotiationWebSite; using ContentNegotiationWebSite;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class OutputFormatterTest public class OutputFormatterTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(ContentNegotiationWebSite)); private const string SiteName = nameof(ContentNegotiationWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Theory] [Theory]
@ -25,7 +24,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task StringOutputFormatter_ForStringValues_GetsSelectedReturnsTextPlainContentType(string actionName) public async Task StringOutputFormatter_ForStringValues_GetsSelectedReturnsTextPlainContentType(string actionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse("text/plain;charset=utf-8"); var expectedContentType = MediaTypeHeaderValue.Parse("text/plain;charset=utf-8");
var expectedBody = actionName; var expectedBody = actionName;
@ -45,7 +44,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task JsonOutputFormatter_ForNonStringValue_GetsSelected(string actionName) public async Task JsonOutputFormatter_ForNonStringValue_GetsSelected(string actionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8"); var expectedContentType = MediaTypeHeaderValue.Parse("application/json;charset=utf-8");
@ -62,7 +61,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task NoContentFormatter_ForVoidAndTaskReturnType_GetsSelectedAndWritesResponse(string actionName) public async Task NoContentFormatter_ForVoidAndTaskReturnType_GetsSelectedAndWritesResponse(string actionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -84,7 +83,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task NoContentFormatter_ForNullValue_ByDefault_GetsSelectedAndWritesResponse(string actionName) public async Task NoContentFormatter_ForNullValue_ByDefault_GetsSelectedAndWritesResponse(string actionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -107,7 +106,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
NoContentFormatter_ForNullValue_AndTreatNullAsNoContentFlagSetToFalse_DoesNotGetSelected(string actionName) NoContentFormatter_ForNullValue_AndTreatNullAsNoContentFlagSetToFalse_DoesNotGetSelected(string actionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -9,7 +9,6 @@ using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Mvc.Razor; using Microsoft.AspNet.Mvc.Razor;
using Microsoft.AspNet.TestHost;
using Microsoft.Framework.DependencyInjection; using Microsoft.Framework.DependencyInjection;
using Microsoft.Framework.Runtime; using Microsoft.Framework.Runtime;
using PrecompilationWebSite; using PrecompilationWebSite;
@ -19,15 +18,20 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class PrecompilationTest public class PrecompilationTest
{ {
private const string SiteName = nameof(PrecompilationWebSite);
private static readonly TimeSpan _cacheDelayInterval = TimeSpan.FromSeconds(1); private static readonly TimeSpan _cacheDelayInterval = TimeSpan.FromSeconds(1);
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(PrecompilationWebSite));
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task PrecompiledView_RendersCorrectly() public async Task PrecompiledView_RendersCorrectly()
{ {
// Arrange // Arrange
var applicationEnvironment = _services.GetRequiredService<IApplicationEnvironment>(); IServiceCollection serviceCollection = null;
var server = TestHelper.CreateServer(_app, SiteName, services => serviceCollection = services);
var client = server.CreateClient();
var serviceProvider = serviceCollection.BuildServiceProvider();
var applicationEnvironment = serviceProvider.GetRequiredService<IApplicationEnvironment>();
var viewsDirectory = Path.Combine(applicationEnvironment.ApplicationBasePath, "Views", "Home"); var viewsDirectory = Path.Combine(applicationEnvironment.ApplicationBasePath, "Views", "Home");
var layoutContent = File.ReadAllText(Path.Combine(viewsDirectory, "Layout.cshtml")); var layoutContent = File.ReadAllText(Path.Combine(viewsDirectory, "Layout.cshtml"));
@ -35,9 +39,6 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
var viewstartContent = File.ReadAllText(Path.Combine(viewsDirectory, "_ViewStart.cshtml")); var viewstartContent = File.ReadAllText(Path.Combine(viewsDirectory, "_ViewStart.cshtml"));
var globalContent = File.ReadAllText(Path.Combine(viewsDirectory, "_GlobalImport.cshtml")); var globalContent = File.ReadAllText(Path.Combine(viewsDirectory, "_GlobalImport.cshtml"));
var server = TestServer.Create(_services, _app);
var client = server.CreateClient();
// We will render a view that writes the fully qualified name of the Assembly containing the type of // We will render a view that writes the fully qualified name of the Assembly containing the type of
// the view. If the view is precompiled, this assembly will be PrecompilationWebsite. // the view. If the view is precompiled, this assembly will be PrecompilationWebsite.
var assemblyNamePrefix = GetAssemblyNamePrefix(); var assemblyNamePrefix = GetAssemblyNamePrefix();
@ -169,7 +170,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
@"Value set inside DNXCORE50 " + assemblyNamePrefix; @"Value set inside DNXCORE50 " + assemblyNamePrefix;
#endif #endif
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -185,10 +186,12 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var expected = GetAssemblyNamePrefix(); var expected = GetAssemblyNamePrefix();
var server = TestServer.Create(_services, _app); IServiceCollection serviceCollection = null;
var server = TestHelper.CreateServer(_app, SiteName, services => serviceCollection = services);
var client = server.CreateClient(); var client = server.CreateClient();
var applicationEnvironment = _services.GetRequiredService<IApplicationEnvironment>(); var serviceProvider = serviceCollection.BuildServiceProvider();
var applicationEnvironment = serviceProvider.GetRequiredService<IApplicationEnvironment>();
var viewsDirectory = Path.Combine(applicationEnvironment.ApplicationBasePath, var viewsDirectory = Path.Combine(applicationEnvironment.ApplicationBasePath,
"Views", "Views",
@ -226,7 +229,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
var expected = @"<root data-root=""true""><input class=""form-control"" type=""number"" data-val=""true""" + var expected = @"<root data-root=""true""><input class=""form-control"" type=""number"" data-val=""true""" +
@" data-val-range=""The field Age must be between 10 and 100."" data-val-range-max=""100"" "+ @" data-val-range=""The field Age must be between 10 and 100."" data-val-range-max=""100"" "+
@"data-val-range-min=""10"" id=""Age"" name=""Age"" value="""" /><a href="""">Back to List</a></root>"; @"data-val-range-min=""10"" id=""Age"" name=""Age"" value="""" /><a href="""">Back to List</a></root>";
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -244,7 +247,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Arrange // Arrange
var assemblyNamePrefix = GetAssemblyNamePrefix(); var assemblyNamePrefix = GetAssemblyNamePrefix();
var expected = @"<root>root-content</root>"; var expected = @"<root>root-content</root>";
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -297,6 +300,5 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public string Index { get; } public string Index { get; }
} }
} }
} }

View File

@ -5,7 +5,6 @@ using System;
using System.Net; using System.Net;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using RazorCompilerCacheWebSite; using RazorCompilerCacheWebSite;
using Xunit; using Xunit;
@ -13,14 +12,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class RazorCompilerCacheTest public class RazorCompilerCacheTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(RazorCompilerCacheWebSite)); private const string SiteName = nameof(RazorCompilerCacheWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task CompilerCache_IsNotInitializedUntilFirstViewRequest() public async Task CompilerCache_IsNotInitializedUntilFirstViewRequest()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.BaseAddress = new Uri("http://localhost"); client.BaseAddress = new Uri("http://localhost");

View File

@ -4,7 +4,6 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using RazorEmbeddedViewsWebSite; using RazorEmbeddedViewsWebSite;
using Xunit; using Xunit;
@ -12,7 +11,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class RazorEmbeddedViewsTest public class RazorEmbeddedViewsTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(RazorEmbeddedViewsWebSite)); private const string SiteName = nameof(RazorEmbeddedViewsWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
@ -20,7 +19,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var expectedMessage = "Hello test-user, this is /RazorEmbeddedViews_Home"; var expectedMessage = "Hello test-user, this is /RazorEmbeddedViews_Home";
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -35,7 +34,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var expectedMessage = "Hello admin-user, this is /Restricted/RazorEmbeddedViews_Admin/Login"; var expectedMessage = "Hello admin-user, this is /Restricted/RazorEmbeddedViews_Admin/Login";
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var target = "http://localhost/Restricted/RazorEmbeddedViews_Admin/Login?AdminUser=admin-user"; var target = "http://localhost/Restricted/RazorEmbeddedViews_Admin/Login?AdminUser=admin-user";

View File

@ -5,7 +5,6 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Microsoft.Framework.DependencyInjection; using Microsoft.Framework.DependencyInjection;
using RazorPageExecutionInstrumentationWebSite; using RazorPageExecutionInstrumentationWebSite;
using Xunit; using Xunit;
@ -14,7 +13,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class RazorPageExecutionInstrumentationTest public class RazorPageExecutionInstrumentationTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(RazorPageExecutionInstrumentationWebSite)); private const string SiteName = nameof(RazorPageExecutionInstrumentationWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
public static IEnumerable<object[]> InstrumentationData public static IEnumerable<object[]> InstrumentationData
@ -94,14 +93,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[Theory] [Theory]
[MemberData(nameof(InstrumentationData))] [MemberData(nameof(InstrumentationData))]
public async Task ViewsAreServedWithoutInstrumentationByDefault(string actionName, public async Task ViewsAreServedWithoutInstrumentationByDefault(
string expected, string actionName,
IEnumerable<Tuple<int, int, bool>> expectedLineMappings) string expected,
IEnumerable<Tuple<int, int, bool>> expectedLineMappings)
{ {
// Arrange // Arrange
var context = new TestPageExecutionContext(); var context = new TestPageExecutionContext();
var services = GetServiceProvider(context); var server = TestHelper.CreateServer(_app, SiteName, services => services.AddInstance(context));
var server = TestServer.Create(services, _app);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -114,14 +113,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[Theory] [Theory]
[MemberData(nameof(InstrumentationData))] [MemberData(nameof(InstrumentationData))]
public async Task ViewsAreInstrumentedWhenPageExecutionListenerFeatureIsEnabled(string actionName, public async Task ViewsAreInstrumentedWhenPageExecutionListenerFeatureIsEnabled(
string expected, string actionName,
IEnumerable<Tuple<int, int, bool>> expectedLineMappings) string expected,
IEnumerable<Tuple<int, int, bool>> expectedLineMappings)
{ {
// Arrange // Arrange
var context = new TestPageExecutionContext(); var context = new TestPageExecutionContext();
var services = GetServiceProvider(context); var server = TestHelper.CreateServer(_app, SiteName, services => services.AddInstance(context));
var server = TestServer.Create(services, _app);
var client = server.CreateClient(); var client = server.CreateClient();
client.DefaultRequestHeaders.Add("ENABLE-RAZOR-INSTRUMENTATION", "true"); client.DefaultRequestHeaders.Add("ENABLE-RAZOR-INSTRUMENTATION", "true");
@ -135,14 +134,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[Theory] [Theory]
[MemberData(nameof(InstrumentationData))] [MemberData(nameof(InstrumentationData))]
public async Task ViewsCanSwitchFromRegularToInstrumented(string actionName, public async Task ViewsCanSwitchFromRegularToInstrumented(
string expected, string actionName,
IEnumerable<Tuple<int, int, bool>> expectedLineMappings) string expected,
IEnumerable<Tuple<int, int, bool>> expectedLineMappings)
{ {
// Arrange - 1 // Arrange - 1
var context = new TestPageExecutionContext(); var context = new TestPageExecutionContext();
var services = GetServiceProvider(context); var server = TestHelper.CreateServer(_app, SiteName, services => services.AddInstance(context));
var server = TestServer.Create(services, _app);
var client = server.CreateClient(); var client = server.CreateClient();
// Act - 1 // Act - 1
@ -184,8 +183,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
Tuple.Create(35, 8, true), Tuple.Create(35, 8, true),
}; };
var context = new TestPageExecutionContext(); var context = new TestPageExecutionContext();
var services = GetServiceProvider(context); var server = TestHelper.CreateServer(_app, SiteName, services => services.AddInstance(context));
var server = TestServer.Create(services, _app);
var client = server.CreateClient(); var client = server.CreateClient();
// Act - 1 // Act - 1
@ -203,12 +201,5 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Assert - 2 // Assert - 2
Assert.Equal(expectedLineMappings, context.Values); Assert.Equal(expectedLineMappings, context.Values);
} }
private IServiceProvider GetServiceProvider(TestPageExecutionContext pageExecutionContext)
{
var services = new ServiceCollection();
services.AddInstance(pageExecutionContext);
return TestHelper.CreateServices(nameof(RazorPageExecutionInstrumentationWebSite), services);
}
} }
} }

View File

@ -4,7 +4,6 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using RazorWebSite; using RazorWebSite;
using Xunit; using Xunit;
@ -13,7 +12,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public class RazorViewLocationSpecificationTest public class RazorViewLocationSpecificationTest
{ {
private const string BaseUrl = "http://localhost/ViewNameSpecification_Home/"; private const string BaseUrl = "http://localhost/ViewNameSpecification_Home/";
private readonly IServiceProvider _provider = TestHelper.CreateServices("RazorWebSite"); private const string SiteName = nameof(RazorWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Theory] [Theory]
@ -27,7 +26,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
@"<layout> @"<layout>
_ViewStart that specifies partial Layout _ViewStart that specifies partial Layout
</layout>"; </layout>";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -48,7 +47,7 @@ _ViewStart that specifies partial Layout
@"<non-shared> @"<non-shared>
Layout specified in page Layout specified in page
</non-shared>"; </non-shared>";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -67,7 +66,7 @@ Layout specified in page
@"<non-shared> @"<non-shared>
Page With Non Partial Layout Page With Non Partial Layout
</non-shared>"; </non-shared>";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -89,7 +88,7 @@ Page With Non Partial Layout
Non Shared Partial Non Shared Partial
</layout>"; </layout>";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -8,16 +8,15 @@ using System.Net.Http;
using System.Reflection; using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class RemoteAttributeValidationTest public class RemoteAttributeValidationTest
{ {
private const string SiteName = nameof(ValidationWebSite);
private static readonly Assembly _resourcesAssembly = private static readonly Assembly _resourcesAssembly =
typeof(RemoteAttributeValidationTest).GetTypeInfo().Assembly; typeof(RemoteAttributeValidationTest).GetTypeInfo().Assembly;
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(ValidationWebSite));
private readonly Action<IApplicationBuilder> _app = new ValidationWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new ValidationWebSite.Startup().Configure;
[Theory] [Theory]
@ -26,7 +25,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task RemoteAttribute_LeadsToExpectedValidationAttributes(string areaName, string pathSegment) public async Task RemoteAttribute_LeadsToExpectedValidationAttributes(string areaName, string pathSegment)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContent = await _resourcesAssembly.ReadResourceAsStringAsync( var expectedContent = await _resourcesAssembly.ReadResourceAsStringAsync(
"compiler/resources/ValidationWebSite." + areaName + ".RemoteAttribute_Home.Create.html"); "compiler/resources/ValidationWebSite." + areaName + ".RemoteAttribute_Home.Create.html");
@ -53,7 +52,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
string expectedContent) string expectedContent)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost" + pathSegment + var url = "http://localhost" + pathSegment +
"/RemoteAttribute_Verify/IsIdAvailable?UserId1=Joe1&UserId2=Joe2&UserId3=Joe3&UserId4=Joe4"; "/RemoteAttribute_Verify/IsIdAvailable?UserId1=Joe1&UserId2=Joe2&UserId3=Joe3&UserId4=Joe4";
@ -77,7 +76,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
string expectedContent) string expectedContent)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost" + pathSegment + "/RemoteAttribute_Verify/IsIdAvailable"; var url = "http://localhost" + pathSegment + "/RemoteAttribute_Verify/IsIdAvailable";
var contentDictionary = new Dictionary<string, string> var contentDictionary = new Dictionary<string, string>

View File

@ -6,7 +6,6 @@ using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
@ -15,7 +14,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// PER-REQUEST and does not linger around to impact the next request. // PER-REQUEST and does not linger around to impact the next request.
public class RequestServicesTest public class RequestServicesTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(RequestServicesWebSite)); private const string SiteName = nameof(RequestServicesWebSite);
private readonly Action<IApplicationBuilder> _app = new RequestServicesWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new RequestServicesWebSite.Startup().Configure;
[Theory] [Theory]
@ -28,7 +27,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task RequestServices(string url) public async Task RequestServices(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act & Assert // Act & Assert
@ -49,7 +48,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task RequestServices_TagHelper() public async Task RequestServices_TagHelper()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/Other/FromTagHelper"; var url = "http://localhost/Other/FromTagHelper";
@ -74,7 +73,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task RequestServices_ActionConstraint() public async Task RequestServices_ActionConstraint()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/Other/FromActionConstraint"; var url = "http://localhost/Other/FromActionConstraint";

View File

@ -8,14 +8,13 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Mvc.Xml; using Microsoft.AspNet.Mvc.Xml;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class RespectBrowserAcceptHeaderTests public class RespectBrowserAcceptHeaderTests
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(FormatterWebSite)); private const string SiteName = nameof(FormatterWebSite);
private readonly Action<IApplicationBuilder> _app = new FormatterWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new FormatterWebSite.Startup().Configure;
[Theory] [Theory]
@ -24,7 +23,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AllMediaRangeAcceptHeader_FirstFormatterInListWritesResponse(string acceptHeader) public async Task AllMediaRangeAcceptHeader_FirstFormatterInListWritesResponse(string acceptHeader)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.DefaultRequestHeaders.Add("Accept", acceptHeader); client.DefaultRequestHeaders.Add("Accept", acceptHeader);
@ -46,7 +45,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AllMediaRangeAcceptHeader_ProducesAttributeIsHonored(string acceptHeader) public async Task AllMediaRangeAcceptHeader_ProducesAttributeIsHonored(string acceptHeader)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.DefaultRequestHeaders.Add("Accept", acceptHeader); client.DefaultRequestHeaders.Add("Accept", acceptHeader);
var expectedResponseData = "<RespectBrowserAcceptHeaderController.Employee xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"" + var expectedResponseData = "<RespectBrowserAcceptHeaderController.Employee xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"" +
@ -71,7 +70,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AllMediaRangeAcceptHeader_WithContentTypeHeader_ContentTypeIsHonored(string acceptHeader) public async Task AllMediaRangeAcceptHeader_WithContentTypeHeader_ContentTypeIsHonored(string acceptHeader)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.DefaultRequestHeaders.Add("Accept", acceptHeader); client.DefaultRequestHeaders.Add("Accept", acceptHeader);
var requestData = "<RespectBrowserAcceptHeaderController.Employee xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"" + var requestData = "<RespectBrowserAcceptHeaderController.Employee xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"" +

View File

@ -5,7 +5,6 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using ResponseCacheWebSite; using ResponseCacheWebSite;
using Xunit; using Xunit;
@ -13,14 +12,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ResponseCacheTest public class ResponseCacheTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices("ResponseCacheWebSite"); private const string SiteName = nameof(ResponseCacheWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task ResponseCache_SetsAllHeaders() public async Task ResponseCache_SetsAllHeaders()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -49,7 +48,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ResponseCache_SetsDifferentCacheControlHeaders(string url, string expected) public async Task ResponseCache_SetsDifferentCacheControlHeaders(string url, string expected)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -64,7 +63,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task SetsHeadersForAllActionsOfClass() public async Task SetsHeadersForAllActionsOfClass()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -87,7 +86,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task HeadersSetInActionOverridesTheOnesInClass() public async Task HeadersSetInActionOverridesTheOnesInClass()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -102,7 +101,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task HeadersToNotCacheAParticularAction() public async Task HeadersToNotCacheAParticularAction()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -117,7 +116,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ClassLevelHeadersAreUnsetByActionLevelHeaders() public async Task ClassLevelHeadersAreUnsetByActionLevelHeaders()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -137,7 +136,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task SetsCacheControlPublicByDefault() public async Task SetsCacheControlPublicByDefault()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -152,7 +151,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ThrowsWhenDurationIsNotSet() public async Task ThrowsWhenDurationIsNotSet()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act & Assert // Act & Assert
@ -168,7 +167,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ResponseCache_SetsAllHeaders_FromCacheProfile() public async Task ResponseCache_SetsAllHeaders_FromCacheProfile()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -183,7 +182,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ResponseCache_SetsAllHeaders_ChosesTheRightProfile() public async Task ResponseCache_SetsAllHeaders_ChosesTheRightProfile()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -198,7 +197,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ResponseCache_SetsNoCacheHeaders() public async Task ResponseCache_SetsNoCacheHeaders()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -215,7 +214,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ResponseCache_AddsHeaders() public async Task ResponseCache_AddsHeaders()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -232,7 +231,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ResponseCache_ModifiesHeaders() public async Task ResponseCache_ModifiesHeaders()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -247,7 +246,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ResponseCacheAttribute_OnAction_OverridesTheValuesOnClass() public async Task ResponseCacheAttribute_OnAction_OverridesTheValuesOnClass()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -6,7 +6,6 @@ using System.Collections.Generic;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using ModelBindingWebSite; using ModelBindingWebSite;
using ModelBindingWebSite.Models; using ModelBindingWebSite.Models;
using Newtonsoft.Json; using Newtonsoft.Json;
@ -24,7 +23,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
/// </summary> /// </summary>
public class RoundTripTests public class RoundTripTests
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices("ModelBindingWebSite"); private const string SiteName = nameof(ModelBindingWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
// Uses the expression p => p.Name // Uses the expression p => p.Name
@ -33,7 +32,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var expected = "test-name"; var expected = "test-name";
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -55,7 +54,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var expected = 40; var expected = 40;
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -77,7 +76,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var expected = 12; var expected = 12;
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -98,7 +97,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task RoundTrippedValues_GetsModelBound_ForStringIndexedProperties() public async Task RoundTrippedValues_GetsModelBound_ForStringIndexedProperties()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -115,7 +114,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var expected = "test-nested-name"; var expected = "test-nested-name";
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -9,7 +9,6 @@ using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Mvc.Routing; using Microsoft.AspNet.Mvc.Routing;
using Microsoft.AspNet.Routing; using Microsoft.AspNet.Routing;
using Microsoft.AspNet.Routing.Template; using Microsoft.AspNet.Routing.Template;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -17,14 +16,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class RouteDataTest public class RouteDataTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(BasicWebSite)); private const string SiteName = nameof(BasicWebSite);
private readonly Action<IApplicationBuilder> _app = new BasicWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new BasicWebSite.Startup().Configure;
[Fact] [Fact]
public async Task RouteData_Routers_ConventionalRoute() public async Task RouteData_Routers_ConventionalRoute()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -49,7 +48,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task RouteData_Routers_AttributeRoute() public async Task RouteData_Routers_AttributeRoute()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -79,7 +78,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task RouteData_DataTokens_FilterCanSetDataTokens() public async Task RouteData_DataTokens_FilterCanSetDataTokens()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var response = await client.GetAsync("http://localhost/Routing/DataTokens"); var response = await client.GetAsync("http://localhost/Routing/DataTokens");

View File

@ -5,15 +5,15 @@ using System;
using System.Net; using System.Net;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class RoutingLowercaseUrlTest public class RoutingLowercaseUrlTest
{ {
private const string SiteName = nameof(LowercaseUrlsWebSite);
// This website sets the generation of lowercase URLs to true // This website sets the generation of lowercase URLs to true
private readonly IServiceProvider _services = TestHelper.CreateServices("LowercaseUrlsWebSite");
private readonly Action<IApplicationBuilder> _app = new LowercaseUrlsWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new LowercaseUrlsWebSite.Startup().Configure;
[Theory] [Theory]
@ -34,7 +34,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task GenerateLowerCaseUrlsTests(string path, string expectedUrl) public async Task GenerateLowerCaseUrlsTests(string path, string expectedUrl)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -9,7 +9,6 @@ using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Routing; using Microsoft.AspNet.Routing;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -17,14 +16,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class RoutingTests public class RoutingTests
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices("RoutingWebSite"); private const string SiteName = nameof(RoutingWebSite);
private readonly Action<IApplicationBuilder> _app = new RoutingWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new RoutingWebSite.Startup().Configure;
[Fact] [Fact]
public async Task ConventionRoutedController_ActionIsReachable() public async Task ConventionRoutedController_ActionIsReachable()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -52,7 +51,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ConventionRoutedController_ActionIsReachable_WithDefaults() public async Task ConventionRoutedController_ActionIsReachable_WithDefaults()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -80,7 +79,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ConventionRoutedController_NonActionIsNotReachable() public async Task ConventionRoutedController_NonActionIsNotReachable()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -94,7 +93,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ConventionRoutedController_InArea_ActionIsReachable() public async Task ConventionRoutedController_InArea_ActionIsReachable()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -123,7 +122,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ConventionRoutedController_InArea_ActionBlockedByHttpMethod() public async Task ConventionRoutedController_InArea_ActionBlockedByHttpMethod()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -137,7 +136,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_IsReachable() public async Task AttributeRoutedAction_IsReachable()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -168,7 +167,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_MultipleRouteAttributes_WorksWithNameAndOrder(string url) public async Task AttributeRoutedAction_MultipleRouteAttributes_WorksWithNameAndOrder(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -197,7 +196,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var url = "http://localhost/api/v2/Maps"; var url = "http://localhost/api/v2/Maps";
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -225,7 +224,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
// Arrange // Arrange
var url = "http://localhost/api/v1/Maps"; var url = "http://localhost/api/v1/Maps";
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -245,7 +244,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
string method) string method)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -274,7 +273,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_MultipleHttpAttributesAndTokenReplacement(string url) public async Task AttributeRoutedAction_MultipleHttpAttributesAndTokenReplacement(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedUrl = new Uri(url).AbsolutePath; var expectedUrl = new Uri(url).AbsolutePath;
@ -308,7 +307,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
string method) string method)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedUrl = new Uri(url).AbsolutePath; var expectedUrl = new Uri(url).AbsolutePath;
@ -324,7 +323,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_IsNotReachableWithTraditionalRoute() public async Task AttributeRoutedAction_IsNotReachableWithTraditionalRoute()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -340,7 +339,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_TriedBeforeConventionRouting() public async Task AttributeRoutedAction_TriedBeforeConventionRouting()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -361,7 +360,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_ControllerLevelRoute_WithActionParameter_IsReachable() public async Task AttributeRoutedAction_ControllerLevelRoute_WithActionParameter_IsReachable()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -395,7 +394,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_ControllerLevelRoute_IsReachable() public async Task AttributeRoutedAction_ControllerLevelRoute_IsReachable()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -424,7 +423,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_RouteAttributeOnAction_IsReachable(string method) public async Task AttributeRoutedAction_RouteAttributeOnAction_IsReachable(string method)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var message = new HttpRequestMessage(new HttpMethod(method), "http://localhost/Store/Shop/Orders"); var message = new HttpRequestMessage(new HttpMethod(method), "http://localhost/Store/Shop/Orders");
@ -451,7 +450,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_RouteAttributeOnActionAndController_IsReachable(string method) public async Task AttributeRoutedAction_RouteAttributeOnActionAndController_IsReachable(string method)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var message = new HttpRequestMessage(new HttpMethod(method), "http://localhost/api/Employee/5/Salary"); var message = new HttpRequestMessage(new HttpMethod(method), "http://localhost/api/Employee/5/Salary");
@ -473,7 +472,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_RouteAttributeOnActionAndHttpGetOnDifferentAction_ReachesHttpGetAction() public async Task AttributeRoutedAction_RouteAttributeOnActionAndHttpGetOnDifferentAction_ReachesHttpGetAction()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var message = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Store/Shop/Orders"); var message = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Store/Shop/Orders");
@ -498,7 +497,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_ControllerLevelRoute_WithAcceptVerbs_IsReachable(string verb) public async Task AttributeRoutedAction_ControllerLevelRoute_WithAcceptVerbs_IsReachable(string verb)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -522,7 +521,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_ControllerLevelRoute_WithAcceptVerbsAndRouteTemplate_IsReachable(string verb) public async Task AttributeRoutedAction_ControllerLevelRoute_WithAcceptVerbsAndRouteTemplate_IsReachable(string verb)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -548,7 +547,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_AcceptVerbsAndRouteTemplate_IsReachable(string verb, string path) public async Task AttributeRoutedAction_AcceptVerbsAndRouteTemplate_IsReachable(string verb, string path)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedUrl = "/Bank"; var expectedUrl = "/Bank";
@ -571,7 +570,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_WithCustomHttpAttributes_IsReachable() public async Task AttributeRoutedAction_WithCustomHttpAttributes_IsReachable()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -597,7 +596,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_ControllerLevelRoute_CombinedWithActionRoute_IsReachable(string verb, string action) public async Task AttributeRoutedAction_ControllerLevelRoute_CombinedWithActionRoute_IsReachable(string verb, string action)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -623,7 +622,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_ActionLevelRouteWithTildeSlash_OverridesControllerLevelRoute() public async Task AttributeRoutedAction_ActionLevelRouteWithTildeSlash_OverridesControllerLevelRoute()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -648,7 +647,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_OverrideActionOverridesOrderOnController() public async Task AttributeRoutedAction_OverrideActionOverridesOrderOnController()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -673,7 +672,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_OrderOnActionOverridesOrderOnController() public async Task AttributeRoutedAction_OrderOnActionOverridesOrderOnController()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -694,7 +693,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_LinkGeneration_OverrideActionOverridesOrderOnController() public async Task AttributeRoutedAction_LinkGeneration_OverrideActionOverridesOrderOnController()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -709,7 +708,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_LinkGeneration_OrderOnActionOverridesOrderOnController() public async Task AttributeRoutedAction_LinkGeneration_OrderOnActionOverridesOrderOnController()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -724,7 +723,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_LinkToSelf() public async Task AttributeRoutedAction_LinkToSelf()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -747,7 +746,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_LinkWithAmbientController() public async Task AttributeRoutedAction_LinkWithAmbientController()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -770,7 +769,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_LinkToAttributeRoutedController() public async Task AttributeRoutedAction_LinkToAttributeRoutedController()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -794,7 +793,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_LinkToConventionalController() public async Task AttributeRoutedAction_LinkToConventionalController()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -819,7 +818,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_LinkWithName_WithNameInheritedFromControllerRoute(string method, string actionName) public async Task AttributeRoutedAction_LinkWithName_WithNameInheritedFromControllerRoute(string method, string actionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -843,7 +842,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_LinkWithName_WithNameOverrridenFromController() public async Task AttributeRoutedAction_LinkWithName_WithNameOverrridenFromController()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -866,7 +865,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_Link_WithNonEmptyActionRouteTemplateAndNoActionRouteName() public async Task AttributeRoutedAction_Link_WithNonEmptyActionRouteTemplateAndNoActionRouteName()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = LinkFrom("http://localhost") var url = LinkFrom("http://localhost")
@ -892,7 +891,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_LinkWithName_WithNonEmptyActionRouteTemplateAndActionRouteName() public async Task AttributeRoutedAction_LinkWithName_WithNonEmptyActionRouteTemplateAndActionRouteName()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -919,7 +918,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_ThowsIfConventionalRouteWithTheSameName(string url) public async Task AttributeRoutedAction_ThowsIfConventionalRouteWithTheSameName(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedMessage = "The supplied route name 'DuplicateRoute' is ambiguous and matched more than one route."; var expectedMessage = "The supplied route name 'DuplicateRoute' is ambiguous and matched more than one route.";
@ -936,7 +935,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ConventionalRoutedAction_LinkToArea() public async Task ConventionalRoutedAction_LinkToArea()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -960,7 +959,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ConventionalRoutedAction_InArea_ImplicitLinkToArea() public async Task ConventionalRoutedAction_InArea_ImplicitLinkToArea()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -983,7 +982,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ConventionalRoutedAction_InArea_ExplicitLeaveArea() public async Task ConventionalRoutedAction_InArea_ExplicitLeaveArea()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1006,7 +1005,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ConventionalRoutedAction_InArea_ImplicitLeaveArea() public async Task ConventionalRoutedAction_InArea_ImplicitLeaveArea()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1029,7 +1028,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_LinkToArea() public async Task AttributeRoutedAction_LinkToArea()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1053,7 +1052,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_InArea_ImplicitLinkToArea() public async Task AttributeRoutedAction_InArea_ImplicitLinkToArea()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1076,7 +1075,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_InArea_ExplicitLeaveArea() public async Task AttributeRoutedAction_InArea_ExplicitLeaveArea()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1100,7 +1099,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_InArea_ImplicitLeaveArea() public async Task AttributeRoutedAction_InArea_ImplicitLeaveArea()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1124,7 +1123,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_InArea_LinkToConventionalRoutedActionInArea() public async Task AttributeRoutedAction_InArea_LinkToConventionalRoutedActionInArea()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1149,7 +1148,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ConventionalRoutedAction_InArea_LinkToAttributeRoutedActionInArea() public async Task ConventionalRoutedAction_InArea_LinkToAttributeRoutedActionInArea()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1174,7 +1173,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ConventionalRoutedAction_InArea_LinkToAnotherArea() public async Task ConventionalRoutedAction_InArea_LinkToAnotherArea()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1199,7 +1198,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_InArea_LinkToAnotherArea() public async Task AttributeRoutedAction_InArea_LinkToAnotherArea()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1224,7 +1223,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ControllerWithCatchAll_CanReachSpecificCountry() public async Task ControllerWithCatchAll_CanReachSpecificCountry()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1254,7 +1253,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ControllerWithCatchAll_CannotReachWithoutCountry() public async Task ControllerWithCatchAll_CannotReachWithoutCountry()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1268,7 +1267,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ControllerWithCatchAll_GenerateLinkForSpecificCountry() public async Task ControllerWithCatchAll_GenerateLinkForSpecificCountry()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1288,7 +1287,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ControllerWithCatchAll_GenerateLinkForFallback() public async Task ControllerWithCatchAll_GenerateLinkForFallback()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1308,7 +1307,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ControllerWithCatchAll_GenerateLink_FailsWithoutCountry() public async Task ControllerWithCatchAll_GenerateLink_FailsWithoutCountry()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -1333,7 +1332,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRouting_MixedAcceptVerbsAndRoute_Reachable(string path, string verb, string actionName) public async Task AttributeRouting_MixedAcceptVerbsAndRoute_Reachable(string path, string verb, string actionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(new HttpMethod(verb), "http://localhost" + path); var request = new HttpRequestMessage(new HttpMethod(verb), "http://localhost" + path);
@ -1360,7 +1359,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRouting_MixedAcceptVerbsAndRoute_Unreachable(string path, string verb) public async Task AttributeRouting_MixedAcceptVerbsAndRoute_Unreachable(string path, string verb)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(new HttpMethod(verb), "http://localhost" + path); var request = new HttpRequestMessage(new HttpMethod(verb), "http://localhost" + path);

View File

@ -9,14 +9,13 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Mvc.Xml; using Microsoft.AspNet.Mvc.Xml;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class SerializableErrorTests public class SerializableErrorTests
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(XmlFormattersWebSite)); private const string SiteName = nameof(XmlFormattersWebSite);
private readonly Action<IApplicationBuilder> _app = new XmlFormattersWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new XmlFormattersWebSite.Startup().Configure;
[Theory] [Theory]
@ -27,7 +26,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ModelStateErrors_AreSerialized(string acceptHeader) public async Task ModelStateErrors_AreSerialized(string acceptHeader)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(acceptHeader)); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(acceptHeader));
var expectedXml = "<Error><key1>key1-error</key1><key2>The input was not valid.</key2></Error>"; var expectedXml = "<Error><key1>key1-error</key1><key2>The input was not valid.</key2></Error>";
@ -52,7 +51,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task PostedSerializableError_IsBound(string acceptHeader) public async Task PostedSerializableError_IsBound(string acceptHeader)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(acceptHeader)); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(acceptHeader));
var expectedXml = "<Error><key1>key1-error</key1><key2>The input was not valid.</key2></Error>"; var expectedXml = "<Error><key1>key1-error</key1><key2>The input was not valid.</key2></Error>";
@ -76,7 +75,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task IsReturnedInExpectedFormat(string acceptHeader) public async Task IsReturnedInExpectedFormat(string acceptHeader)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + var input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<Employee xmlns=\"http://schemas.datacontract.org/2004/07/XmlFormattersWebSite.Models\">" + "<Employee xmlns=\"http://schemas.datacontract.org/2004/07/XmlFormattersWebSite.Models\">" +

View File

@ -5,14 +5,13 @@ using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using FormatterWebSite; using FormatterWebSite;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class StreamOutputFormatterTest public class StreamOutputFormatterTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(FormatterWebSite)); private const string SiteName = nameof(FormatterWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Theory] [Theory]
@ -24,7 +23,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task StreamOutputFormatter_ReturnsAppropriateContentAndContentType(string actionName, string contentType) public async Task StreamOutputFormatter_ReturnsAppropriateContentAndContentType(string actionName, string contentType)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -7,7 +7,6 @@ using System.IO;
using System.Net; using System.Net;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Microsoft.Framework.Logging; using Microsoft.Framework.Logging;
using Xunit; using Xunit;
@ -15,6 +14,11 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class TagHelperSampleTest public class TagHelperSampleTest
{ {
private const string SiteName = nameof(TagHelperSample) + "." + nameof(TagHelperSample.Web);
// Path relative to Mvc\\test\Microsoft.AspNet.Mvc.FunctionalTests
private readonly static string SamplesFolder = Path.Combine("..", "..", "samples");
private static readonly List<string> Paths = new List<string> private static readonly List<string> Paths = new List<string>
{ {
string.Empty, string.Empty,
@ -33,30 +37,24 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
}; };
private readonly ILoggerFactory _loggerFactory = new TestLoggerFactory(); private readonly ILoggerFactory _loggerFactory = new TestLoggerFactory();
// Path relative to Mvc\\test\Microsoft.AspNet.Mvc.FunctionalTests
private readonly IServiceProvider _services =
TestHelper.CreateServices("TagHelperSample.Web", Path.Combine("..", "..", "samples"));
private readonly Action<IApplicationBuilder, ILoggerFactory> _app = new TagHelperSample.Web.Startup().Configure; private readonly Action<IApplicationBuilder, ILoggerFactory> _app = new TagHelperSample.Web.Startup().Configure;
[Fact] [Fact]
public async Task Home_Pages_ReturnSuccess() public async Task Home_Pages_ReturnSuccess()
{ {
using (TestHelper.ReplaceCallContextServiceLocationService(_services)) // Arrange
var server = TestHelper.CreateServer(app => _app(app, _loggerFactory), SiteName, SamplesFolder);
var client = server.CreateClient();
for (var index = 0; index < Paths.Count; index++)
{ {
// Arrange // Act
var server = TestServer.Create(_services, app => _app(app, _loggerFactory)); var path = Paths[index];
var client = server.CreateClient(); var response = await client.GetAsync("http://localhost" + path);
for (var index = 0; index < Paths.Count; index++) // Assert
{ Assert.NotNull(response);
// Act Assert.Equal(HttpStatusCode.OK, response.StatusCode);
var path = Paths[index];
var response = await client.GetAsync("http://localhost" + path);
// Assert
Assert.NotNull(response);
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
}
} }
} }
@ -89,7 +87,6 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public void Log(LogLevel logLevel, int eventId, object state, Exception exception, Func<object, Exception, string> formatter) public void Log(LogLevel logLevel, int eventId, object state, Exception exception, Func<object, Exception, string> formatter)
{ {
} }
} }
@ -97,7 +94,6 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public void Dispose() public void Dispose()
{ {
} }
} }
} }

View File

@ -10,14 +10,13 @@ using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
using BasicWebSite; using BasicWebSite;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class TagHelpersTests public class TagHelpersTests
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices("TagHelpersWebSite"); private const string SiteName = nameof(TagHelpersWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
// Some tests require comparing the actual response body against an expected response baseline // Some tests require comparing the actual response body against an expected response baseline
@ -33,7 +32,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanRenderViewsWithTagHelpers(string action) public async Task CanRenderViewsWithTagHelpers(string action)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedMediaType = MediaTypeHeaderValue.Parse("text/html; charset=utf-8"); var expectedMediaType = MediaTypeHeaderValue.Parse("text/html; charset=utf-8");
@ -88,7 +87,7 @@ page:<root/>
public async Task TagHelpersAreInheritedFromViewStartPages(string action, string expected) public async Task TagHelpersAreInheritedFromViewStartPages(string action, string expected)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -102,7 +101,7 @@ page:<root/>
public async Task ViewsWithModelMetadataAttributes_CanRenderForm() public async Task ViewsWithModelMetadataAttributes_CanRenderForm()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContent = await _resourcesAssembly.ReadResourceAsStringAsync( var expectedContent = await _resourcesAssembly.ReadResourceAsStringAsync(
"compiler/resources/TagHelpersWebSite.Employee.Create.html"); "compiler/resources/TagHelpersWebSite.Employee.Create.html");
@ -120,7 +119,7 @@ page:<root/>
public async Task ViewsWithModelMetadataAttributes_CanRenderPostedValue() public async Task ViewsWithModelMetadataAttributes_CanRenderPostedValue()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContent = await _resourcesAssembly.ReadResourceAsStringAsync( var expectedContent = await _resourcesAssembly.ReadResourceAsStringAsync(
"compiler/resources/TagHelpersWebSite.Employee.Details.AfterCreate.html"); "compiler/resources/TagHelpersWebSite.Employee.Details.AfterCreate.html");
@ -148,7 +147,7 @@ page:<root/>
public async Task ViewsWithModelMetadataAttributes_CanHandleInvalidData() public async Task ViewsWithModelMetadataAttributes_CanHandleInvalidData()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedContent = await _resourcesAssembly.ReadResourceAsStringAsync( var expectedContent = await _resourcesAssembly.ReadResourceAsStringAsync(
"compiler/resources/TagHelpersWebSite.Employee.Create.Invalid.html"); "compiler/resources/TagHelpersWebSite.Employee.Create.Invalid.html");

View File

@ -7,25 +7,24 @@ using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class TempDataTest public class TempDataTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices("TempDataWebSite"); private const string SiteName = nameof(TempDataWebSite);
private readonly Action<IApplicationBuilder> _app = new TempDataWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new TempDataWebSite.Startup().Configure;
[Fact] [Fact]
public async Task ViewRendersTempData() public async Task ViewRendersTempData()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var nameValueCollection = new List<KeyValuePair<string, string>> var nameValueCollection = new List<KeyValuePair<string, string>>
{ {
new KeyValuePair<string,string>("value", "Foo"), new KeyValuePair<string, string>("value", "Foo"),
}; };
var content = new FormUrlEncodedContent(nameValueCollection); var content = new FormUrlEncodedContent(nameValueCollection);

View File

@ -1,25 +0,0 @@
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Collections.Generic;
using System.Reflection;
namespace Microsoft.AspNet.Mvc.FunctionalTests
{
/// <summary>
/// Limits MVC to use a single Assembly for controller discovery.
/// </summary>
/// <remarks>
/// This is a generic type because it needs to instantiated by a service provider to replace
/// a built-in MVC service.
/// </remarks>
public class TestAssemblyProvider<T> : IAssemblyProvider
{
public TestAssemblyProvider()
{
CandidateAssemblies = new Assembly[] { typeof(T).GetTypeInfo().Assembly };
}
public IEnumerable<Assembly> CandidateAssemblies { get; private set; }
}
}

View File

@ -1,18 +0,0 @@
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using Microsoft.Framework.ConfigurationModel;
namespace Microsoft.AspNet.Mvc.FunctionalTests
{
public class TestConfigurationProvider : ITestConfigurationProvider
{
public TestConfigurationProvider()
{
Configuration = new Configuration();
Configuration.Add(new MemoryConfigurationSource());
}
public Configuration Configuration { get; set; }
}
}

View File

@ -2,16 +2,13 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System; using System;
using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq;
using System.Reflection; using System.Reflection;
using Microsoft.AspNet.Hosting; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Microsoft.Framework.DependencyInjection; using Microsoft.Framework.DependencyInjection;
using Microsoft.Framework.DependencyInjection.ServiceLookup;
using Microsoft.Framework.Logging; using Microsoft.Framework.Logging;
using Microsoft.Framework.Runtime; using Microsoft.Framework.Runtime;
using Microsoft.Framework.Runtime.Infrastructure;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
@ -20,128 +17,106 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
// Path from Mvc\\test\\Microsoft.AspNet.Mvc.FunctionalTests // Path from Mvc\\test\\Microsoft.AspNet.Mvc.FunctionalTests
private static readonly string WebsitesDirectoryPath = Path.Combine("..", "WebSites"); private static readonly string WebsitesDirectoryPath = Path.Combine("..", "WebSites");
public static IServiceProvider CreateServices(string applicationWebSiteName, IServiceCollection newServices = null) public static TestServer CreateServer(Action<IApplicationBuilder> builder, string applicationWebSiteName)
{ {
return CreateServices(applicationWebSiteName, WebsitesDirectoryPath, newServices); return CreateServer(builder, applicationWebSiteName, applicationPath: null);
} }
public static IServiceProvider CreateServices(string applicationWebSiteName, string applicationPath, IServiceCollection newServices = null) public static TestServer CreateServer(
Action<IApplicationBuilder> builder,
string applicationWebSiteName,
string applicationPath)
{ {
var originalProvider = CallContextServiceLocator.Locator.ServiceProvider; return CreateServer(builder, applicationWebSiteName, applicationPath, configureServices: null);
var appEnvironment = originalProvider.GetRequiredService<IApplicationEnvironment>(); }
public static TestServer CreateServer(
Action<IApplicationBuilder> builder,
string applicationWebSiteName,
Action<IServiceCollection> configureServices)
{
return CreateServer(
builder,
applicationWebSiteName,
applicationPath: null,
configureServices: configureServices);
}
private static TestServer CreateServer(
Action<IApplicationBuilder> builder,
string applicationWebSiteName,
string applicationPath,
Action<IServiceCollection> configureServices)
{
return TestServer.Create(
builder,
services => AddServices(services, applicationWebSiteName, applicationPath, configureServices));
}
private static void AddServices(
IServiceCollection services,
string applicationWebSiteName,
string applicationPath,
Action<IServiceCollection> configureServices)
{
applicationPath = applicationPath ?? WebsitesDirectoryPath;
// Get current IApplicationEnvironment; likely added by the host.
var provider = services.BuildServiceProvider();
var originalEnvironment = provider.GetRequiredService<IApplicationEnvironment>();
// When an application executes in a regular context, the application base path points to the root // When an application executes in a regular context, the application base path points to the root
// directory where the application is located, for example MvcSample.Web. However, when executing // directory where the application is located, for example MvcSample.Web. However, when executing
// an aplication as part of a test, the ApplicationBasePath of the IApplicationEnvironment points // an application as part of a test, the ApplicationBasePath of the IApplicationEnvironment points
// to the root folder of the test project. // to the root folder of the test project.
// To compensate for this, we need to calculate the original path and override the application // To compensate for this, we need to calculate the original path and override the application
// environment value so that components like the view engine work properly in the context of the // environment value so that components like the view engine work properly in the context of the
// test. // test.
var appBasePath = CalculateApplicationBasePath(appEnvironment, applicationWebSiteName, applicationPath); var applicationBasePath = CalculateApplicationBasePath(
originalEnvironment,
applicationWebSiteName,
applicationPath);
var environment = new TestApplicationEnvironment(
originalEnvironment,
applicationBasePath,
applicationWebSiteName);
services.AddInstance<IApplicationEnvironment>(environment);
var services = new ServiceCollection(); // Injecting a custom assembly provider. Overrides AddMvc() because that uses TryAdd().
services.AddInstance( var assemblyProvider = CreateAssemblyProvider(applicationWebSiteName);
typeof(IApplicationEnvironment), services.AddInstance<IAssemblyProvider>(assemblyProvider);
new TestApplicationEnvironment(appEnvironment, appBasePath, applicationWebSiteName));
// Injecting a custom assembly provider via configuration setting. It's not good enough to just if (configureServices != null)
// add the service directly since it's registered by MVC.
var providerType = CreateAssemblyProviderType(applicationWebSiteName);
var configuration = new TestConfigurationProvider();
configuration.Configuration.Set(
typeof(IAssemblyProvider).FullName,
providerType.AssemblyQualifiedName);
services.AddInstance(
typeof(ITestConfigurationProvider),
configuration);
services.AddInstance(
typeof(ILoggerFactory),
new LoggerFactory());
if (newServices != null)
{ {
services.Add(newServices); configureServices(services);
} }
return BuildFallbackServiceProvider(services, originalProvider);
} }
// Calculate the path relative to the application base path. // Calculate the path relative to the application base path.
public static string CalculateApplicationBasePath(IApplicationEnvironment appEnvironment, private static string CalculateApplicationBasePath(
string applicationWebSiteName, string websitePath) IApplicationEnvironment appEnvironment,
string applicationWebSiteName,
string websitePath)
{ {
// Mvc/test/WebSites/applicationWebSiteName // Mvc/test/WebSites/applicationWebSiteName
return Path.GetFullPath( return Path.GetFullPath(
Path.Combine(appEnvironment.ApplicationBasePath, websitePath, applicationWebSiteName)); Path.Combine(appEnvironment.ApplicationBasePath, websitePath, applicationWebSiteName));
} }
/// <summary> private static IAssemblyProvider CreateAssemblyProvider(string siteName)
/// Creates a disposable action that replaces the service provider <see cref="CallContextServiceLocator.Locator"/>
/// with the passed in service that is switched back on <see cref="IDisposable.Dispose"/>.
/// </summary>
/// <remarks>This is required for config since it uses the static property to get to
/// <see cref="IApplicationEnvironment"/>.</remarks>
public static IDisposable ReplaceCallContextServiceLocationService(IServiceProvider serviceProvider)
{
return new CallContextProviderAction(serviceProvider);
}
private static Type CreateAssemblyProviderType(string siteName)
{ {
// Creates a service type that will limit MVC to only the controllers in the test site. // Creates a service type that will limit MVC to only the controllers in the test site.
// We only want this to happen when running in proc. // We only want this to happen when running in-process.
var assembly = Assembly.Load(new AssemblyName(siteName)); var assembly = Assembly.Load(new AssemblyName(siteName));
var provider = new FixedSetAssemblyProvider
var providerType = typeof(TestAssemblyProvider<>).MakeGenericType(assembly.GetExportedTypes()[0]);
return providerType;
}
private sealed class CallContextProviderAction : IDisposable
{
private readonly IServiceProvider _originalProvider;
public CallContextProviderAction(IServiceProvider provider)
{ {
_originalProvider = CallContextServiceLocator.Locator.ServiceProvider; CandidateAssemblies =
CallContextServiceLocator.Locator.ServiceProvider = provider;
}
public void Dispose()
{
CallContextServiceLocator.Locator.ServiceProvider = _originalProvider;
}
}
// TODO: Kill this code
private static IServiceProvider BuildFallbackServiceProvider(IEnumerable<ServiceDescriptor> services, IServiceProvider fallback)
{
var sc = HostingServices.Create(fallback);
sc.Add(services);
// Build the manifest
var manifestTypes = services.Where(t => t.ServiceType.GetTypeInfo().GenericTypeParameters.Length == 0
&& t.ServiceType != typeof(IServiceManifest)
&& t.ServiceType != typeof(IServiceProvider))
.Select(t => t.ServiceType).Distinct();
sc.AddInstance<IServiceManifest>(new ServiceManifest(manifestTypes, fallback.GetRequiredService<IServiceManifest>()));
return sc.BuildServiceProvider();
}
private class ServiceManifest : IServiceManifest
{
public ServiceManifest(IEnumerable<Type> services, IServiceManifest fallback = null)
{
Services = services;
if (fallback != null)
{ {
Services = Services.Concat(fallback.Services).Distinct(); assembly,
} },
} };
public IEnumerable<Type> Services { get; private set; } return provider;
} }
} }
} }

View File

@ -8,7 +8,6 @@ using System.Net.Http;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -16,14 +15,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class TryValidateModelTest public class TryValidateModelTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(ValidationWebSite)); private const string SiteName = nameof(ValidationWebSite);
private readonly Action<IApplicationBuilder> _app = new ValidationWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new ValidationWebSite.Startup().Configure;
[Fact] [Fact]
public async Task TryValidateModel_ClearParameterValidationError_ReturnsErrorsForInvalidProperties() public async Task TryValidateModel_ClearParameterValidationError_ReturnsErrorsForInvalidProperties()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "{ \"Price\": 2, \"Contact\": \"acvrdzersaererererfdsfdsfdsfsdf\", "+ var input = "{ \"Price\": 2, \"Contact\": \"acvrdzersaererererfdsfdsfdsfsdf\", "+
"\"ProductDetails\": {\"Detail1\": \"d1\", \"Detail2\": \"d2\", \"Detail3\": \"d3\"}}"; "\"ProductDetails\": {\"Detail1\": \"d1\", \"Detail2\": \"d2\", \"Detail3\": \"d3\"}}";
@ -55,7 +54,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TryValidateModel_InvalidTypeOnDerivedModel_ReturnsErrors() public async Task TryValidateModel_InvalidTypeOnDerivedModel_ReturnsErrors()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = var url =
"http://localhost/ModelMetadataTypeValidation/TryValidateModelSoftwareViewModelWithPrefix"; "http://localhost/ModelMetadataTypeValidation/TryValidateModelSoftwareViewModelWithPrefix";
@ -74,7 +73,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task TryValidateModel_ValidDerivedModel_ReturnsEmptyResponseBody() public async Task TryValidateModel_ValidDerivedModel_ReturnsEmptyResponseBody()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = var url =
"http://localhost/ModelMetadataTypeValidation/TryValidateModelValidModelNoPrefix"; "http://localhost/ModelMetadataTypeValidation/TryValidateModelValidModelNoPrefix";

View File

@ -4,7 +4,6 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using ValueProvidersWebSite; using ValueProvidersWebSite;
using Xunit; using Xunit;
@ -12,14 +11,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ValueProviderTest public class ValueProviderTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(ValueProvidersWebSite)); private const string SiteName = nameof(ValueProvidersWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
[Fact] [Fact]
public async Task ValueProviderFactories_AreVisitedInSequentialOrder_ForValueProviders() public async Task ValueProviderFactories_AreVisitedInSequentialOrder_ForValueProviders()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -33,7 +32,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ValueProviderFactories_ReturnsValuesFromQueryValueProvider() public async Task ValueProviderFactories_ReturnsValuesFromQueryValueProvider()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -47,7 +46,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ValueProviderFactories_ReturnsValuesFromRouteValueProvider() public async Task ValueProviderFactories_ReturnsValuesFromRouteValueProvider()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -67,7 +66,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ValueProvider_DeserializesEnumsWithFlags(string url, string expected) public async Task ValueProvider_DeserializesEnumsWithFlags(string url, string expected)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -7,7 +7,6 @@ using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -15,8 +14,8 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class VersioningTests public class VersioningTests
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices("VersioningWebSite"); private const string SiteName = nameof(VersioningWebSite);
private readonly Action<IApplicationBuilder> _app = new VersioningWebSite.Startup().Configure; readonly Action<IApplicationBuilder> _app = new VersioningWebSite.Startup().Configure;
[Theory] [Theory]
[InlineData("1")] [InlineData("1")]
@ -24,7 +23,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_WithVersionedRoutes_IsNotAmbiguous(string version) public async Task AttributeRoutedAction_WithVersionedRoutes_IsNotAmbiguous(string version)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -49,7 +48,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task AttributeRoutedAction_WithAmbiguousVersionedRoutes_CanBeDisambiguatedUsingOrder(string version) public async Task AttributeRoutedAction_WithAmbiguousVersionedRoutes_CanBeDisambiguatedUsingOrder(string version)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var query = "?version=" + version; var query = "?version=" + version;
var message = new HttpRequestMessage(HttpMethod.Get, "http://localhost/api/Addresses/All" + query); var message = new HttpRequestMessage(HttpMethod.Get, "http://localhost/api/Addresses/All" + query);
@ -74,7 +73,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanReachV1Operations_OnTheSameController_WithNoVersionSpecified() public async Task VersionedApi_CanReachV1Operations_OnTheSameController_WithNoVersionSpecified()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -97,7 +96,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanReachV1Operations_OnTheSameController_WithVersionSpecified() public async Task VersionedApi_CanReachV1Operations_OnTheSameController_WithVersionSpecified()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -118,7 +117,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanReachV1OperationsWithParameters_OnTheSameController() public async Task VersionedApi_CanReachV1OperationsWithParameters_OnTheSameController()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -139,7 +138,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanReachV1OperationsWithParameters_OnTheSameController_WithVersionSpecified() public async Task VersionedApi_CanReachV1OperationsWithParameters_OnTheSameController_WithVersionSpecified()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -168,7 +167,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanReachOtherVersionOperations_OnTheSameController(string version) public async Task VersionedApi_CanReachOtherVersionOperations_OnTheSameController(string version)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -194,7 +193,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanNotReachOtherVersionOperations_OnTheSameController_WithNoVersionSpecified() public async Task VersionedApi_CanNotReachOtherVersionOperations_OnTheSameController_WithNoVersionSpecified()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -221,7 +220,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
string version) string version)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -249,7 +248,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanNotReachOtherVersionOperationsWithParameters_OnTheSameController_WithNoVersionSpecified(string method) public async Task VersionedApi_CanNotReachOtherVersionOperationsWithParameters_OnTheSameController_WithNoVersionSpecified(string method)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -270,7 +269,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanUseOrderToDisambiguate_OverlappingVersionRanges(string version) public async Task VersionedApi_CanUseOrderToDisambiguate_OverlappingVersionRanges(string version)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -294,7 +293,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_OverlappingVersionRanges_FallsBackToLowerOrderAction(string version) public async Task VersionedApi_OverlappingVersionRanges_FallsBackToLowerOrderAction(string version)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -318,7 +317,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanReachV1Operations_OnTheOriginalController_WithNoVersionSpecified(string method, string action) public async Task VersionedApi_CanReachV1Operations_OnTheOriginalController_WithNoVersionSpecified(string method, string action)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -341,7 +340,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanReachV1Operations_OnTheOriginalController_WithVersionSpecified(string method, string action) public async Task VersionedApi_CanReachV1Operations_OnTheOriginalController_WithVersionSpecified(string method, string action)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -365,7 +364,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanReachV1OperationsWithParameters_OnTheOriginalController(string method, string action) public async Task VersionedApi_CanReachV1OperationsWithParameters_OnTheOriginalController(string method, string action)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -388,7 +387,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanReachV1OperationsWithParameters_OnTheOriginalController_WithVersionSpecified(string method, string action) public async Task VersionedApi_CanReachV1OperationsWithParameters_OnTheOriginalController_WithVersionSpecified(string method, string action)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -409,7 +408,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanReachOtherVersionOperationsWithParameters_OnTheV2Controller() public async Task VersionedApi_CanReachOtherVersionOperationsWithParameters_OnTheV2Controller()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -433,7 +432,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanHaveTwoRoutesWithVersionOnTheUrl_OnTheSameAction(string url) public async Task VersionedApi_CanHaveTwoRoutesWithVersionOnTheUrl_OnTheSameAction(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -456,7 +455,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanHaveTwoRoutesWithVersionOnTheUrl_OnDifferentActions(string url, string version) public async Task VersionedApi_CanHaveTwoRoutesWithVersionOnTheUrl_OnDifferentActions(string url, string version)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -479,7 +478,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanHaveTwoRoutesWithVersionOnTheUrl_OnDifferentActions_WithInlineConstraint(string url, string version) public async Task VersionedApi_CanHaveTwoRoutesWithVersionOnTheUrl_OnDifferentActions_WithInlineConstraint(string url, string version)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -505,7 +504,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanProvideVersioningInformation_UsingPlainActionConstraint(string url, string query, string actionName) public async Task VersionedApi_CanProvideVersioningInformation_UsingPlainActionConstraint(string url, string query, string actionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -526,7 +525,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_ConstraintOrder_IsRespected() public async Task VersionedApi_ConstraintOrder_IsRespected()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -547,7 +546,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_CanUseConstraintOrder_ToChangeSelectedAction() public async Task VersionedApi_CanUseConstraintOrder_ToChangeSelectedAction()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -570,7 +569,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task VersionedApi_MultipleVersionsUsingAttributeRouting_OnTheSameMethod(string version) public async Task VersionedApi_MultipleVersionsUsingAttributeRouting_OnTheSameMethod(string version)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var path = "/" + version + "/Vouchers?version=" + version; var path = "/" + version + "/Vouchers?version=" + version;
@ -591,7 +590,6 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
Assert.Equal(path, actualUrl); Assert.Equal(path, actualUrl);
} }
// See TestResponseGenerator in RoutingWebSite for the code that generates this data.
private class RoutingResult private class RoutingResult
{ {
public string[] ExpectedUrls { get; set; } public string[] ExpectedUrls { get; set; }

View File

@ -5,7 +5,6 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using ViewComponentWebSite; using ViewComponentWebSite;
using Xunit; using Xunit;
@ -13,7 +12,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ViewComponentTests public class ViewComponentTests
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices("ViewComponentWebSite"); private const string SiteName = nameof(ViewComponentWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
public static IEnumerable<object[]> ViewViewComponents_AreRenderedCorrectlyData public static IEnumerable<object[]> ViewViewComponents_AreRenderedCorrectlyData
@ -42,7 +41,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[MemberData(nameof(ViewViewComponents_AreRenderedCorrectlyData))] [MemberData(nameof(ViewViewComponents_AreRenderedCorrectlyData))]
public async Task ViewViewComponents_AreRenderedCorrectly(string actionName, string expected) public async Task ViewViewComponents_AreRenderedCorrectly(string actionName, string expected)
{ {
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -55,7 +54,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[Fact] [Fact]
public async Task ViewComponents_SupportsValueType() public async Task ViewComponents_SupportsValueType()
{ {
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -74,7 +73,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[InlineData("http://localhost/Home/ViewComponentWithEnumerableModelUsingUnion", "Union")] [InlineData("http://localhost/Home/ViewComponentWithEnumerableModelUsingUnion", "Union")]
public async Task ViewComponents_SupportsEnumerableModel(string url, string linqQueryType) public async Task ViewComponents_SupportsEnumerableModel(string url, string linqQueryType)
{ {
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -93,7 +92,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[InlineData("ViewComponentWebSite.Namespace2.SameName")] [InlineData("ViewComponentWebSite.Namespace2.SameName")]
public async Task ViewComponents_FullName(string name) public async Task ViewComponents_FullName(string name)
{ {
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -106,7 +105,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[Fact] [Fact]
public async Task ViewComponents_ShortNameUsedForViewLookup() public async Task ViewComponents_ShortNameUsedForViewLookup()
{ {
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var name = "ViewComponentWebSite.Integer"; var name = "ViewComponentWebSite.Integer";

View File

@ -6,7 +6,6 @@ using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using RazorWebSite; using RazorWebSite;
using Xunit; using Xunit;
@ -14,7 +13,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class ViewEngineTests public class ViewEngineTests
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices("RazorWebSite"); private const string SiteName = nameof(RazorWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
public static IEnumerable<object[]> RazorView_ExecutesPageAndLayoutData public static IEnumerable<object[]> RazorView_ExecutesPageAndLayoutData
@ -63,7 +62,7 @@ ViewWithNestedLayout-Content
[MemberData(nameof(RazorView_ExecutesPageAndLayoutData))] [MemberData(nameof(RazorView_ExecutesPageAndLayoutData))]
public async Task RazorView_ExecutesPageAndLayout(string actionName, string expected) public async Task RazorView_ExecutesPageAndLayout(string actionName, string expected)
{ {
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -84,7 +83,7 @@ ViewWithNestedLayout-Content
"", "",
"</partial2>", "</partial2>",
"test-value"); "test-value");
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -99,7 +98,7 @@ ViewWithNestedLayout-Content
{ {
// Arrange // Arrange
var expected = "HelloWorld"; var expected = "HelloWorld";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -118,7 +117,7 @@ ViewWithNestedLayout-Content
partial-content partial-content
component-content"; component-content";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -154,7 +153,7 @@ component-content";
public async Task RazorViewEngine_UsesViewExpandersForViewsAndPartials(string value, string expected) public async Task RazorViewEngine_UsesViewExpandersForViewsAndPartials(string value, string expected)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -182,7 +181,7 @@ component-content";
public async Task ViewLocationExpanders_PassesInIsPartialToViewLocationExpanderContext(string action, string expected) public async Task ViewLocationExpanders_PassesInIsPartialToViewLocationExpanderContext(string action, string expected)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -247,7 +246,7 @@ ViewWithNestedLayout-Content
public async Task RazorViewEngine_RendersPartialViews(string actionName, string expected) public async Task RazorViewEngine_RendersPartialViews(string actionName, string expected)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -266,7 +265,7 @@ ViewWithNestedLayout-Content
"", "",
"~/Views/NestedViewStarts/NestedViewStarts/Layout.cshtml", "~/Views/NestedViewStarts/NestedViewStarts/Layout.cshtml",
"index-content"); "index-content");
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -302,7 +301,7 @@ View With Layout
public async Task RazorViewEngine_UsesExpandersForLayouts(string value, string expected) public async Task RazorViewEngine_UsesExpandersForLayouts(string value, string expected)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -320,7 +319,7 @@ View With Layout
var expected = var expected =
@"<view-start>Hello Controller-Person</view-start> @"<view-start>Hello Controller-Person</view-start>
<page>Hello Controller-Person</page>"; <page>Hello Controller-Person</page>";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var target = "http://localhost/NestedGlobalImports"; var target = "http://localhost/NestedGlobalImports";
@ -342,7 +341,7 @@ Page Content
<component-title>ViewComponent With Title</component-title> <component-title>ViewComponent With Title</component-title>
<component-body> <component-body>
Component With Layout</component-body>"; Component With Layout</component-body>";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -357,7 +356,7 @@ Component With Layout</component-body>";
{ {
// Arrange // Arrange
var expected = @"<page-content>ViewComponent With ViewStart</page-content>"; var expected = @"<page-content>ViewComponent With ViewStart</page-content>";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -372,7 +371,7 @@ Component With Layout</component-body>";
{ {
// Arrange // Arrange
var expected = "Partial that does not specify Layout"; var expected = "Partial that does not specify Layout";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -391,7 +390,7 @@ Component With Layout</component-body>";
Partial that specifies Layout Partial that specifies Layout
</layout-for-viewstart-with-layout>Partial that does not specify Layout </layout-for-viewstart-with-layout>Partial that does not specify Layout
</layout-for-viewstart-with-layout>"; </layout-for-viewstart-with-layout>";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -411,7 +410,7 @@ Partial that specifies Layout
</layout-for-viewstart-with-layout> </layout-for-viewstart-with-layout>
Partial that does not specify Layout Partial that does not specify Layout
</layout-for-viewstart-with-layout>"; </layout-for-viewstart-with-layout>";
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -427,7 +426,7 @@ Partial that does not specify Layout
// Arrange // Arrange
var expected = await GetType().GetTypeInfo().Assembly var expected = await GetType().GetTypeInfo().Assembly
.ReadResourceAsStringAsync("compiler/resources/ViewEngineController.ViewWithPaths.txt"); .ReadResourceAsStringAsync("compiler/resources/ViewEngineController.ViewWithPaths.txt");
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -5,21 +5,20 @@ using System;
using System.Net; using System.Net;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class WebApiCompatShimActionResultTest public class WebApiCompatShimActionResultTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(WebApiCompatShimWebSite)); private const string SiteName = nameof(WebApiCompatShimWebSite);
private readonly Action<IApplicationBuilder> _app = new WebApiCompatShimWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new WebApiCompatShimWebSite.Startup().Configure;
[Fact] [Fact]
public async Task ApiController_BadRequest() public async Task ApiController_BadRequest()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -33,7 +32,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_BadRequestMessage() public async Task ApiController_BadRequestMessage()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -49,7 +48,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_BadRequestModelState() public async Task ApiController_BadRequestModelState()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = "{\"Message\":\"The request is invalid.\",\"ModelState\":{\"product.Name\":[\"Name is required.\"]}}"; var expected = "{\"Message\":\"The request is invalid.\",\"ModelState\":{\"product.Name\":[\"Name is required.\"]}}";
@ -67,7 +66,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_Conflict() public async Task ApiController_Conflict()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -81,7 +80,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_Content() public async Task ApiController_Content()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -97,7 +96,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_CreatedRelative() public async Task ApiController_CreatedRelative()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -114,7 +113,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_CreatedAbsolute() public async Task ApiController_CreatedAbsolute()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -131,7 +130,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_CreatedQualified() public async Task ApiController_CreatedQualified()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -148,7 +147,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_CreatedUri() public async Task ApiController_CreatedUri()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -165,7 +164,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_CreatedAtRoute() public async Task ApiController_CreatedAtRoute()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -182,7 +181,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_InternalServerError() public async Task ApiController_InternalServerError()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -196,7 +195,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_InternalServerErrorException() public async Task ApiController_InternalServerErrorException()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -212,7 +211,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_Json() public async Task ApiController_Json()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -228,7 +227,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_JsonSettings() public async Task ApiController_JsonSettings()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = var expected =
@ -249,7 +248,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_JsonSettingsEncoding() public async Task ApiController_JsonSettingsEncoding()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = var expected =
@ -271,7 +270,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_NotFound() public async Task ApiController_NotFound()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -285,7 +284,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_Ok() public async Task ApiController_Ok()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -299,7 +298,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_OkContent() public async Task ApiController_OkContent()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -315,7 +314,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_RedirectString() public async Task ApiController_RedirectString()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -330,7 +329,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_RedirectUri() public async Task ApiController_RedirectUri()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -345,7 +344,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_ResponseMessage() public async Task ApiController_ResponseMessage()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -360,7 +359,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_StatusCode() public async Task ApiController_StatusCode()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act

View File

@ -6,7 +6,6 @@ using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -14,7 +13,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class WebApiCompatShimActionSelectionTest public class WebApiCompatShimActionSelectionTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(WebApiCompatShimWebSite)); private const string SiteName = nameof(WebApiCompatShimWebSite);
private readonly Action<IApplicationBuilder> _app = new WebApiCompatShimWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new WebApiCompatShimWebSite.Startup().Configure;
[Theory] [Theory]
@ -28,7 +27,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebAPIConvention_TakesHttpMethodFromPrefix_UnnamedAction(string httpMethod, string actionName) public async Task WebAPIConvention_TakesHttpMethodFromPrefix_UnnamedAction(string httpMethod, string actionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -57,7 +56,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebAPIConvention_TakesHttpMethodFromPrefix_NamedAction(string httpMethod, string actionName) public async Task WebAPIConvention_TakesHttpMethodFromPrefix_NamedAction(string httpMethod, string actionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -79,7 +78,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebAPIConvention_TakesHttpMethodFromPrefix_NamedAction_MismatchedVerb() public async Task WebAPIConvention_TakesHttpMethodFromPrefix_NamedAction_MismatchedVerb()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -97,7 +96,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebAPIConvention_TakesHttpMethodFromPrefix_UnnamedAction_DefaultVerbIsPost_Success() public async Task WebAPIConvention_TakesHttpMethodFromPrefix_UnnamedAction_DefaultVerbIsPost_Success()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -119,7 +118,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebAPIConvention_TakesHttpMethodFromPrefix_NamedAction_DefaultVerbIsPost_Success() public async Task WebAPIConvention_TakesHttpMethodFromPrefix_NamedAction_DefaultVerbIsPost_Success()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -141,7 +140,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebAPIConvention_TakesHttpMethodFromPrefix_UnnamedAction_DefaultVerbIsPost_VerbMismatch() public async Task WebAPIConvention_TakesHttpMethodFromPrefix_UnnamedAction_DefaultVerbIsPost_VerbMismatch()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -159,7 +158,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebAPIConvention_TakesHttpMethodFromPrefix_NamedAction_DefaultVerbIsPost_VerbMismatch() public async Task WebAPIConvention_TakesHttpMethodFromPrefix_NamedAction_DefaultVerbIsPost_VerbMismatch()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -177,7 +176,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebAPIConvention_TakesHttpMethodFromMethodName_NotActionName_UnnamedAction_Success() public async Task WebAPIConvention_TakesHttpMethodFromMethodName_NotActionName_UnnamedAction_Success()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -199,7 +198,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebAPIConvention_TakesHttpMethodFromMethodName_NotActionName_NamedAction_Success() public async Task WebAPIConvention_TakesHttpMethodFromMethodName_NotActionName_NamedAction_Success()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -221,7 +220,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebAPIConvention_TakesHttpMethodFromMethodName_NotActionName_UnnamedAction_VerbMismatch() public async Task WebAPIConvention_TakesHttpMethodFromMethodName_NotActionName_UnnamedAction_VerbMismatch()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -239,7 +238,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebAPIConvention_TakesHttpMethodFromMethodName_NotActionName_NamedAction_VerbMismatch() public async Task WebAPIConvention_TakesHttpMethodFromMethodName_NotActionName_NamedAction_VerbMismatch()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -257,7 +256,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebAPIConvention_HttpMethodOverride_UnnamedAction_Success() public async Task WebAPIConvention_HttpMethodOverride_UnnamedAction_Success()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -279,7 +278,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebAPIConvention_HttpMethodOverride_NamedAction_Success() public async Task WebAPIConvention_HttpMethodOverride_NamedAction_Success()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -301,7 +300,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebAPIConvention_HttpMethodOverride_UnnamedAction_VerbMismatch() public async Task WebAPIConvention_HttpMethodOverride_UnnamedAction_VerbMismatch()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -319,7 +318,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebAPIConvention_HttpMethodOverride_NamedAction_VerbMismatch() public async Task WebAPIConvention_HttpMethodOverride_NamedAction_VerbMismatch()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -368,7 +367,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task LegacyActionSelection_OverloadedAction_WithUnnamedAction(string httpMethod, string requestUrl, string expectedActionName) public async Task LegacyActionSelection_OverloadedAction_WithUnnamedAction(string httpMethod, string requestUrl, string expectedActionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl); var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl);
@ -395,7 +394,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task LegacyActionSelection_OverloadedAction_NonIdRouteParameter(string httpMethod, string requestUrl, string expectedActionName) public async Task LegacyActionSelection_OverloadedAction_NonIdRouteParameter(string httpMethod, string requestUrl, string expectedActionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl); var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl);
@ -419,7 +418,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task LegacyActionSelection_OverloadedAction_Parameter_Casing(string httpMethod, string requestUrl, string expectedActionName) public async Task LegacyActionSelection_OverloadedAction_Parameter_Casing(string httpMethod, string requestUrl, string expectedActionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl); var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl);
@ -446,7 +445,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task LegacyActionSelection_RouteWithActionName(string httpMethod, string requestUrl, string expectedActionName) public async Task LegacyActionSelection_RouteWithActionName(string httpMethod, string requestUrl, string expectedActionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl); var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl);
@ -473,7 +472,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task LegacyActionSelection_RouteWithActionName_Casing(string httpMethod, string requestUrl, string expectedActionName) public async Task LegacyActionSelection_RouteWithActionName_Casing(string httpMethod, string requestUrl, string expectedActionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl); var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl);
@ -498,7 +497,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task LegacyActionSelection_RouteWithoutActionName(string httpMethod, string requestUrl, string expectedActionName) public async Task LegacyActionSelection_RouteWithoutActionName(string httpMethod, string requestUrl, string expectedActionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl); var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl);
@ -526,7 +525,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task LegacyActionSelection_ModelBindingParameterAttribute_AreAppliedWhenSelectingActions(string httpMethod, string requestUrl, string expectedActionName) public async Task LegacyActionSelection_ModelBindingParameterAttribute_AreAppliedWhenSelectingActions(string httpMethod, string requestUrl, string expectedActionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl); var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl);
@ -550,7 +549,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task LegacyActionSelection_ActionsThatHaveSubsetOfRouteParameters_AreConsideredForSelection(string httpMethod, string requestUrl, string expectedActionName) public async Task LegacyActionSelection_ActionsThatHaveSubsetOfRouteParameters_AreConsideredForSelection(string httpMethod, string requestUrl, string expectedActionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl); var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl);
@ -572,7 +571,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task LegacyActionSelection_RequestToAmbiguousAction_OnDefaultRoute() public async Task LegacyActionSelection_RequestToAmbiguousAction_OnDefaultRoute()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(new HttpMethod("POST"), "http://localhost/api/Admin/Test?name=mario"); var request = new HttpRequestMessage(new HttpMethod("POST"), "http://localhost/api/Admin/Test?name=mario");
@ -593,7 +592,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task LegacyActionSelection_SelectAction_ReturnsActionDescriptor_ForEnumParameterOverloads(string httpMethod, string requestUrl, string expectedActionName) public async Task LegacyActionSelection_SelectAction_ReturnsActionDescriptor_ForEnumParameterOverloads(string httpMethod, string requestUrl, string expectedActionName)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl); var request = new HttpRequestMessage(new HttpMethod(httpMethod), "http://localhost/" + requestUrl);

View File

@ -11,7 +11,6 @@ using System.Net.Http.Headers;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Web.Http; using System.Web.Http;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -19,14 +18,14 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class WebApiCompatShimBasicTest public class WebApiCompatShimBasicTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(WebApiCompatShimWebSite)); private const string SiteName = nameof(WebApiCompatShimWebSite);
private readonly Action<IApplicationBuilder> _app = new WebApiCompatShimWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new WebApiCompatShimWebSite.Startup().Configure;
[Fact] [Fact]
public async Task ApiController_Activates_HttpContextAndUser() public async Task ApiController_Activates_HttpContextAndUser()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -44,7 +43,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_Activates_UrlHelper() public async Task ApiController_Activates_UrlHelper()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -64,7 +63,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task Options_SetsDefaultFormatters() public async Task Options_SetsDefaultFormatters()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = new string[] var expected = new string[]
@ -91,7 +90,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ActionThrowsHttpResponseException_WithStatusCode() public async Task ActionThrowsHttpResponseException_WithStatusCode()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -108,7 +107,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ActionThrowsHttpResponseException_WithResponse() public async Task ActionThrowsHttpResponseException_WithResponse()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -126,7 +125,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ActionThrowsHttpResponseException_EnsureGlobalHttpresponseExceptionActionFilter_IsInvoked() public async Task ActionThrowsHttpResponseException_EnsureGlobalHttpresponseExceptionActionFilter_IsInvoked()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -144,7 +143,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ActionThrowsHttpResponseException_EnsureGlobalFilterConvention_IsApplied() public async Task ActionThrowsHttpResponseException_EnsureGlobalFilterConvention_IsApplied()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -163,7 +162,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_CanValidateCustomObjectWithPrefix_Fails() public async Task ApiController_CanValidateCustomObjectWithPrefix_Fails()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -180,7 +179,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_CanValidateCustomObject_IsSuccessFul() public async Task ApiController_CanValidateCustomObject_IsSuccessFul()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -194,7 +193,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_CanValidateCustomObject_Fails() public async Task ApiController_CanValidateCustomObject_Fails()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -210,7 +209,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_RequestProperty() public async Task ApiController_RequestProperty()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = var expected =
@ -232,7 +231,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_RequestParameter() public async Task ApiController_RequestParameter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = var expected =
@ -254,7 +253,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_ResponseReturned() public async Task ApiController_ResponseReturned()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = var expected =
@ -280,7 +279,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_ExplicitChunkedEncoding_IsIgnored() public async Task ApiController_ExplicitChunkedEncoding_IsIgnored()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expected = var expected =
@ -325,7 +324,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_CreateResponse_Conneg(string accept, string mediaType) public async Task ApiController_CreateResponse_Conneg(string accept, string mediaType)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -350,7 +349,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_CreateResponse_HardcodedMediaType(string mediaType) public async Task ApiController_CreateResponse_HardcodedMediaType(string mediaType)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -375,7 +374,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_CreateResponse_Conneg_Error(string accept, string mediaType) public async Task ApiController_CreateResponse_Conneg_Error(string accept, string mediaType)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -398,7 +397,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_CreateResponse_HardcodedFormatter() public async Task ApiController_CreateResponse_HardcodedFormatter()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
@ -424,7 +423,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebApiRouting_AccessMvcController(string url, HttpStatusCode expected) public async Task WebApiRouting_AccessMvcController(string url, HttpStatusCode expected)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
@ -442,7 +441,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task WebApiRouting_AccessWebApiController(string url, HttpStatusCode expected) public async Task WebApiRouting_AccessWebApiController(string url, HttpStatusCode expected)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
@ -458,7 +457,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_Returns_ByteArrayContent() public async Task ApiController_Returns_ByteArrayContent()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedBody = "Hello from ByteArrayContent!!"; var expectedBody = "Hello from ByteArrayContent!!";
@ -478,7 +477,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_Returns_StreamContent() public async Task ApiController_Returns_StreamContent()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedBody = "This content is from a file"; var expectedBody = "This content is from a file";
@ -502,7 +501,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_Returns_PushStreamContent(string action, string expectedBody) public async Task ApiController_Returns_PushStreamContent(string action, string expectedBody)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
// Act // Act
@ -521,7 +520,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_Returns_PushStreamContentWithCustomHeaders() public async Task ApiController_Returns_PushStreamContentWithCustomHeaders()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var expectedBody = "Hello from PushStreamContent with custom headers!!"; var expectedBody = "Hello from PushStreamContent with custom headers!!";
var multipleValues = new[] { "value1", "value2" }; var multipleValues = new[] { "value1", "value2" };

View File

@ -8,7 +8,6 @@ using System.Net.Http;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Newtonsoft.Json; using Newtonsoft.Json;
using Xunit; using Xunit;
@ -16,7 +15,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class WebApiCompatShimParameterBindingTest public class WebApiCompatShimParameterBindingTest
{ {
private readonly IServiceProvider _provider = TestHelper.CreateServices(nameof(WebApiCompatShimWebSite)); private const string SiteName = nameof(WebApiCompatShimWebSite);
private readonly Action<IApplicationBuilder> _app = new WebApiCompatShimWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new WebApiCompatShimWebSite.Startup().Configure;
[Theory] [Theory]
@ -25,7 +24,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_SimpleParameter_Default_ReadsFromUrl(string url) public async Task ApiController_SimpleParameter_Default_ReadsFromUrl(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Post, url); var request = new HttpRequestMessage(HttpMethod.Post, url);
@ -43,7 +42,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_SimpleParameter_Default_DoesNotReadFormData() public async Task ApiController_SimpleParameter_Default_DoesNotReadFormData()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/api/Blog/Employees/PostByIdDefault"; var url = "http://localhost/api/Blog/Employees/PostByIdDefault";
@ -68,7 +67,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_SimpleParameter_ModelBinder_ReadsFromUrl(string url) public async Task ApiController_SimpleParameter_ModelBinder_ReadsFromUrl(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Post, url); var request = new HttpRequestMessage(HttpMethod.Post, url);
@ -86,7 +85,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_SimpleParameter_ModelBinder_ReadsFromFormData() public async Task ApiController_SimpleParameter_ModelBinder_ReadsFromFormData()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/api/Blog/Employees/PostByIdModelBinder"; var url = "http://localhost/api/Blog/Employees/PostByIdModelBinder";
@ -111,7 +110,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_SimpleParameter_FromQuery_ReadsFromQueryNotRouteData(string url, string expected) public async Task ApiController_SimpleParameter_FromQuery_ReadsFromQueryNotRouteData(string url, string expected)
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Post, url); var request = new HttpRequestMessage(HttpMethod.Post, url);
@ -129,7 +128,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_SimpleParameter_FromQuery_DoesNotReadFormData() public async Task ApiController_SimpleParameter_FromQuery_DoesNotReadFormData()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/api/Blog/Employees/PostByIdFromQuery"; var url = "http://localhost/api/Blog/Employees/PostByIdFromQuery";
@ -152,7 +151,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_ComplexParameter_Default_ReadsFromBody() public async Task ApiController_ComplexParameter_Default_ReadsFromBody()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/api/Blog/Employees/PutEmployeeDefault"; var url = "http://localhost/api/Blog/Employees/PutEmployeeDefault";
@ -177,7 +176,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_ComplexParameter_ModelBinder_ReadsFormAndUrl() public async Task ApiController_ComplexParameter_ModelBinder_ReadsFormAndUrl()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/api/Blog/Employees/PutEmployeeModelBinder/5"; var url = "http://localhost/api/Blog/Employees/PutEmployeeModelBinder/5";
@ -201,7 +200,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ApiController_TwoParameters_DefaultSources() public async Task ApiController_TwoParameters_DefaultSources()
{ {
// Arrange // Arrange
var server = TestServer.Create(_provider, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var url = "http://localhost/api/Blog/Employees/PutEmployeeBothDefault?name=Name_Override"; var url = "http://localhost/api/Blog/Employees/PutEmployeeBothDefault?name=Name_Override";

View File

@ -5,18 +5,16 @@ using System;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Mvc.Xml; using Microsoft.AspNet.Mvc.Xml;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class XmlDataContractSerializerFormattersWrappingTest public class XmlDataContractSerializerFormattersWrappingTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(XmlFormattersWebSite)); private const string SiteName = nameof(XmlFormattersWebSite);
private readonly Action<IApplicationBuilder> _app = new XmlFormattersWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new XmlFormattersWebSite.Startup().Configure;
[Theory] [Theory]
@ -25,7 +23,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_ValueTypes(string url) public async Task CanWrite_ValueTypes(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs"));
@ -48,7 +46,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_NonWrappedTypes(string url) public async Task CanWrite_NonWrappedTypes(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs"));
@ -71,7 +69,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_NonWrappedTypes_Empty(string url) public async Task CanWrite_NonWrappedTypes_Empty(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs"));
@ -93,7 +91,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_NonWrappedTypes_NullInstance(string url) public async Task CanWrite_NonWrappedTypes_NullInstance(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs"));
@ -115,7 +113,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_WrappedTypes(string url) public async Task CanWrite_WrappedTypes(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs"));
@ -139,7 +137,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_WrappedTypes_Empty(string url) public async Task CanWrite_WrappedTypes_Empty(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs"));
@ -161,7 +159,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_WrappedTypes_NullInstance(string url) public async Task CanWrite_WrappedTypes_NullInstance(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs"));
@ -181,7 +179,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_IEnumerableOf_SerializableErrors() public async Task CanWrite_IEnumerableOf_SerializableErrors()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/IEnumerable/SerializableErrors"); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/IEnumerable/SerializableErrors");
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-dcs"));

View File

@ -12,7 +12,6 @@ using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using XmlFormattersWebSite; using XmlFormattersWebSite;
using Xunit; using Xunit;
@ -20,7 +19,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class XmlDataContractSerializerInputFormatterTest public class XmlDataContractSerializerInputFormatterTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(XmlFormattersWebSite)); private const string SiteName = nameof(XmlFormattersWebSite);
private readonly Action<IApplicationBuilder> _app = new Startup().Configure; private readonly Action<IApplicationBuilder> _app = new Startup().Configure;
private readonly string errorMessageFormat = string.Format( private readonly string errorMessageFormat = string.Format(
"{{1}}:{0} does not recognize '{1}', so instead use '{2}' with '{3}' set to '{4}' for value " + "{{1}}:{0} does not recognize '{1}', so instead use '{2}' with '{3}' set to '{4}' for value " +
@ -35,7 +34,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ThrowsOnInvalidInput_AndAddsToModelState() public async Task ThrowsOnInvalidInput_AndAddsToModelState()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "Not a valid xml document"; var input = "Not a valid xml document";
var content = new StringContent(input, Encoding.UTF8, "application/xml-dcs"); var content = new StringContent(input, Encoding.UTF8, "application/xml-dcs");
@ -59,7 +58,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task RequiredDataIsProvided_AndModelIsBound_AndHasRequiredAttributeValidationErrors() public async Task RequiredDataIsProvided_AndModelIsBound_AndHasRequiredAttributeValidationErrors()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml-dcs")); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml-dcs"));
var input = "<Store xmlns=\"http://schemas.datacontract.org/2004/07/XmlFormattersWebSite\" " + var input = "<Store xmlns=\"http://schemas.datacontract.org/2004/07/XmlFormattersWebSite\" " +
@ -103,7 +102,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task DataMissingForReferneceTypeProperties_AndModelIsBound_AndHasMixedValidationErrors() public async Task DataMissingForReferneceTypeProperties_AndModelIsBound_AndHasMixedValidationErrors()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml-dcs")); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml-dcs"));
var input = "<Store xmlns=\"http://schemas.datacontract.org/2004/07/XmlFormattersWebSite\"" + var input = "<Store xmlns=\"http://schemas.datacontract.org/2004/07/XmlFormattersWebSite\"" +

View File

@ -7,26 +7,20 @@ using System.Net.Http;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class XmlOutputFormatterTests public class XmlOutputFormatterTests
{ {
private readonly IServiceProvider _services; private const string SiteName = nameof(FormatterWebSite);
private readonly Action<IApplicationBuilder> _app = new FormatterWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new FormatterWebSite.Startup().Configure;
public XmlOutputFormatterTests()
{
_services = TestHelper.CreateServices("FormatterWebSite");
}
[Fact] [Fact]
public async Task XmlDataContractSerializerOutputFormatterIsCalled() public async Task XmlDataContractSerializerOutputFormatterIsCalled()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/Home/GetDummyClass?sampleInput=10"); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/Home/GetDummyClass?sampleInput=10");
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml;charset=utf-8")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml;charset=utf-8"));
@ -46,7 +40,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task XmlSerializerOutputFormatterIsCalled() public async Task XmlSerializerOutputFormatterIsCalled()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/XmlSerializer/GetDummyClass?sampleInput=10"); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/XmlSerializer/GetDummyClass?sampleInput=10");
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml;charset=utf-8")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml;charset=utf-8"));
@ -65,7 +59,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task XmlSerializerFailsAndDataContractSerializerIsCalled() public async Task XmlSerializerFailsAndDataContractSerializerIsCalled()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Post, var request = new HttpRequestMessage(HttpMethod.Post,
"http://localhost/DataContractSerializer/GetPerson?name=HelloWorld"); "http://localhost/DataContractSerializer/GetPerson?name=HelloWorld");
@ -86,7 +80,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task XmlSerializerOutputFormatter_WhenDerivedClassIsReturned() public async Task XmlSerializerOutputFormatter_WhenDerivedClassIsReturned()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
HttpMethod.Post, "http://localhost/XmlSerializer/GetDerivedDummyClass?sampleInput=10"); HttpMethod.Post, "http://localhost/XmlSerializer/GetDerivedDummyClass?sampleInput=10");
@ -107,7 +101,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task XmlDataContractSerializerOutputFormatter_WhenDerivedClassIsReturned() public async Task XmlDataContractSerializerOutputFormatter_WhenDerivedClassIsReturned()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
HttpMethod.Post, "http://localhost/Home/GetDerivedDummyClass?sampleInput=10"); HttpMethod.Post, "http://localhost/Home/GetDerivedDummyClass?sampleInput=10");
@ -128,7 +122,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task XmlSerializerFormatter_DoesNotWriteDictionaryObjects() public async Task XmlSerializerFormatter_DoesNotWriteDictionaryObjects()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage( var request = new HttpRequestMessage(
HttpMethod.Post, "http://localhost/XmlSerializer/GetDictionary"); HttpMethod.Post, "http://localhost/XmlSerializer/GetDictionary");

View File

@ -5,18 +5,16 @@ using System;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Mvc.Xml; using Microsoft.AspNet.Mvc.Xml;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class XmlSerializerFormattersWrappingTest public class XmlSerializerFormattersWrappingTest
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(XmlFormattersWebSite)); private const string SiteName = nameof(XmlFormattersWebSite);
private readonly Action<IApplicationBuilder> _app = new XmlFormattersWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new XmlFormattersWebSite.Startup().Configure;
[Theory] [Theory]
@ -25,7 +23,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_ValueTypes(string url) public async Task CanWrite_ValueTypes(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser"));
@ -48,7 +46,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_NonWrappedTypes(string url) public async Task CanWrite_NonWrappedTypes(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser"));
@ -71,7 +69,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_NonWrappedTypes_NullInstance(string url) public async Task CanWrite_NonWrappedTypes_NullInstance(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser"));
@ -93,7 +91,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_NonWrappedTypes_Empty(string url) public async Task CanWrite_NonWrappedTypes_Empty(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser"));
@ -115,7 +113,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_WrappedTypes(string url) public async Task CanWrite_WrappedTypes(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser"));
@ -139,7 +137,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_WrappedTypes_Empty(string url) public async Task CanWrite_WrappedTypes_Empty(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser"));
@ -162,7 +160,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_WrappedTypes_NullInstance(string url) public async Task CanWrite_WrappedTypes_NullInstance(string url)
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, url); var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser"));
@ -183,7 +181,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task CanWrite_IEnumerableOf_SerializableErrors() public async Task CanWrite_IEnumerableOf_SerializableErrors()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/IEnumerable/SerializableErrors"); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/IEnumerable/SerializableErrors");
request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser")); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml-xmlser"));

View File

@ -7,21 +7,20 @@ using System.Net.Http;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.TestHost;
using Xunit; using Xunit;
namespace Microsoft.AspNet.Mvc.FunctionalTests namespace Microsoft.AspNet.Mvc.FunctionalTests
{ {
public class XmlSerializerInputFormatterTests public class XmlSerializerInputFormatterTests
{ {
private readonly IServiceProvider _services = TestHelper.CreateServices(nameof(XmlFormattersWebSite)); private const string SiteName = nameof(XmlFormattersWebSite);
private readonly Action<IApplicationBuilder> _app = new XmlFormattersWebSite.Startup().Configure; private readonly Action<IApplicationBuilder> _app = new XmlFormattersWebSite.Startup().Configure;
[Fact] [Fact]
public async Task CheckIfXmlSerializerInputFormatterIsCalled() public async Task CheckIfXmlSerializerInputFormatterIsCalled()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var sampleInputInt = 10; var sampleInputInt = 10;
var input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + var input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
@ -41,7 +40,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
public async Task ThrowsOnInvalidInput_AndAddsToModelState() public async Task ThrowsOnInvalidInput_AndAddsToModelState()
{ {
// Arrange // Arrange
var server = TestServer.Create(_services, _app); var server = TestHelper.CreateServer(_app, SiteName);
var client = server.CreateClient(); var client = server.CreateClient();
var input = "Not a valid xml document"; var input = "Not a valid xml document";
var content = new StringContent(input, Encoding.UTF8, "application/xml-xmlser"); var content = new StringContent(input, Encoding.UTF8, "application/xml-xmlser");

View File

@ -46,44 +46,6 @@ namespace Microsoft.AspNet.Mvc
Assert.Equal(ServiceLifetime.Singleton, services[3].Lifetime); Assert.Equal(ServiceLifetime.Singleton, services[3].Lifetime);
} }
[Fact]
public void WithControllersAsServices_UsesConfigurationIfSpecified()
{
// Arrange
var collection = new ServiceCollection();
var controllerTypes = new[] { typeof(ControllerTypeA), typeof(TypeBController) };
var configuration = new Configuration();
configuration.Add(new MemoryConfigurationSource());
configuration.Set(typeof(IControllerActivator).FullName,
typeof(CustomActivator).AssemblyQualifiedName);
configuration.Set(typeof(IControllerTypeProvider).FullName,
typeof(CustomTypeProvider).AssemblyQualifiedName);
// Act
MvcServiceCollectionExtensions.WithControllersAsServices(collection,
controllerTypes,
configuration);
// Assert
var services = collection.ToList();
Assert.Equal(4, services.Count);
Assert.Equal(typeof(ControllerTypeA), services[0].ServiceType);
Assert.Equal(typeof(ControllerTypeA), services[0].ImplementationType);
Assert.Equal(ServiceLifetime.Transient, services[0].Lifetime);
Assert.Equal(typeof(TypeBController), services[1].ServiceType);
Assert.Equal(typeof(TypeBController), services[1].ImplementationType);
Assert.Equal(ServiceLifetime.Transient, services[1].Lifetime);
Assert.Equal(typeof(IControllerActivator), services[2].ServiceType);
Assert.Equal(typeof(CustomActivator), services[2].ImplementationType);
Assert.Equal(ServiceLifetime.Transient, services[2].Lifetime);
Assert.Equal(typeof(IControllerTypeProvider), services[3].ServiceType);
Assert.Equal(typeof(CustomTypeProvider), services[3].ImplementationType);
Assert.Equal(ServiceLifetime.Singleton, services[3].Lifetime);
}
[Fact] [Fact]
public void WithControllersAsServices_ScansControllersFromSpecifiedAssemblies() public void WithControllersAsServices_ScansControllersFromSpecifiedAssemblies()
{ {

View File

@ -1,7 +1,6 @@
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. // Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using Microsoft.AspNet.Mvc;
using Microsoft.AspNet.Mvc.TestConfiguration; using Microsoft.AspNet.Mvc.TestConfiguration;
using Microsoft.Framework.ConfigurationModel; using Microsoft.Framework.ConfigurationModel;
using Microsoft.Framework.DependencyInjection; using Microsoft.Framework.DependencyInjection;
@ -10,15 +9,13 @@ namespace Microsoft.AspNet.Builder
{ {
public static class BuilderExtensions public static class BuilderExtensions
{ {
public static Configuration GetTestConfiguration(this IApplicationBuilder app) public static IConfiguration GetTestConfiguration(this IApplicationBuilder app)
{ {
// Unconditionally place CultureReplacerMiddleware as early as possible in the pipeline. // Unconditionally place CultureReplacerMiddleware as early as possible in the pipeline.
app.UseMiddleware<CultureReplacerMiddleware>(); app.UseMiddleware<CultureReplacerMiddleware>();
var configurationProvider = app.ApplicationServices.GetService<ITestConfigurationProvider>(); // Until we update all references, return a useful configuration.
var configuration = configurationProvider == null var configuration = app.ApplicationServices.GetService<IConfiguration>() ?? new Configuration();
? new Configuration()
: configurationProvider.Configuration;
return configuration; return configuration;
} }

View File

@ -1,12 +0,0 @@
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using Microsoft.Framework.ConfigurationModel;
namespace Microsoft.AspNet.Mvc
{
public interface ITestConfigurationProvider
{
Configuration Configuration { get; }
}
}

View File

@ -2,98 +2,15 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System; using System;
using System.IO;
using System.Runtime.Versioning;
using Microsoft.AspNet.Mvc; using Microsoft.AspNet.Mvc;
using Microsoft.AspNet.Hosting;
using Microsoft.Framework.DependencyInjection;
using Microsoft.Framework.Runtime;
namespace PrecompilationWebSite namespace PrecompilationWebSite
{ {
public class RazorPreCompilation : RazorPreCompileModule public class RazorPreCompilation : RazorPreCompileModule
{ {
public RazorPreCompilation(IServiceProvider provider) : base(ReplaceProvider(provider)) public RazorPreCompilation(IServiceProvider provider)
: base(provider)
{ {
} }
// We need to construct an IApplicationEnvironment with a base path that that matches this
// website, in order to find the razor files. This is needed because we don't have a guarantee that
// the base path of the current app is this site (ex: functional tests).
public static IServiceProvider ReplaceProvider(IServiceProvider provider)
{
var originalEnvironment = provider.GetService<IApplicationEnvironment>();
var libraryManager = provider.GetService<ILibraryManager>();
var info = libraryManager.GetLibraryInformation("PrecompilationWebSite");
var directory = Path.GetDirectoryName(info.Path);
var precompilationApplicationEnvironment = new PrecompilationApplicationEnvironment(
originalEnvironment,
directory);
var collection = HostingServices.Create(provider);
collection.AddInstance<IApplicationEnvironment>(precompilationApplicationEnvironment);
return new DelegatingServiceProvider(provider, collection.BuildServiceProvider());
}
private class PrecompilationApplicationEnvironment : IApplicationEnvironment
{
private readonly IApplicationEnvironment _originalApplicationEnvironment;
private readonly string _applicationBasePath;
public PrecompilationApplicationEnvironment(IApplicationEnvironment original, string appBasePath)
{
_originalApplicationEnvironment = original;
_applicationBasePath = appBasePath;
}
public string ApplicationName
{
get { return _originalApplicationEnvironment.ApplicationName; }
}
public string Version
{
get { return _originalApplicationEnvironment.Version; }
}
public string ApplicationBasePath
{
get { return _applicationBasePath; }
}
public string Configuration
{
get
{
return _originalApplicationEnvironment.Configuration;
}
}
public FrameworkName RuntimeFramework
{
get { return _originalApplicationEnvironment.RuntimeFramework; }
}
}
private class DelegatingServiceProvider : IServiceProvider
{
private readonly IServiceProvider _fallback;
private readonly IServiceProvider _services;
public DelegatingServiceProvider(IServiceProvider fallback, IServiceProvider services)
{
_fallback = fallback;
_services = services;
}
public object GetService(Type serviceType)
{
return _services.GetService(serviceType) ?? _fallback.GetService(serviceType);
}
}
} }
} }