public void ShouldExecuteHooks() { var executionResult = new ExecutionResult { Success = true }; var mockReflectionWrapper = new Mock <IReflectionWrapper>(); var mockAssemblyLoader = new Mock <IAssemblyLoader>(); var mockActivationWrapper = new Mock <IActivatorWrapper>(); var mockClassInstanceManager = new Mock <object>().Object; var hooksStrategy = new HooksStrategy(); var mockHookExecuter = new Mock <IHookExecutor>(); mockHookExecuter.Setup(m => m.Execute("hooks", hooksStrategy, new List <string>(), It.IsAny <ExecutionContext>()) ).Returns(executionResult).Verifiable(); var mockStepExecuter = new Mock <IStepExecutor>(); var reflectionWrapper = mockReflectionWrapper.Object; var assemblyLoader = mockAssemblyLoader.Object; var executionOrchestrator = new ExecutionOrchestrator(reflectionWrapper, assemblyLoader, mockActivationWrapper.Object, mockClassInstanceManager, mockHookExecuter.Object, mockStepExecuter.Object); var result = executionOrchestrator.ExecuteHooks("hooks", hooksStrategy, new List <string>(), It.IsAny <ExecutionContext>()); mockHookExecuter.VerifyAll(); Assert.False(result.Failed); }
public void ShouldExecuteHooksAndNotTakeScreenshotOnFailureWhenDisabled() { var pendingMessages = new List <string> { "Foo", "Bar" }; var pendingScrennshots = new List <byte[]> { Encoding.ASCII.GetBytes("screenshot") }; var hooksStrategy = new HooksStrategy(); var executionResult = new ExecutionResult { Success = false, ExceptionMessage = "Some Error", StackTrace = "StackTrace" }; var mockClassInstanceManager = new Mock <object>().Object; var mockReflectionWrapper = new Mock <IReflectionWrapper>(); var mockAssemblyLoader = new Mock <IAssemblyLoader>(); var mockActivationWrapper = new Mock <IActivatorWrapper>(); var mockHookExecuter = new Mock <IHookExecutor>(); var mockStepExecuter = new Mock <IStepExecutor>(); var reflectionWrapper = mockReflectionWrapper.Object; var assemblyLoader = mockAssemblyLoader.Object; var orchestrator = new ExecutionOrchestrator(reflectionWrapper, assemblyLoader, mockActivationWrapper.Object, mockClassInstanceManager, mockHookExecuter.Object, mockStepExecuter.Object); mockHookExecuter.Setup(executor => executor.Execute("hooks", hooksStrategy, new List <string>(), It.IsAny <ExecutionContext>()) ).Returns(executionResult).Verifiable(); var mockType = new Mock <Type>().Object; mockAssemblyLoader.Setup(x => x.GetLibType(LibType.MessageCollector)).Returns(mockType); mockAssemblyLoader.Setup(x => x.GetLibType(LibType.ScreenshotCollector)).Returns(mockType); mockReflectionWrapper.Setup(x => x.InvokeMethod(mockType, null, "GetAllPendingMessages", It.IsAny <BindingFlags>())) .Returns(pendingMessages); mockReflectionWrapper.Setup(x => x.InvokeMethod(mockType, null, "GetAllPendingScreenshots", It.IsAny <BindingFlags>())) .Returns(pendingScrennshots); var screenshotEnabled = Utils.TryReadEnvValue("SCREENSHOT_ON_FAILURE"); Environment.SetEnvironmentVariable("SCREENSHOT_ON_FAILURE", "false"); var result = orchestrator.ExecuteHooks("hooks", hooksStrategy, new List <string>(), new ExecutionContext()); mockHookExecuter.VerifyAll(); Assert.True(result.Failed); Assert.True(result.FailureScreenshot.IsNullOrEmpty()); Environment.SetEnvironmentVariable("SCREENSHOT_ON_FAILURE", screenshotEnabled); }
public void ShouldExecuteHooks() { var pendingMessages = new List <string> { "Foo", "Bar" }; var pendingScrennshots = new List <byte[]> { Encoding.ASCII.GetBytes("screenshot") }; var executionResult = new ExecutionResult { Success = true }; var mockReflectionWrapper = new Mock <IReflectionWrapper>(); var mockAssemblyLoader = new Mock <IAssemblyLoader>(); var mockActivationWrapper = new Mock <IActivatorWrapper>(); var mockClassInstanceManager = new Mock <object>().Object; var hooksStrategy = new HooksStrategy(); var mockHookExecuter = new Mock <IHookExecutor>(); mockHookExecuter.Setup(m => m.Execute("hooks", hooksStrategy, new List <string>(), It.IsAny <ExecutionContext>()) ).Returns(executionResult).Verifiable(); var mockStepExecuter = new Mock <IStepExecutor>(); var reflectionWrapper = mockReflectionWrapper.Object; var mockType = new Mock <Type>().Object; mockAssemblyLoader.Setup(x => x.GetLibType(LibType.MessageCollector)).Returns(mockType); mockAssemblyLoader.Setup(x => x.GetLibType(LibType.ScreenshotCollector)).Returns(mockType); mockReflectionWrapper.Setup(x => x.InvokeMethod(mockType, null, "GetAllPendingMessages", It.IsAny <BindingFlags>())) .Returns(pendingMessages); mockReflectionWrapper.Setup(x => x.InvokeMethod(mockType, null, "GetAllPendingScreenshots", It.IsAny <BindingFlags>())) .Returns(pendingScrennshots); var assemblyLoader = mockAssemblyLoader.Object; var executionOrchestrator = new ExecutionOrchestrator(reflectionWrapper, assemblyLoader, mockActivationWrapper.Object, mockClassInstanceManager, mockHookExecuter.Object, mockStepExecuter.Object); var result = executionOrchestrator.ExecuteHooks("hooks", hooksStrategy, new List <string>(), It.IsAny <ExecutionContext>()); mockHookExecuter.VerifyAll(); Assert.False(result.Failed); }
public void ShouldExecuteHooksAndNotTakeScreenshotOnFailureWhenDisabled() { var hooksStrategy = new HooksStrategy(); var executionResult = new ExecutionResult { Success = false, ExceptionMessage = "Some Error", StackTrace = "StackTrace" }; var mockClassInstanceManager = new Mock <object>().Object; var mockReflectionWrapper = new Mock <IReflectionWrapper>(); var mockAssemblyLoader = new Mock <IAssemblyLoader>(); var mockActivationWrapper = new Mock <IActivatorWrapper>(); var mockHookExecuter = new Mock <IHookExecutor>(); var mockStepExecuter = new Mock <IStepExecutor>(); var reflectionWrapper = mockReflectionWrapper.Object; var assemblyLoader = mockAssemblyLoader.Object; var orchestrator = new ExecutionOrchestrator(reflectionWrapper, assemblyLoader, mockActivationWrapper.Object, mockClassInstanceManager, mockHookExecuter.Object, mockStepExecuter.Object); mockHookExecuter.Setup(executor => executor.Execute("hooks", hooksStrategy, new List <string>(), It.IsAny <ExecutionContext>()) ).Returns(executionResult).Verifiable(); var screenshotEnabled = Utils.TryReadEnvValue("SCREENSHOT_ON_FAILURE"); Environment.SetEnvironmentVariable("SCREENSHOT_ON_FAILURE", "false"); var result = orchestrator.ExecuteHooks("hooks", hooksStrategy, new List <string>(), new ExecutionContext()); mockHookExecuter.VerifyAll(); Assert.True(result.Failed); Assert.True(result.ScreenShot.IsNullOrEmpty()); Environment.SetEnvironmentVariable("SCREENSHOT_ON_FAILURE", screenshotEnabled); }