Ejemplo n.º 1
0
        public void CustomColorsNormalPath()
        {
            var cgr = new ColorGroupReader(dm, defaultFileInfo.Name, customFileInfo.Name);

            // verify the defaults have changed
            var defaultColor = cgr.GetColor("default");

            Assert.IsNotNull(defaultColor);
            Assert.IsTrue(defaultColor.Foreground == ConsoleColor.Green);
            Assert.IsTrue(defaultColor.Background == ConsoleColor.DarkMagenta);

            // verify a value from the default colors
            var oldColor = cgr.GetColor("basePath");

            Assert.IsNotNull(oldColor);
            Assert.IsTrue(oldColor.Foreground == ConsoleColor.Cyan);
            Assert.IsTrue(oldColor.Background == ConsoleColor.DarkBlue);

            // verify an identical in the test data
            var newGroup = cgr.GetColor("newgroup");

            Assert.IsNotNull(newGroup);
            Assert.IsTrue(newGroup.Foreground == ConsoleColor.Red);
            Assert.IsTrue(newGroup.Background == ConsoleColor.DarkRed);
        }
Ejemplo n.º 2
0
        public void ValidPathWhitespaceGroupNameUsesDefault(string groupName)
        {
            var cgr = new ColorGroupReader(dm, defaultFileInfo.Name, "Nothing.csv");

            var defaultColor = cgr.GetColor("default");
            var color        = cgr.GetColor(groupName);

            Assert.IsNotNull(color);
            Assert.IsTrue(color.Foreground == defaultColor.Foreground);
            Assert.IsTrue(color.Background == defaultColor.Background);
        }
Ejemplo n.º 3
0
        public void ValidPathDefaultsWithOverride()
        {
            var cgr = new ColorGroupReader(dm, defaultFileInfo.Name, "Nothing.csv");

            var color = cgr.GetColor("sysFolder", null, ConsoleColor.DarkMagenta);

            Assert.IsNotNull(color);
            Assert.IsTrue(color.Foreground == ConsoleColor.White);
            Assert.IsTrue(color.Background == ConsoleColor.DarkMagenta);

            color = cgr.GetColor("sysFolder", ConsoleColor.Green, ConsoleColor.DarkMagenta);
            Assert.IsNotNull(color);
            Assert.IsTrue(color.Foreground == ConsoleColor.Green);
            Assert.IsTrue(color.Background == ConsoleColor.DarkMagenta);
        }
Ejemplo n.º 4
0
        public void ValidPathDefaultsOnly()
        {
            var cgr = new ColorGroupReader(dm, defaultFileInfo.Name, "Nothing.csv");

            var defaultColor = cgr.GetColor("default");

            Assert.IsNotNull(defaultColor);
            Assert.IsTrue(defaultColor.Foreground == ConsoleColor.Gray);
            Assert.IsNull(defaultColor.Background);

            // verify the last value in the test data
            var sysFolder = cgr.GetColor("sysFolder");

            Assert.IsNotNull(sysFolder);
            Assert.IsTrue(sysFolder.Foreground == ConsoleColor.White);
            Assert.IsTrue(sysFolder.Background == ConsoleColor.DarkRed);
        }
Ejemplo n.º 5
0
        public void VerifyDefaultColor()
        {
            var cgr = new ColorGroupReader(dm, defaultFileInfo.Name, "Nothing.csv");

            var logicalDefaultColor = cgr.GetDefaultColor();

            Assert.IsNotNull(logicalDefaultColor);

            var defaultColor = cgr.GetColor("default");

            Assert.IsTrue(logicalDefaultColor.Foreground == defaultColor.Foreground);
            Assert.IsTrue(logicalDefaultColor.Background == defaultColor.Background);
        }
Ejemplo n.º 6
0
        public void VerifyBadGroupNameUsesDefaultColor()
        {
            var cgr = new ColorGroupReader(dm, defaultFileInfo.Name, "Nothing.csv");

            var defaultColor = cgr.GetDefaultColor();

            Assert.IsNotNull(defaultColor);

            var color = cgr.GetColor("ABCZXY");

            Assert.IsNotNull(color);
            Assert.IsTrue(defaultColor.Foreground == color.Foreground);
            Assert.IsTrue(defaultColor.Background == color.Background);
        }
Ejemplo n.º 7
0
        public virtual TResult GetCommandResults(bool skipCache = false)
        {
            if (RepositoryDirectories == null)
            {
                return(null);
            }
            if (string.IsNullOrWhiteSpace(RepositoryDirectories.RootFolder))
            {
                return(null);
            }
            if (string.IsNullOrWhiteSpace(this.Command))
            {
                return(null);
            }

            var cacheName = BuildCacheName();

            var useCache = this.UseCache;

            if (skipCache || RepositoryDirectories.IgnoreCache || string.IsNullOrWhiteSpace(this.CacheName))
            {
                useCache = false;
            }

            TResult resultOut = default(TResult);

            if (useCache)
            {
                resultOut = RepositoryDirectories.Cache.Get <TResult>(cacheName);
            }
            this.CommandOutput = null;

            if (resultOut == default(TResult) || !useCache)
            {
                var execFolder = this.CommandExecFolder ?? RepositoryDirectories.RootFolder;
                var writer     = new ConsoleWriter();
                var barColor   = _colorGroups.GetColor("commandExecBar");
                writer.WriteHeader(this.Command, barColor.Foreground, barColor.Background, ConsoleTextPosition.Center);
                var result = DWPSUtils.ExecuteCommandSync(_diskManager, _processManager, this.Command, execFolder);
                writer.ResetConsole();

                resultOut = this.Parser.Parse(result.Output);

                AddItemToCache(RepositoryDirectories, cacheName, resultOut);
                this.CommandOutput = result.Output;
            }

            return(resultOut);
        }
Ejemplo n.º 8
0
        public void Execute(IWriteTextCmdlet cmdLet)
        {
            if (_originalColors == null)
            {
                _originalColors = new ColorPair();
            }
            ColorPair group = new ColorPair(cmdLet.ForegroundColor, cmdLet.BackgroundColor);

            var blocks     = GetTextValues(cmdLet);
            var colors     = GetColorGroups(cmdLet);
            var useNewLine = !this.NoNewLine;

            var lastPos = blocks.Length - 1;

            for (var i = 0; i < blocks.Length; i++)
            {
                var colGroup = i < colors.Length ? colors[i] : null;
                if (colGroup != null)
                {
                    group = _colors.GetColor(colGroup, cmdLet.ForegroundColor, cmdLet.BackgroundColor);
                }

                if (i == lastPos && useNewLine)
                {
                    _writer.WriteLine(blocks[i], group);
                }
                else
                {
                    _writer.Write(blocks[i], group);
                }
            }

            if (this.NoColorReset)
            {
                group.ApplyColors();
            }
            if (this.ForceColorReset)
            {
                _originalColors.ResetColors();
            }
        }