public void Types_should_return_reference_to_same_configurator_when_called_with_function()
        {
            var configurator =
                new TypeScannerConfigurator();

            var reference =
                configurator.Types(() => new[] { typeof(object) });

            reference.ShouldBeSameAs(configurator);
        }
        public void Types_should_throw_argumentnullexception_when_called_with_null_condition()
        {
            var configurator =
                new TypeScannerConfigurator();

            var exception =
                Catch.Exception(() => configurator.Types((Func <Type[]>)null));

            exception.ShouldBeOfType <ArgumentNullException>();
        }
        public void Types_should_return_reference_to_same_configurator_when_called_with_enumerable()
        {
            var configurator =
                new TypeScannerConfigurator();

            var reference =
                configurator.Types(new List <Type> {
                typeof(object)
            });

            reference.ShouldBeSameAs(configurator);
        }
        public void Types_should_identify_types_passed_in_as_argument_when_called_with_expression()
        {
            var configurator =
                new TypeScannerConfigurator();

            configurator.Types(() => new[] { typeof(object), typeof(string) });

            var scanner =
                configurator.GetTypeScanner();

            var results =
                scanner.GetTypes(x => true);

            results.Count().ShouldEqual(2);
        }