private static IEnumerable<IModuleInjectionFilter> GetFilters() { var typeLocator = new TypeLocator(); IEnumerable<Type> types = typeLocator.GetAllMatchingTypes(IsValidModuleInjectionFilter); foreach (Type filterType in types) { IModuleInjectionFilter filter; try { filter = Activator.CreateInstance(filterType) as IModuleInjectionFilter; } catch (Exception e) { Logger.ErrorFormat("Unable to create {0} while registering module injection filters. {1}", filterType.FullName, e.Message); filter = null; } if (filter != null) { yield return filter; } } }
public void LocatesAllServiceRouteMappers() { var assemblyLocator = new Mock<IAssemblyLocator>(); //including the assembly with object ensures that the assignabliity is done correctly var assembliesToReflect = new IAssembly[2]; assembliesToReflect[0] = new AssemblyWrapper(GetType().Assembly); assembliesToReflect[1] = new AssemblyWrapper(typeof (Object).Assembly); assemblyLocator.Setup(x => x.Assemblies).Returns(assembliesToReflect); var locator = new TypeLocator {AssemblyLocator = assemblyLocator.Object}; List<Type> types = locator.GetAllMatchingTypes(ServicesRoutingManager.IsValidServiceRouteMapper).ToList(); //if new ServiceRouteMapper classes are added to the assembly they willl likely need to be added here CollectionAssert.AreEquivalent( new[] { typeof (FakeServiceRouteMapper), typeof (ReflectedServiceRouteMappers.EmbeddedServiceRouteMapper), typeof (ExceptionOnCreateInstanceServiceRouteMapper), typeof (ExceptionOnRegisterServiceRouteMapper) }, types); }
public void LocateAllMatchingTypes() { var assembly = new Mock<IAssembly>(); assembly.Setup(x => x.GetTypes()).Returns(new[] {typeof(TypeLocatorTests), typeof(ServiceRoutingManagerTests)}); var assemblyLocator = new Mock<IAssemblyLocator>(); assemblyLocator.Setup(x => x.Assemblies).Returns(new[] {assembly.Object}); var typeLocator = new TypeLocator {AssemblyLocator = assemblyLocator.Object}; var types = typeLocator.GetAllMatchingTypes(x => true).ToList(); CollectionAssert.AreEquivalent(new[]{typeof(TypeLocatorTests), typeof(ServiceRoutingManagerTests)}, types); assembly.Verify(x => x.GetTypes(), Times.Once()); assemblyLocator.Verify(x => x.Assemblies, Times.Once()); }
internal ServicesRoutingManager(RouteCollection routes) { _routes = routes; _portalAliasRouteManager = new PortalAliasRouteManager(); TypeLocator = new TypeLocator(); }
public void RegisterRoutesIsCalledOnAllServiceRouteMappersEvenWhenSomeThrowExceptions() { FakeServiceRouteMapper.RegistrationCalls = 0; var assembly = new Mock<IAssembly>(); assembly.Setup(x => x.GetTypes()).Returns(new[] { typeof (ExceptionOnRegisterServiceRouteMapper), typeof (ExceptionOnCreateInstanceServiceRouteMapper), typeof (FakeServiceRouteMapper) }); var al = new Mock<IAssemblyLocator>(); al.Setup(x => x.Assemblies).Returns(new[] {assembly.Object}); var tl = new TypeLocator {AssemblyLocator = al.Object}; var srm = new ServicesRoutingManager(new RouteCollection()) {TypeLocator = tl}; srm.RegisterRoutes(); Assert.AreEqual(1, FakeServiceRouteMapper.RegistrationCalls); }