/// <summary> /// Services the specified service provider. /// </summary> /// <param name="serviceProvider">The service provider.</param> public void Service(IServiceProvider serviceProvider) { ILoggerFactory loggerFactory = (ILoggerFactory) serviceProvider.GetService(typeof(ILoggerFactory)); if (loggerFactory != null) { logger = loggerFactory.Create(typeof(DefaultControllerDescriptorProvider)); } helperDescriptorProvider = (IHelperDescriptorProvider) serviceProvider.GetService(typeof(IHelperDescriptorProvider)); filterDescriptorProvider = (IFilterDescriptorProvider) serviceProvider.GetService(typeof(IFilterDescriptorProvider)); layoutDescriptorProvider = (ILayoutDescriptorProvider) serviceProvider.GetService(typeof(ILayoutDescriptorProvider)); rescueDescriptorProvider = (IRescueDescriptorProvider) serviceProvider.GetService(typeof(IRescueDescriptorProvider)); resourceDescriptorProvider = (IResourceDescriptorProvider) serviceProvider.GetService(typeof(IResourceDescriptorProvider)); transformFilterDescriptorProvider = (ITransformFilterDescriptorProvider) serviceProvider.GetService(typeof(ITransformFilterDescriptorProvider)); }
public void DescriptorIsCreatedForControllerAndAction() { helperDescProviderMock = mockRepository.DynamicMock <IHelperDescriptorProvider>(); filterDescProviderMock = mockRepository.DynamicMock <IFilterDescriptorProvider>(); layoutDescProviderMock = mockRepository.DynamicMock <ILayoutDescriptorProvider>(); rescueDescProviderMock = mockRepository.DynamicMock <IRescueDescriptorProvider>(); resourceProviderMock = mockRepository.DynamicMock <IResourceDescriptorProvider>(); transformDescProviderMock = mockRepository.DynamicMock <ITransformFilterDescriptorProvider>(); returnTypeDescProviderMock = mockRepository.DynamicMock <IReturnBinderDescriptorProvider>(); dynamicActionProviderDescProviderMock = mockRepository.DynamicMock <IDynamicActionProviderDescriptorProvider>(); provider = new DefaultControllerDescriptorProvider(helperDescProviderMock, filterDescProviderMock, layoutDescProviderMock, rescueDescProviderMock, resourceProviderMock, transformDescProviderMock, returnTypeDescProviderMock, dynamicActionProviderDescProviderMock); var controllerType = typeof(SingleActionController); var actionMethod = controllerType.GetMethod("Action1"); using (mockRepository.Record()) { // Controller level Expect.Call(helperDescProviderMock.CollectHelpers(controllerType)).Return(new HelperDescriptor[0]); Expect.Call(resourceProviderMock.CollectResources(controllerType)).Return(new ResourceDescriptor[0]); Expect.Call(filterDescProviderMock.CollectFilters(controllerType)).Return(new FilterDescriptor[0]); Expect.Call(layoutDescProviderMock.CollectLayout(controllerType)).Return(null); Expect.Call(rescueDescProviderMock.CollectRescues(controllerType)).Return(new RescueDescriptor[0]); // Action level Expect.Call(resourceProviderMock.CollectResources(actionMethod)).Return(new ResourceDescriptor[0]); Expect.Call(rescueDescProviderMock.CollectRescues(actionMethod)).Return(new RescueDescriptor[0]); Expect.Call(layoutDescProviderMock.CollectLayout(actionMethod)).Return(null); Expect.Call(transformDescProviderMock.CollectFilters(actionMethod)).Return(new TransformFilterDescriptor[0]); Expect.Call(returnTypeDescProviderMock.Collect(actionMethod)).Return(null); Expect.Call(dynamicActionProviderDescProviderMock.CollectProviders(controllerType)).Return( new DynamicActionProviderDescriptor[0]); } using (mockRepository.Playback()) { var metaDesc = provider.BuildDescriptor(controllerType); Assert.IsNotNull(metaDesc); var actionMetaDesc = metaDesc.GetAction(actionMethod); Assert.IsNotNull(actionMetaDesc); Assert.IsNull(actionMetaDesc.AccessibleThrough); } }
/// <summary> /// Initializes a new instance of the <see cref="DefaultControllerDescriptorProvider"/> class. /// </summary> /// <param name="helperDescriptorProvider">The helper descriptor provider.</param> /// <param name="filterDescriptorProvider">The filter descriptor provider.</param> /// <param name="layoutDescriptorProvider">The layout descriptor provider.</param> /// <param name="rescueDescriptorProvider">The rescue descriptor provider.</param> /// <param name="resourceDescriptorProvider">The resource descriptor provider.</param> /// <param name="transformFilterDescriptorProvider">The transform filter descriptor provider.</param> /// <param name="returnBinderDescriptorProvider">The return binder descriptor provider.</param> /// <param name="dynamicActionProviderDescriptorProvider">The dynamic action provider descriptor provider.</param> public DefaultControllerDescriptorProvider(IHelperDescriptorProvider helperDescriptorProvider, IFilterDescriptorProvider filterDescriptorProvider, ILayoutDescriptorProvider layoutDescriptorProvider, IRescueDescriptorProvider rescueDescriptorProvider, IResourceDescriptorProvider resourceDescriptorProvider, ITransformFilterDescriptorProvider transformFilterDescriptorProvider, IReturnBinderDescriptorProvider returnBinderDescriptorProvider, IDynamicActionProviderDescriptorProvider dynamicActionProviderDescriptorProvider) { this.helperDescriptorProvider = helperDescriptorProvider; this.filterDescriptorProvider = filterDescriptorProvider; this.layoutDescriptorProvider = layoutDescriptorProvider; this.rescueDescriptorProvider = rescueDescriptorProvider; this.resourceDescriptorProvider = resourceDescriptorProvider; this.transformFilterDescriptorProvider = transformFilterDescriptorProvider; this.returnBinderDescriptorProvider = returnBinderDescriptorProvider; this.dynamicActionProviderDescriptorProvider = dynamicActionProviderDescriptorProvider; }
/// <summary> /// Services the specified service provider. /// </summary> /// <param name="serviceProvider">The service provider.</param> public void Service(IMonoRailServices serviceProvider) { var loggerFactory = (ILoggerFactory)serviceProvider.GetService(typeof(ILoggerFactory)); if (loggerFactory != null) { logger = loggerFactory.Create(typeof(DefaultControllerDescriptorProvider)); } helperDescriptorProvider = serviceProvider.GetService <IHelperDescriptorProvider>(); filterDescriptorProvider = serviceProvider.GetService <IFilterDescriptorProvider>(); layoutDescriptorProvider = serviceProvider.GetService <ILayoutDescriptorProvider>(); rescueDescriptorProvider = serviceProvider.GetService <IRescueDescriptorProvider>(); resourceDescriptorProvider = serviceProvider.GetService <IResourceDescriptorProvider>(); transformFilterDescriptorProvider = serviceProvider.GetService <ITransformFilterDescriptorProvider>(); returnBinderDescriptorProvider = serviceProvider.GetService <IReturnBinderDescriptorProvider>(); dynamicActionProviderDescriptorProvider = serviceProvider.GetService <IDynamicActionProviderDescriptorProvider>(); }
public void DescriptorIsCreatedForControllerAndAction() { helperDescProviderMock = mockRepository.DynamicMock<IHelperDescriptorProvider>(); filterDescProviderMock = mockRepository.DynamicMock<IFilterDescriptorProvider>(); layoutDescProviderMock = mockRepository.DynamicMock<ILayoutDescriptorProvider>(); rescueDescProviderMock = mockRepository.DynamicMock<IRescueDescriptorProvider>(); resourceProviderMock = mockRepository.DynamicMock<IResourceDescriptorProvider>(); transformDescProviderMock = mockRepository.DynamicMock<ITransformFilterDescriptorProvider>(); returnTypeDescProviderMock = mockRepository.DynamicMock<IReturnBinderDescriptorProvider>(); dynamicActionProviderDescProviderMock = mockRepository.DynamicMock<IDynamicActionProviderDescriptorProvider>(); provider = new DefaultControllerDescriptorProvider(helperDescProviderMock, filterDescProviderMock, layoutDescProviderMock, rescueDescProviderMock, resourceProviderMock, transformDescProviderMock, returnTypeDescProviderMock, dynamicActionProviderDescProviderMock); Type controllerType = typeof(SingleActionController); MethodInfo actionMethod = controllerType.GetMethod("Action1"); using(mockRepository.Record()) { // Controller level Expect.Call(helperDescProviderMock.CollectHelpers(controllerType)).Return(new HelperDescriptor[0]); Expect.Call(resourceProviderMock.CollectResources(controllerType)).Return(new ResourceDescriptor[0]); Expect.Call(filterDescProviderMock.CollectFilters(controllerType)).Return(new FilterDescriptor[0]); Expect.Call(layoutDescProviderMock.CollectLayout(controllerType)).Return(null); Expect.Call(rescueDescProviderMock.CollectRescues(controllerType)).Return(new RescueDescriptor[0]); // Action level Expect.Call(resourceProviderMock.CollectResources(actionMethod)).Return(new ResourceDescriptor[0]); Expect.Call(rescueDescProviderMock.CollectRescues(actionMethod)).Return(new RescueDescriptor[0]); Expect.Call(layoutDescProviderMock.CollectLayout(actionMethod)).Return(null); Expect.Call(transformDescProviderMock.CollectFilters(actionMethod)).Return(new TransformFilterDescriptor[0]); Expect.Call(returnTypeDescProviderMock.Collect(actionMethod)).Return(null); Expect.Call(dynamicActionProviderDescProviderMock.CollectProviders(controllerType)).Return( new DynamicActionProviderDescriptor[0]); } using(mockRepository.Playback()) { ControllerMetaDescriptor metaDesc = provider.BuildDescriptor(controllerType); Assert.IsNotNull(metaDesc); ActionMetaDescriptor actionMetaDesc = metaDesc.GetAction(actionMethod); Assert.IsNotNull(actionMetaDesc); Assert.IsNull(actionMetaDesc.AccessibleThrough); } }
/// <summary> /// Services the specified service provider. /// </summary> /// <param name="serviceProvider">The service provider.</param> public void Service(IMonoRailServices serviceProvider) { var loggerFactory = (ILoggerFactory) serviceProvider.GetService(typeof(ILoggerFactory)); if (loggerFactory != null) { logger = loggerFactory.Create(typeof(DefaultControllerDescriptorProvider)); } helperDescriptorProvider = serviceProvider.GetService<IHelperDescriptorProvider>(); filterDescriptorProvider = serviceProvider.GetService<IFilterDescriptorProvider>(); layoutDescriptorProvider = serviceProvider.GetService<ILayoutDescriptorProvider>(); rescueDescriptorProvider = serviceProvider.GetService<IRescueDescriptorProvider>(); resourceDescriptorProvider = serviceProvider.GetService<IResourceDescriptorProvider>(); transformFilterDescriptorProvider = serviceProvider.GetService<ITransformFilterDescriptorProvider>(); returnBinderDescriptorProvider = serviceProvider.GetService<IReturnBinderDescriptorProvider>(); dynamicActionProviderDescriptorProvider = serviceProvider.GetService<IDynamicActionProviderDescriptorProvider>(); }