public void Fail_When_NotExisting_Directory_Passed()
        {
            CommandParser        parser = new CommandParser();
            var                  data   = parser.Parse(new string[] { "-getpdbs", @"c:\notexistingDir\*.dll" });
            DowndLoadPdbsCommand cmd    = (DowndLoadPdbsCommand)data.GetCommand();

            cmd.Out = new StringWriter();
            cmd.Execute();
            StringAssert.Contains("Invalid directory in", cmd.Out.ToString());
        }
        public void Fail_When_No_More_Argments_Passed()
        {
            CommandParser        parser = new CommandParser();
            var                  data   = parser.Parse(new string[] { "-getpdbs" });
            DowndLoadPdbsCommand cmd    = (DowndLoadPdbsCommand)data.GetCommand();

            cmd.Out = new StringWriter();
            cmd.Execute();
            StringAssert.Contains("File query for the dll/exe file is not present. E.g. *.dll to download", cmd.Out.ToString());
        }
        public void Fail_More_Arguments_Than_Needed()
        {
            CommandParser        parser = new CommandParser();
            var                  data   = parser.Parse(new string[] { "-getpdbs", @"%windir%\system32\..\system32\kernel32.dll", "downloaddir", "additionalarg" });
            DowndLoadPdbsCommand cmd    = (DowndLoadPdbsCommand)data.GetCommand();

            cmd.Out = new StringWriter();
            cmd.Execute();
            StringAssert.Contains("Error: The argument", cmd.Out.ToString());
        }
        public void FailedPdbCount_Is_One_When_Pdb_Could_Not_Be_Found()
        {
            CommandData data = new CommandData();

            data.SymbolServer = "";
            data.Queries1.Add(new FileQuery(@"%windir%\system32\kernel32.dll"));
            DowndLoadPdbsCommand cmd = new DowndLoadPdbsCommand(data);

            cmd.Out = new StringWriter();
            cmd.Execute();
            Assert.AreEqual(1, cmd.myloader.FailedPdbs.Count, "Pdb download must have failed");
            Assert.AreEqual(0, cmd.myloader.SucceededPdbCount, "No pdb should have been downloaded");
            Assert.AreEqual("kernel32.dll", cmd.myloader.FailedPdbs[0]);
        }
        public void Can_Download_Pdb_With_Symget()
        {
            CommandData data = new CommandData();

            data.Queries1.Add(new FileQuery(typeof(object).Assembly.Location));

            DowndLoadPdbsCommand cmd = new DowndLoadPdbsCommand(data);

            cmd.Out = new StringWriter();
            cmd.Execute();
            if (!SymChkExecutor.bCanStartSymChk)
            {
                Assert.Ignore("Cannot test since symcheck.exe is not in path");
            }

            Assert.AreEqual(0, cmd.myloader.FailedPdbs.Count, "Pdb download must have succeeded");
            Assert.AreEqual(1, cmd.myloader.SucceededPdbCount, "Exactly one pdb for mscorlib.dll should have been downloaded");
            Assert.AreEqual(0, cmd.myloader.FailedPdbs.Count);
        }