Exemple #1
0
        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);
        }
Exemple #4
0
        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);
        }