Example #1
0
        public void Parse_DeleteItem_CreatesDefaultDelete()
        {
            // Arrange
            Parser       sut  = new Parser();
            const string Item = "TestItem";

            string[] items =
            {
                $"-{Item}"
            };

            // Act
            IEnumerable <EditItem> enumerable = sut.Parse(items);
            var actual = enumerable.First();

            // Assert
            // The defaults returned from the parser are not necessarily the
            // default values of the EditItem. Here are the defaults we
            // expect from the Parser:
            const EditItem.Location DefaultLocation = EditItem.Location.Beginning;
            const Hive DefaultHive = Hive.User;

            var expected = new EditItem(Item, EditItem.Action.Delete, DefaultHive, DefaultLocation);

            Assert.That(actual, Is.EqualTo(expected));
        }
Example #2
0
        public IEnumerable <EditItem> Parse(IEnumerable <string> tokens)
        {
            //defaults
            EditItem.Location location = EditItem.Location.Beginning;
            Hive hive = Hive.User;

            char[] charsToTrim = { '\'', '\"' };
            foreach (var token in tokens)
            {
                string     trimmed    = token.Trim(charsToTrim);
                PathParser pathParser = new PathParser(trimmed);
                ParmParser parmParser = new ParmParser(trimmed);

                if (pathParser.IsPath)
                {
                    var item = new EditItem(pathParser.Path, pathParser.Action, hive, location);
                    editItemList.Add(item);
                }
                else if (parmParser.IsParm)
                {
                    if (parmParser.HiveParm.HasValue)
                    {
                        hive = parmParser.HiveParm.Value;
                    }
                    if (parmParser.LocationParm.HasValue)
                    {
                        location = parmParser.LocationParm.Value;
                    }
                }
                else
                {
                    throw new Exception($"Bad parameter: {token}");
                }
            }
            return(editItemList);
        }
Example #3
0
        public void Parse_SpecifyHiveLoc_CreatesCorrespondingAdd(string tok, Hive hive, EditItem.Location loc)
        {
            // Arrange
            Parser       sut  = new Parser();
            const string Item = "TestItem";

            string[] items =
            {
                $"[{tok}]",
                $"+{Item}"
            };

            // Act
            IEnumerable <EditItem> enumerable = sut.Parse(items);
            var actual = enumerable.First();

            // Assert
            var expected = new EditItem(Item, EditItem.Action.Add, hive, loc);

            Assert.That(actual, Is.EqualTo(expected));
        }