public void ExecutorExecuteSetsParentProcessIdOnDesignModeInitializer()
        {
            var parentProcessId = 2346;
            var parentProcessIdArgumentExecutor = new ParentProcessIdArgumentExecutor(CommandLineOptions.Instance);

            parentProcessIdArgumentExecutor.Initialize(parentProcessId.ToString());

            int actualParentProcessId = -1;

            this.executor = new PortArgumentExecutor(CommandLineOptions.Instance,
                                                     this.testRequestManager.Object,
                                                     (ppid, ph) =>
            {
                actualParentProcessId = ppid;
                return(testDesignModeClient.Object);
            },
                                                     this.mockProcessHelper.Object
                                                     );

            int port = 2345;

            this.executor.Initialize(port.ToString());
            var result = executor.Execute();

            testDesignModeClient.Verify(td =>
                                        td.ConnectToClientAndProcessRequests(port, testRequestManager.Object), Times.Once);

            Assert.AreEqual(parentProcessId, actualParentProcessId, "Parent process Id must be set correctly on design mode initializer");

            Assert.AreEqual(ArgumentProcessorResult.Success, result);
        }
        public void ExecutorInitializeWithValidPortShouldAddParentProcessIdToCommandLineOptions()
        {
            var executor        = new ParentProcessIdArgumentExecutor(CommandLineOptions.Instance);
            int parentProcessId = 2345;

            executor.Initialize(parentProcessId.ToString());
            Assert.AreEqual(parentProcessId, CommandLineOptions.Instance.ParentProcessId);
        }
        public void ExecutorExecuteReturnsArgumentProcessorResultSuccess()
        {
            var executor = new ParentProcessIdArgumentExecutor(CommandLineOptions.Instance);

            int parentProcessId = 2345;

            executor.Initialize(parentProcessId.ToString());
            var result = executor.Execute();

            Assert.AreEqual(ArgumentProcessorResult.Success, result);
        }
        public void ExecutorInitializeWithInvalidParentProcessIdShouldThrowCommandLineException()
        {
            var executor = new ParentProcessIdArgumentExecutor(CommandLineOptions.Instance);

            try
            {
                executor.Initialize("Foo");
            }
            catch (Exception ex)
            {
                Assert.IsTrue(ex is CommandLineException);
                Assert.AreEqual("The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process.", ex.Message);
            }
        }