public void analyzeCommandsInDirectory() { // // TODO: Add test logic here // createDir(); createFile("a.exe"); createFile("b.cmd"); createFile("c.bat"); createFile("d.com"); var result = DirectoryAnalyzer.analyze(dir); Assert.IsTrue(isContainsCommand(result, new Command { name = "a", type = ".exe" })); Assert.IsTrue(isContainsCommand(result, new Command { name = "b", type = ".cmd" })); Assert.IsTrue(isContainsCommand(result, new Command { name = "c", type = ".bat" })); Assert.IsTrue(isContainsCommand(result, new Command { name = "d", type = ".com" })); }
public void analyzeInvalidCommand() { createDir(); createFile("a.xlsx"); createFile("a.ppt"); createFile("bbbb.exe"); var result = DirectoryAnalyzer.analyze(dir); Assert.IsTrue(isContainsCommand(result, new Command { name = "bbbb", type = ".exe" })); Assert.IsFalse(isContainsCommand(result, new Command { name = "a", type = ".xlsx" })); Assert.IsFalse(isContainsCommand(result, new Command { name = "a", type = ".ppt" })); }
public void analyzeAmbiguousCommand() { createDir(); createFile("a.cmd"); createFile("a.bat"); var result = DirectoryAnalyzer.analyze(dir); Assert.IsTrue(isContainsCommand(result, new Command { name = "a", type = ".cmd" })); Assert.IsTrue(isContainsCommand(result, new Command { name = "a", type = ".bat" })); }
public IEnumerable <ICommand> analyze(Parameter parameter) { var values = parameter.keyValues; var flags = parameter.flags; var dir = values.ContainsKey("dir") ? values["dir"] : "."; var di = new DirectoryInfo(dir); var output = values.ContainsKey("output") ? values["output"] : (di.Name + ".json"); var result = DirectoryAnalyzer.analyze(dir); if (flags.Contains("p")) { foreach (var cmd in result) { Console.WriteLine(cmd.ToString()); } } JsonSerializer.objectToFile <List <Command> >((from p in result select(Command) p).ToList(), output); return(result); }
public void analyzeSystemCommands() { var _sysCommands = new List <ICommand>(); var _userCommands = new List <ICommand>(); var paths = System.Environment.GetEnvironmentVariable("path").Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); var _myPath = new DirectoryInfo(myPath); foreach (var path in paths) { var _path = Environment.ExpandEnvironmentVariables(path); var cmds = DirectoryAnalyzer.analyze(_path); if (new DirectoryInfo(_path).ToString() == _myPath.ToString()) { _userCommands.AddRange(cmds); } else { _sysCommands.AddRange(cmds); } } sysCommands = _sysCommands; userCommands = _userCommands; }