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)); }
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); }
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)); }