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); } }