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

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

@ -54,7 +54,7 @@ namespace ICSharpCode.CodeCoverage
public void AddMethod(CodeCoverageMethod method) public void AddMethod(CodeCoverageMethod method)
{ {
name = GetPropertyName(method); name = GetPropertyName(method);
if (CodeCoverageProperty.IsGetter(method)) { if (method.IsGetter) {
getter = method; getter = method;
} else { } else {
setter = method; setter = method;
@ -66,20 +66,10 @@ namespace ICSharpCode.CodeCoverage
/// </summary> /// </summary>
public static string GetPropertyName(CodeCoverageMethod method) public static string GetPropertyName(CodeCoverageMethod method)
{ {
if (IsGetter(method) || IsSetter(method)) { if (method.IsProperty) {
return method.Name.Substring(4); return method.Name.Substring(4);
} }
return String.Empty; 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
[Test] [Test]
public void GetterMethodIsGetterProperty() public void GetterMethodIsGetterProperty()
{ {
Assert.IsTrue(CodeCoverageProperty.IsGetter(getter)); bool result = getter.IsGetter;
Assert.IsTrue(result);
} }
[Test] [Test]
public void SetterMethodIsSetterProperty() public void SetterMethodIsSetterProperty()
{ {
Assert.IsTrue(CodeCoverageProperty.IsSetter(setter)); bool result = setter.IsSetter;
Assert.IsTrue(result);
} }
[Test] [Test]

Loading…
Cancel
Save