public void StartIISWebServerExecutor_Verify_SetsIsSuccess_ToTrueDirectly()
        {
            //// Arrange
            var activity         = GetStartIISWebServerActivity();
            var shellManagerMock = new Mock <IShellManager>(MockBehavior.Strict);
            var executor         = new StartIISWebServerExecutor(activity, shellManagerMock.Object);

            //// Act
            executor.Verify();

            //// Assert
            shellManagerMock.Verify();
            Assert.IsTrue(executor.Result.IsSuccess);
        }
        public void StartIISWebServerExecutor_Constructor_Sets_ActivityScriptAndVerificationScript()
        {
            //// Arrange
            var activity         = GetStartIISWebServerActivity();
            var shellManagerMock = new Mock <IShellManager>(MockBehavior.Strict);

            //// Act
            var executor = new StartIISWebServerExecutor(activity, shellManagerMock.Object);

            //// Assert
            shellManagerMock.Verify();
            Assert.IsNotNull(executor.ActivityScriptMap);
            Assert.IsFalse(string.IsNullOrWhiteSpace(executor.ActivityScriptMap.ExecutionScript));
            Assert.IsTrue(string.IsNullOrWhiteSpace(executor.ActivityScriptMap.VerificationScript));
        }
        public void StartIISWebServerExecutor_Execute_CallsShellManager_WithGivenParameters()
        {
            //// Arrange
            var activity         = GetStartIISWebServerActivity();
            var shellManagerMock = new Mock <IShellManager>(MockBehavior.Strict);

            shellManagerMock.Setup(sm => sm.ExecuteCommands(
                                       It.Is <String>(s => IsSameHost(s, activity.Host.HostName)),
                                       It.Is <List <ScriptWithParameters> >(paramList => ContainsParamsFromActivity(paramList.First(), (StartIISWebServerActivity)activity)),
                                       true)).Returns(new Collection <object>());
            var executor = new StartIISWebServerExecutor(activity, shellManagerMock.Object);

            //// Act
            executor.Execute();

            //// Assert
            shellManagerMock.Verify();
        }
        public void StartIISWebServerExecutor_Execute_Sets_IsSuccessToFalse_DuringException()
        {
            //// Arrange
            var activity         = GetStartIISWebServerActivity();
            var shellManagerMock = new Mock <IShellManager>(MockBehavior.Strict);

            shellManagerMock.Setup(sm => sm.ExecuteCommands(
                                       It.Is <String>(s => IsSameHost(s, activity.Host.HostName)),
                                       It.Is <List <ScriptWithParameters> >(paramList => ContainsParamsFromActivity(paramList.First(), (StartIISWebServerActivity)activity)),
                                       true)).Throws(new ApplicationException("Sample exception"));
            var executor = new StartIISWebServerExecutor(activity, shellManagerMock.Object);

            //// Act
            executor.Execute();

            //// Assert
            shellManagerMock.Verify();
            Assert.IsFalse(executor.Result.IsSuccess);
        }