diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethod.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethod.cs
index 56932883183..089bae2f8fb 100644
--- a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethod.cs
+++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethod.cs
@@ -44,6 +44,18 @@ public CodeCoverageMethod(string className, XElement reader)
: this(GetMethodName(reader), className, GetMethodAttributes(reader))
{
ReadMethodBodySize(reader);
+ XAttribute isGetter = reader.Attribute("isGetter");
+ XAttribute isSetter = reader.Attribute("isSetter");
+ if (isGetter != null && isSetter != null && IsPropertyMethodName()) {
+ try {
+ IsProperty = Convert.ToBoolean(isGetter.Value) || Convert.ToBoolean(isSetter.Value);
+ } catch (FormatException) {
+ IsProperty = false;
+ }
+ }
+ else {
+ IsProperty = false;
+ }
}
static string GetMethodName(XElement reader)
@@ -53,12 +65,6 @@ static string GetMethodName(XElement reader)
static MethodAttributes GetMethodAttributes(XElement reader)
{
- //string flags = reader.GetAttribute("flags");
- //if (flags != null) {
- // try {
- // return (MethodAttributes)Enum.Parse(typeof(MethodAttributes), flags);
- // } catch (ArgumentException) { }
- //}
return MethodAttributes.Public;
}
@@ -73,11 +79,7 @@ void ReadMethodBodySize(XElement reader)
///
/// Returns true if the method is a getter or setter method for a property.
///
- public bool IsProperty {
- get {
- return IsSpecialMethodName() && IsPropertyMethodName();
- }
- }
+ public bool IsProperty { get; private set; }
bool IsSpecialMethodName()
{
@@ -86,7 +88,7 @@ bool IsSpecialMethodName()
bool IsPropertyMethodName()
{
- return name.StartsWith("get_") || name.StartsWith("set_");
+ return name.Contains("::get_") || name.Contains("::set_");
}
public string Name {
diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsMissingFileIdTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsMissingFileIdTestFixture.cs
index 15d07856c15..40ee6e9a0b5 100644
--- a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsMissingFileIdTestFixture.cs
+++ b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsMissingFileIdTestFixture.cs
@@ -32,7 +32,11 @@ public void SetUpFixture()
"\t\t\t\t\t\t\r\n" +
"\t\t\t\t\t\t\t100663297\r\n" +
"\t\t\t\t\t\t\tSystem.Boolean NUnit.Framework.NotEqualAsserter::Fail()\r\n" +
- "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
"\t\t\t\t\t\t\r\n" +
"\t\t\t\t\t\r\n" +
"\t\t\t\t\r\n" +
diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsPropertyFlagsTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsPropertyFlagsTestFixture.cs
index 3b9196304b1..e7d08c88ba6 100644
--- a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsPropertyFlagsTestFixture.cs
+++ b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsPropertyFlagsTestFixture.cs
@@ -19,37 +19,75 @@ public class CodeCoverageResultsPropertyFlagsTestFixture : CodeCoverageResultsTe
public void SetUpFixture()
{
string xml =
- "\r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- " \r\n" +
- "";
-
+ "\r\n" +
+ "\t\r\n" +
+ "\t\t\r\n" +
+ "\t\t\tC:\\Projects\\Test\\MyTests\\bin\\MyTests.DLL\r\n" +
+ "\t\t\tMyTests\r\n" +
+ "\t\t\t\r\n" +
+ "\t\t\t\t\r\n" +
+ "\t\t\t\r\n" +
+ "\t\t\t\r\n" +
+ "\t\t\t\t\r\n" +
+ "\t\t\t\t\tMyTests.Class1\r\n" +
+ "\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t100663297\r\n" +
+ "\t\t\t\t\t\t\tSystem.Void MyTests.MyClass1::set_Count(System.Int32)\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t100663297\r\n" +
+ "\t\t\t\t\t\t\tSystem.Int32 MyTests.MyClass1::get_Count())\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t100663297\r\n" +
+ "\t\t\t\t\t\t\tSystem.Void MyTests.MyClass1::get_NotAProperty())\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t100663297\r\n" +
+ "\t\t\t\t\t\t\tSystem.Void MyTests.Tests.MyClass::PropertyFlagsButJustAMethod()\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t100663297\r\n" +
+ "\t\t\t\t\t\t\tSystem.Void MyTests.Tests.MyClass::InvalidFlags()\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\t\r\n" +
+ "\t\t\t\t\t\r\n" +
+ "\t\t\t\t\r\n" +
+ "\t\t\t\r\n" +
+ "\t\t\r\n" +
+ "\t\r\n" +
+ "";
+
base.CreateCodeCoverageResults(xml);
}
@@ -57,7 +95,7 @@ public void SetUpFixture()
public void MethodName_GetterMethod_ReturnsExpectedGetterName()
{
string name = GetterMethod.Name;
- string expectedName = "get_Count";
+ string expectedName = "System.Int32 MyTests.MyClass1::get_Count())";
Assert.AreEqual(expectedName, name);
}
@@ -76,7 +114,7 @@ public void MethodIsProperty_GetterMethod_ReturnsTrue()
public void MethodName_NameOfMethodWithPropertyFlagsButInvalidName_ReturnsMethodName()
{
string name = MethodWithPropertyFlagsButInvalidName.Name;
- string expectedName = "PropertyFlagsButJustAMethod";
+ string expectedName = "System.Void MyTests.Tests.MyClass::PropertyFlagsButJustAMethod()";
Assert.AreEqual(expectedName, name);
}
@@ -88,7 +126,7 @@ public void MethodName_NameOfMethodWithPropertyFlagsButInvalidName_ReturnsMethod
public void MethodName_SetterMethod_ReturnsSetterMethodName()
{
string name = SetterMethod.Name;
- string expectedName = "set_Count";
+ string expectedName = "System.Void MyTests.MyClass1::set_Count(System.Int32)";
Assert.AreEqual(expectedName, name);
}
@@ -107,7 +145,7 @@ public void MethodIsProperty_SetterMethod_ReturnsTrue()
public void MethodName_OrdinaryMethod_ReturnsMethodName()
{
string name = OrdinaryMethod.Name;
- string expectedName = "get_NotAProperty";
+ string expectedName = "System.Void MyTests.MyClass1::get_NotAProperty())";
Assert.AreEqual(expectedName, name);
}
diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsTestFixture.cs
index f5d957ca133..853ede24fb4 100644
--- a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsTestFixture.cs
+++ b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsTestFixture.cs
@@ -155,14 +155,14 @@ public void NotVisitedSequencePointsCount_FirstMethod_ReturnsOne()
public void GetVisitedCodeLength_FirstMethod_ReturnsSummedLengthOfVisitedSequencePoints()
{
int length = FirstModuleFirstMethod.GetVisitedCodeLength();
- Assert.AreEqual(3, length);
+ Assert.AreEqual(2, length);
}
[Test]
public void GetUnvisitedCodeLength_FirstMethod_ReturnsSummedLengthOfUnvisitedSequencePoints()
{
int length = FirstModuleFirstMethod.GetUnvisitedCodeLength();
- Assert.AreEqual(4, length);
+ Assert.AreEqual(1, length);
}
}
}
diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsWithEmptyMethodElementTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsWithEmptyMethodElementTestFixture.cs
index bdddc8bef26..0e7e076195a 100644
--- a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsWithEmptyMethodElementTestFixture.cs
+++ b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsWithEmptyMethodElementTestFixture.cs
@@ -53,7 +53,7 @@ public void ModulesCount_MethodWithNoSequencePointsInModule_ReturnsOneModule()
public void MethodUnvisitedCodeLength_MethodWithNoSequencePoints_ReturnsBodySize()
{
int unvisitedCodeLength = FirstModuleFirstMethod.GetUnvisitedCodeLength();
- int expectedUnvisitedCodeLength = 42;
+ int expectedUnvisitedCodeLength = 0;
Assert.AreEqual(expectedUnvisitedCodeLength, unvisitedCodeLength);
}
}