public void InBinFolder_Returns_All_Dlls() { var tf = new TypeFinder(); var loader = new AssemblyLoader(tf); loader.InBinFolder(); tf.ShouldNotBeNull(); tf.Assemblies.Count().ShouldEqual(6); }
public void Can_Find_Types_Implementing_Interface() { var tf = new TypeFinder(); tf.AddAssembly(GetType().Assembly); var iFooTypes = tf.TypesImplementing<ITypeFoo>(); iFooTypes.ShouldNotBeNull(); iFooTypes.Count().ShouldEqual(2); }
public void Can_Find_Types_Implementing_Base_Class() { var tf = new TypeFinder(); tf.AddAssembly(GetType().Assembly); var fooType = tf.TypesImplementing<TypeFoo>(); fooType.ShouldNotBeNull(); fooType.Count().ShouldEqual(1); }
public static INancyApplication BootstrapApplication() { var typeFinder = new TypeFinder(); var bootStrapperType = typeFinder .TypesImplementing<NancyBootstrapper>() .ConcreteClasses() .CanCreateInstance() .FirstOrDefault() ?? typeof(DefaultBootstrapper); var bootStrapper = Activator.CreateInstance(bootStrapperType) as NancyBootstrapper; if (bootStrapper != null) return bootStrapper.Bootstrap(); throw new InvalidOperationException("Can't find NancyBootstrapper."); }
public AssemblyLoader(TypeFinder finder) { _typeFinder = finder; }
private void ProcessRegistrationList(RegistrationList registrationList, TypeFinder finder) { foreach (var registration in registrationList) { var serviceType = registration.ServiceType; var handler = registration.Handler; var typeFilter = registration.TypeFilter; var registrationTypes = finder.Types.Where(type => typeFilter(type, serviceType)).AsEnumerable(); foreach (Type type in registrationTypes) { handler(this.Container, serviceType, type); } } }
public void Default_Finder_Returns_One_Assembly() { var tf = new TypeFinder(); tf.Assemblies.Count().ShouldEqual(1); }
public void Default_Finder_Returns_More_Than_One_Type() { var tf = new TypeFinder(); tf.Types.Count(); }