private void GlobalExceptionFilterIsAdded()
        {
            var services = new ServiceCollection();
            var manager  = new ApplicationPartManager();
            var builder  = new MvcBuilder(services, manager);

            services.AddOptions();
            services.AddSingleton(typeof(ObjectPoolProvider), new DefaultObjectPoolProvider());
            services
            .AddLogging()
            .AddMvcCore()
            .AddJsonFormatters();

            builder.AddApiExtensions(null, options => { });

            var sp = services.BuildServiceProvider();

            MvcOptions mvcOptions = sp.GetService <IOptions <MvcOptions> >().Value;

            var filter = mvcOptions.Filters.OfType <TypeFilterAttribute>()
                         .Where(f => f.ImplementationType == typeof(GlobalExceptionFilter))
                         .FirstOrDefault();

            Assert.NotNull(filter);
        }
        private void JsonOutputFormatterSupportsHAL()
        {
            var services = new ServiceCollection();
            var manager  = new ApplicationPartManager();
            var builder  = new MvcBuilder(services, manager);

            services.AddOptions();
            services.AddSingleton(typeof(ObjectPoolProvider), new DefaultObjectPoolProvider());
            services
            .AddLogging()
            .AddMvcCore()
            .AddJsonFormatters();

            builder.AddApiExtensions();

            var sp = services.BuildServiceProvider();

            MvcOptions mvcOptions = sp.GetService <IOptions <MvcOptions> >().Value;

            var jsonOutputFormatter = mvcOptions.OutputFormatters.OfType <JsonOutputFormatter>().First();

            Assert.True(jsonOutputFormatter.SupportedMediaTypes.Any(x => x == "application/hal+json"));
        }