예제 #1
0
        private IEnumerable <IHookMethod> GetHooksFromRegistry(string hookType)
        {
            _hookRegistry = _hookRegistry ?? new HookRegistry(_assemblyLoader);
            switch (hookType)
            {
            case "BeforeSuite":
                return(_hookRegistry.BeforeSuiteHooks);

            case "BeforeSpec":
                return(_hookRegistry.BeforeSpecHooks);

            case "BeforeScenario":
                return(_hookRegistry.BeforeScenarioHooks);

            case "BeforeStep":
                return(_hookRegistry.BeforeStepHooks);

            case "AfterStep":
                return(_hookRegistry.AfterStepHooks);

            case "AfterScenario":
                return(_hookRegistry.AfterScenarioHooks);

            case "AfterSpec":
                return(_hookRegistry.AfterSpecHooks);

            case "AfterSuite":
                return(_hookRegistry.AfterSuiteHooks);

            default:
                return(null);
            }
        }
예제 #2
0
 public HookExecutor(IAssemblyLoader assemblyLoader, IReflectionWrapper reflectionWrapper,
                     object claasInstanceManager) :
     base(assemblyLoader.ClassInstanceManagerType, reflectionWrapper, claasInstanceManager)
 {
     _assemblyLoader = assemblyLoader;
     _registry       = new HookRegistry(assemblyLoader);
 }
예제 #3
0
 public BindingInvoker(RuntimeConfiguration runtimeConfiguration,
                       IErrorProvider errorProvider,
                       IHookRegistry hookRegistry)
 {
     _hookRegistry  = hookRegistry;
     _targetInvoker = new TechTalk.SpecFlow.Bindings.BindingInvoker(runtimeConfiguration, errorProvider);
 }
예제 #4
0
 public Sandbox(IAssemblyLoader assemblyLoader, IHookRegistry hookRegistry, IActivatorWrapper activatorWrapper, IReflectionWrapper typeWrapper)
 {
     LogConfiguration.Initialize();
     _assemblyLoader        = assemblyLoader;
     _hookRegistry          = hookRegistry;
     this.activatorWrapper  = activatorWrapper;
     this.reflectionWrapper = typeWrapper;
     instanceManagerType    = _assemblyLoader.ClassInstanceManagerType;
     LoadClassInstanceManager();
 }
예제 #5
0
 public Sandbox(IAssemblyLoader assemblyLoader, IHookRegistry hookRegistry, IFileWrapper fileWrapper)
 {
     LogConfiguration.Initialize();
     _assemblyLoader = assemblyLoader;
     _hookRegistry   = hookRegistry;
     _fileWrapper    = fileWrapper;
     _libAssembly    = _assemblyLoader.GetTargetLibAssembly();
     SetAppConfigIfExists();
     ScanCustomScreenGrabber();
     LoadClassInstanceManager();
 }
예제 #6
0
 public SpecExecutionStartingProcessor(IHookRegistry hookRegistry, IMethodExecutor methodExecutor, ISandbox sandbox)
     : base(hookRegistry, methodExecutor)
 {
     _sandbox = sandbox;
 }
예제 #7
0
 protected TaggedHooksFirstExecutionProcessor(IHookRegistry hookRegistry, IMethodExecutor methodExecutor)
     : base(hookRegistry, methodExecutor)
 {
     Strategy = new TaggedHooksFirstStrategy();
 }
예제 #8
0
 public StepExecutionStartingProcessor(IHookRegistry hookRegistry, IMethodExecutor methodExecutor)
     : base(hookRegistry, methodExecutor)
 {
 }
예제 #9
0
 public ScenarioExecutionEndingProcessor(IHookRegistry hookRegistry, IMethodExecutor methodExecutor, ISandbox sandbox)
     : base(hookRegistry, methodExecutor)
 {
     _sandbox = sandbox;
 }
예제 #10
0
        private Dictionary <Message.Types.MessageType, IMessageProcessor> InitializeMessageHandlers(IStepRegistry stepRegistry,
                                                                                                    IHookRegistry hookRegistry)
        {
            var methodExecutor  = new MethodExecutor(_sandbox);
            var messageHandlers = new Dictionary <Message.Types.MessageType, IMessageProcessor>
            {
                { Message.Types.MessageType.ExecutionStarting, new ExecutionStartingProcessor(hookRegistry, methodExecutor) },
                { Message.Types.MessageType.ExecutionEnding, new ExecutionEndingProcessor(hookRegistry, methodExecutor) },
                { Message.Types.MessageType.SpecExecutionStarting, new SpecExecutionStartingProcessor(hookRegistry, methodExecutor) },
                { Message.Types.MessageType.SpecExecutionEnding, new SpecExecutionEndingProcessor(hookRegistry, methodExecutor) },
                { Message.Types.MessageType.ScenarioExecutionStarting, new ScenarioExecutionStartingProcessor(hookRegistry, methodExecutor) },
                { Message.Types.MessageType.ScenarioExecutionEnding, new ScenarioExecutionEndingProcessor(hookRegistry, methodExecutor) },
                { Message.Types.MessageType.StepExecutionStarting, new StepExecutionStartingProcessor(hookRegistry, methodExecutor) },
                { Message.Types.MessageType.StepExecutionEnding, new StepExecutionEndingProcessor(hookRegistry, methodExecutor) },
                { Message.Types.MessageType.ExecuteStep, new ExecuteStepProcessor(stepRegistry, methodExecutor) },
                { Message.Types.MessageType.KillProcessRequest, new KillProcessProcessor() },
                { Message.Types.MessageType.StepNamesRequest, new StepNamesProcessor(_stepScanner) },
                { Message.Types.MessageType.StepValidateRequest, new StepValidationProcessor(stepRegistry) },
                { Message.Types.MessageType.ScenarioDataStoreInit, new ScenarioDataStoreInitProcessor(_sandbox) },
                { Message.Types.MessageType.SpecDataStoreInit, new SpecDataStoreInitProcessor(_sandbox) },
                { Message.Types.MessageType.SuiteDataStoreInit, new SuiteDataStoreInitProcessor(_sandbox) },
                { Message.Types.MessageType.StepNameRequest, new StepNameProcessor(stepRegistry) },
                { Message.Types.MessageType.RefactorRequest, new RefactorProcessor(stepRegistry) },
            };

            return(messageHandlers);
        }
예제 #11
0
 public SpecExecutionEndingProcessor(IHookRegistry hookRegistry, IMethodExecutor methodExecutor)
     : base(hookRegistry, methodExecutor)
 {
 }
예제 #12
0
 protected HookExecutionProcessor(IHookRegistry hookRegistry, IMethodExecutor methodExecutor)
 {
     MethodExecutor = methodExecutor;
     Hooks          = hookRegistry;
     Strategy       = new HooksStrategy();
 }