public void CreatesInstanceOfType()
 {
     var startup = new TestStartup();
     startup.Run(SimpleWeb.Configuration, SimpleWeb.Environment);
     var builderFactory = new HandlerBuilderFactory(SimpleWeb.Configuration);
     var handlerFactory = builderFactory.BuildHandlerBuilder(typeof(TestHandler));
     var handler = (TestHandler)handlerFactory(new Dictionary<string, string> { { "TestProperty", "Foo" } }).Handler;
     Assert.Equal(Status.OK, handler.Get());
     Assert.Equal("Foo", handler.TestProperty);
 }
        public void DisposesInstances()
        {
            var startup = new TestStartup();
            startup.Run(SimpleWeb.Configuration, SimpleWeb.Environment);
            var builderFactory = new HandlerBuilderFactory(SimpleWeb.Configuration);
            var handlerFactory = builderFactory.BuildHandlerBuilder(typeof(TestHandler));

            TestHandler handler;
            using (var scopedHandler = handlerFactory(new Dictionary<string, string>()))
            {
                handler = (TestHandler)scopedHandler.Handler;
                Assert.Equal(false, handler.IsDisposed);
            }
            Assert.Equal(true, handler.IsDisposed);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="HandlerFactory"/> class.
 /// </summary>
 /// <param name="configuration">The configuration.</param>
 /// <remarks>For testing only. In production, use the singleton <see cref="Instance"/>.</remarks>
 public HandlerFactory(IConfiguration configuration)
 {
     _handlerBuilderFactory = new HandlerBuilderFactory(configuration);
 }