Browse Source

Remove duplicate property getter/setter detection.

CodeCoverageProperty class now uses property getter/setter detection from CodeCoverageMethod class.
pull/17/merge
Matt Ward 13 years ago
parent
commit
2977e58a3b
  1. 20
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethod.cs
  2. 14
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageProperty.cs
  3. 8
      src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoveragePropertyTestFixture.cs

20
src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethod.cs

@ -16,19 +16,12 @@ namespace ICSharpCode.CodeCoverage @@ -16,19 +16,12 @@ namespace ICSharpCode.CodeCoverage
string className = String.Empty;
string fullClassName = String.Empty;
string classNamespace = String.Empty;
MethodAttributes methodAttributes;
List<CodeCoverageSequencePoint> sequencePoints = new List<CodeCoverageSequencePoint>();
public CodeCoverageMethod(string name, string className)
: this(name, className, MethodAttributes.Public)
{
}
public CodeCoverageMethod(string name, string className, MethodAttributes methodAttributes)
public CodeCoverageMethod(string name, string className)
{
this.name = name;
this.fullClassName = className;
this.methodAttributes = methodAttributes;
int index = fullClassName.LastIndexOf('.');
if (index > 0) {
@ -45,20 +38,19 @@ namespace ICSharpCode.CodeCoverage @@ -45,20 +38,19 @@ namespace ICSharpCode.CodeCoverage
}
public CodeCoverageMethod(string className, CodeCoverageMethodElement element)
: this(element.MethodName, className, MethodAttributes.Public)
: this(element.MethodName, className)
{
IsProperty = element.IsProperty && IsPropertyMethodName();
IsGetter = element.IsGetter;
IsSetter = element.IsSetter;
}
/// <summary>
/// Returns true if the method is a getter or setter method for a property.
/// </summary>
public bool IsProperty { get; private set; }
bool IsSpecialMethodName()
{
return (methodAttributes & MethodAttributes.SpecialName) == MethodAttributes.SpecialName;
}
public bool IsGetter { get; private set; }
public bool IsSetter { get; private set; }
bool IsPropertyMethodName()
{

14
src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageProperty.cs

@ -54,7 +54,7 @@ namespace ICSharpCode.CodeCoverage @@ -54,7 +54,7 @@ namespace ICSharpCode.CodeCoverage
public void AddMethod(CodeCoverageMethod method)
{
name = GetPropertyName(method);
if (CodeCoverageProperty.IsGetter(method)) {
if (method.IsGetter) {
getter = method;
} else {
setter = method;
@ -66,20 +66,10 @@ namespace ICSharpCode.CodeCoverage @@ -66,20 +66,10 @@ namespace ICSharpCode.CodeCoverage
/// </summary>
public static string GetPropertyName(CodeCoverageMethod method)
{
if (IsGetter(method) || IsSetter(method)) {
if (method.IsProperty) {
return method.Name.Substring(4);
}
return String.Empty;
}
public static bool IsGetter(CodeCoverageMethod method)
{
return method.Name.Contains("get_");
}
public static bool IsSetter(CodeCoverageMethod method)
{
return method.Name.Contains("set_");
}
}
}

8
src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoveragePropertyTestFixture.cs

@ -58,13 +58,17 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage @@ -58,13 +58,17 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage
[Test]
public void GetterMethodIsGetterProperty()
{
Assert.IsTrue(CodeCoverageProperty.IsGetter(getter));
bool result = getter.IsGetter;
Assert.IsTrue(result);
}
[Test]
public void SetterMethodIsSetterProperty()
{
Assert.IsTrue(CodeCoverageProperty.IsSetter(setter));
bool result = setter.IsSetter;
Assert.IsTrue(result);
}
[Test]

Loading…
Cancel
Save