public void CanParseDotCoverFiles(TestFile dotCoverTestFile)
 {
     using (var xmlStream = TestFilesFactory.GetTestFileStream(dotCoverTestFile))
     {
         var parser         = new DotCoverParser(xmlStream);
         var dotCoverReport = parser.ParseDotCoverReport();
         Assert.NotNull(dotCoverReport);
         Assert.NotEmpty(dotCoverReport.Assemblies);
     }
 }
        public void XmlExceptionForRandomInputStream()
        {
            var random = new Random();
            var bytes  = new byte[1024];

            random.NextBytes(bytes);
            var memStream = new MemoryStream(bytes);
            var parser    = new DotCoverParser(memStream);

            Assert.Throws <System.Xml.XmlException>(() => parser.ParseDotCoverReport());
        }
 public void ArgumentExceptionForNonDotCoverReport()
 {
     using (var memStream = new MemoryStream())
     {
         var xDoc = new XDocument();
         xDoc.Declaration = new XDeclaration("1.0", "utf-8", "true");
         xDoc.Add(new XElement("NotWhatYouExpected"));
         xDoc.Save(memStream);
         memStream.Position = 0;
         var parser = new DotCoverParser(memStream);
         Assert.Throws <ArgumentException>(() => parser.ParseDotCoverReport());
     }
 }
        public void CanConvertDotCoverFiles(TestFile dotCoverTestFile)
        {
            using (var xmlStream = TestFilesFactory.GetTestFileStream(dotCoverTestFile))
            {
                var parser         = new DotCoverParser(xmlStream);
                var dotCoverReport = parser.ParseDotCoverReport();

                var converter        = new DotCoverToCoberturaConverter(dotCoverReport);
                var conversionResult = converter.ConvertToCobertura();
                Assert.NotNull(conversionResult);
                Assert.NotEmpty(conversionResult.Packages);
            }
        }
 public void CanRead()
 {
     using (var xmlStream = TestFilesFactory.GetTestFileStream(DotCoverConverter.Core.Tests.TestFile.RegressionDotCoverMethodInfoExtractor))
     {
         var parser         = new DotCoverParser(xmlStream);
         var dotCoverReport = parser.ParseDotCoverReport();
         Assert.NotNull(dotCoverReport);
         Assert.NotEmpty(dotCoverReport.Assemblies);
         Assert.NotEmpty(dotCoverReport.Assemblies
                         .SelectMany(a => a.Namespaces)
                         .SelectMany(n => n.Types)
                         .SelectMany(t => t.Methods));
     }
 }
        public void ParsesFileCorrect()
        {
            var testFile = TestFile.DanglCalculatorDotCover;

            using (var xmlStream = TestFilesFactory.GetTestFileStream(testFile))
            {
                var parser         = new DotCoverParser(xmlStream);
                var dotCoverReport = parser.ParseDotCoverReport();

                Assert.Equal(6, dotCoverReport.Files.Count);
                Assert.Equal(2, dotCoverReport.Assemblies.Count);

                Assert.Equal("Dangl.Calculator", dotCoverReport.Assemblies.First().Name);
                Assert.Equal(203, dotCoverReport.Assemblies.First().CoveredStatements);
                Assert.Single(dotCoverReport.Assemblies.First().Namespaces);
            }
        }
        public void PutsFilenameOnNestedType()
        {
            using (var xmlStream = TestFilesFactory.GetTestFileStream(TestFile.NestedClassesDotCover))
            {
                var parser         = new DotCoverParser(xmlStream);
                var dotCoverReport = parser.ParseDotCoverReport();

                var converter        = new DotCoverToCoberturaConverter(dotCoverReport);
                var conversionResult = converter.ConvertToCobertura();

                var classes = conversionResult.Packages
                              .SelectMany(p => p.Classes)
                              .ToList();

                Assert.All(classes, c => Assert.False(string.IsNullOrWhiteSpace(c.FileName)));
                Assert.Equal(2, classes.Count);
                Assert.All(classes, c => Assert.NotEqual("TypeWithoutStatements", c.Name)); // This type should not be in the Cobertura report due to missing filename
            }
        }
        public void ParsesFileWithNestedClasses()
        {
            var testFile = TestFile.NestedClassesDotCover;

            using (var xmlStream = TestFilesFactory.GetTestFileStream(testFile))
            {
                var parser         = new DotCoverParser(xmlStream);
                var dotCoverReport = parser.ParseDotCoverReport();

                Assert.Single(dotCoverReport.Files);

                var assembly   = dotCoverReport.Assemblies.Single();
                var @namespace = assembly.Namespaces.Single();

                var types = @namespace.Types;

                Assert.Equal(3, types.Count);

                var typeWithoutStatements = types.First(t => t.Name == "TypeWithoutStatements");
                Assert.Empty(typeWithoutStatements.Methods.SelectMany(m => m.Statements));
            }
        }