private DotCoverMethod GetMethodFromElement(XElement methodElement) { var dotCoverMethod = new DotCoverMethod { CoveragePercent = methodElement.GetAttributeDecimalValue("CoveragePercent"), CoveredStatements = methodElement.GetAttributeIntValue("CoveredStatements"), TotalStatements = methodElement.GetAttributeIntValue("TotalStatements"), Name = methodElement.GetAttributeStringValue("Name"), Statements = methodElement.Elements() .Where(e => e.Name.LocalName == "Statement") .Select(GetStatementFromElement) .ToList() }; return(dotCoverMethod); }
private CoberturaMethod GetCoberturaMethodForDotCoverType(DotCoverMethod dotCoverMethod) { var coberturaMethod = new CoberturaMethod(); coberturaMethod.BranchRate = 0; coberturaMethod.LineRate = dotCoverMethod.CoveragePercent * 0.01m; var methodSignature = DotCoverMethodInfoExtractor.GetMethodInfoFromDotCoverMethod(dotCoverMethod.Name); coberturaMethod.Name = methodSignature.name; coberturaMethod.Signature = methodSignature.signature; coberturaMethod.Lines = GetCoberturaLinesForDotCoverMethod(dotCoverMethod); return(coberturaMethod); }
private List <CoberturaLine> GetCoberturaLinesForDotCoverMethod(DotCoverMethod dotCoverMethod) { var lineInfo = new Dictionary <int, CoberturaLine>(); var dotCoverStatements = dotCoverMethod.Statements; foreach (var dotCoverStatement in dotCoverStatements) { for (var i = dotCoverStatement.Line; i <= dotCoverStatement.EndLine; i++) { if (lineInfo.ContainsKey(i)) { if (dotCoverStatement.IsCovered) { var existingLine = lineInfo[i]; existingLine.Hits++; } } else { var newLine = new CoberturaLine(); newLine.Hits = dotCoverStatement.IsCovered ? 1 : 0; newLine.Number = i; lineInfo.Add(i, newLine); } } } var coberturaLines = lineInfo .Values .OrderBy(l => l.Number) .ToList(); return(coberturaLines); }