public void UseDependencies_can_be_used_to_set_dependencies_using_an_application_owned_container()
        {
            var applicationsContainer = new PocketContainer()
                .Register<IPaymentService>(_ => new CreditCardPaymentGateway(chargeLimit: 1));

            Configuration.Current
                         .UseDependencies(type =>
                         {
                             if (applicationsContainer.Any(reg => reg.Key == type))
                             {
                                 return () => applicationsContainer.Resolve(type);
                             }

                             return null;
                         });

            var order = new Order(new CreateOrder(Any.FullName()))
                .Apply(new AddItem
                       {
                           Price = 5m,
                           ProductName = Any.Word()
                       })
                .Apply(new Ship())
                .Apply(new ChargeAccount
                       {
                           AccountNumber = Any.PositiveInt().ToString()
                       });

            order.Events()
                 .Last()
                 .Should()
                 .BeOfType<Order.PaymentConfirmed>();
        }