/// <summary>
 /// Initializes a new cmdlet with a default color formatter.
 /// </summary>
 public FormatTestResultCmdlet()
 {
     ColorFormatter = new PowerShellColorFormatter(
         new RunspaceWrapper(Runspace.DefaultRunspace)
     );
     SuccessColor = DefaultSuccessColor;
     FailureColor = DefaultFailureColor;
     ForegroundColor = DefaultForegroundColor;
 }
 /// <summary>
 /// Initializes a new cmdlet with a default color formatter.
 /// </summary>
 public FormatTestResultCmdlet()
 {
     ColorFormatter = new PowerShellColorFormatter(
         new RunspaceWrapper(Runspace.DefaultRunspace)
         );
     SuccessColor    = DefaultSuccessColor;
     FailureColor    = DefaultFailureColor;
     ForegroundColor = DefaultForegroundColor;
 }
        public void CtorSavesRunspaceReference()
        {
            // Arrange.
            var expectedRunspace = MockRepository.GenerateStub<IRunspace>();

            // Act.
            var formatter = new PowerShellColorFormatter(expectedRunspace);

            // Assert.
            Assert.AreEqual(expectedRunspace, formatter.Runspace);
        }
        public void SetColor()
        {
            // Arrange.
            const string bgColor = "bgColor";
            var bgCommand = string.Format(
                "$Host.UI.RawUI.BackgroundColor = '{0}'",
                bgColor
            );
            const string fgColor = "fgColor";
            var fgCommand = string.Format(
                "$Host.UI.RawUI.ForegroundColor = '{0}'",
                fgColor
            );

            var pipeline = MockRepository.GenerateMock<IPipeline>();
            pipeline.Expect(p => p.Invoke()).Return(null);

            var runspace = MockRepository.GenerateMock<IRunspace>();
            runspace
                .Expect(r => r.CreateNestedPipeline(fgCommand, false))
                .Return(pipeline);
            runspace
                .Expect(r => r.CreateNestedPipeline(bgCommand, false))
                .Return(pipeline);

            var formatter = new PowerShellColorFormatter(runspace);

            // Act.
            formatter.SetColor(fgColor, bgColor);

            // Assert.
            runspace.VerifyAllExpectations();
            pipeline.VerifyAllExpectations();
        }