Browse Source

Fixed all test cases.

pull/27/head
Lex Li 14 years ago
parent
commit
98c93a3aee
  1. 26
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethod.cs
  2. 6
      src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsMissingFileIdTestFixture.cs
  3. 106
      src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsPropertyFlagsTestFixture.cs
  4. 4
      src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsTestFixture.cs
  5. 2
      src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsWithEmptyMethodElementTestFixture.cs

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

@ -44,6 +44,18 @@ namespace ICSharpCode.CodeCoverage
: this(GetMethodName(reader), className, GetMethodAttributes(reader)) : this(GetMethodName(reader), className, GetMethodAttributes(reader))
{ {
ReadMethodBodySize(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) static string GetMethodName(XElement reader)
@ -53,12 +65,6 @@ namespace ICSharpCode.CodeCoverage
static MethodAttributes GetMethodAttributes(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; return MethodAttributes.Public;
} }
@ -73,11 +79,7 @@ namespace ICSharpCode.CodeCoverage
/// <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 { public bool IsProperty { get; private set; }
get {
return IsSpecialMethodName() && IsPropertyMethodName();
}
}
bool IsSpecialMethodName() bool IsSpecialMethodName()
{ {
@ -86,7 +88,7 @@ namespace ICSharpCode.CodeCoverage
bool IsPropertyMethodName() bool IsPropertyMethodName()
{ {
return name.StartsWith("get_") || name.StartsWith("set_"); return name.Contains("::get_") || name.Contains("::set_");
} }
public string Name { public string Name {

6
src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsMissingFileIdTestFixture.cs

@ -32,7 +32,11 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage
"\t\t\t\t\t\t<Method visited=\"true\" cyclomaticComplexity=\"1\" sequenceCoverage=\"100\" branchCoverage=\"100\" isConstructor=\"false\" isStatic=\"false\" isGetter=\"false\" isSetter=\"false\">\r\n" + "\t\t\t\t\t\t<Method visited=\"true\" cyclomaticComplexity=\"1\" sequenceCoverage=\"100\" branchCoverage=\"100\" isConstructor=\"false\" isStatic=\"false\" isGetter=\"false\" isSetter=\"false\">\r\n" +
"\t\t\t\t\t\t\t<MetadataToken>100663297</MetadataToken>\r\n" + "\t\t\t\t\t\t\t<MetadataToken>100663297</MetadataToken>\r\n" +
"\t\t\t\t\t\t\t<Name>System.Boolean NUnit.Framework.NotEqualAsserter::Fail()</Name>\r\n" + "\t\t\t\t\t\t\t<Name>System.Boolean NUnit.Framework.NotEqualAsserter::Fail()</Name>\r\n" +
"\t\t\t\t\t\t\t<SequencePoints />\r\n" + "\t\t\t\t\t\t\t<SequencePoints>\r\n" +
"\t\t\t\t\t\t\t\t<SequencePoint vc=\"1\" sl=\"21\" sc=\"3\" el=\"21\" ec=\"4\" />\r\n" +
"\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"20\" sc=\"3\" el=\"20\" ec=\"4\" />\r\n" +
"\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"19\" sc=\"3\" el=\"19\" ec=\"18\" />\r\n" +
"\t\t\t\t\t\t\t</SequencePoints>\r\n" +
"\t\t\t\t\t\t</Method>\r\n" + "\t\t\t\t\t\t</Method>\r\n" +
"\t\t\t\t\t</Methods>\r\n" + "\t\t\t\t\t</Methods>\r\n" +
"\t\t\t\t</Class>\r\n" + "\t\t\t\t</Class>\r\n" +

106
src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsPropertyFlagsTestFixture.cs

@ -19,36 +19,74 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage
public void SetUpFixture() public void SetUpFixture()
{ {
string xml = string xml =
"<PartCoverReport ver=\"1.0.2796.35184\">\r\n" + "<CoverageSession xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n" +
" <File id=\"1\" url=\"d:\\Projects\\test\\TestFixture1.cs\" />\r\n" + "\t<Modules>\r\n" +
" <Assembly id=\"1\" name=\"MyTests\" module=\"C:\\Projects\\Test\\MyTests\\bin\\MyTests.DLL\" domain=\"test-domain-MyTests.dll\" domainIdx=\"1\" />\r\n" + "\t\t<Module hash=\"44-54-B6-13-97-49-45-F8-6A-74-9E-49-0C-77-87-C6-9C-54-47-7B\">\r\n" +
" <Type asmref=\"1\" name=\"MyTests.Class1\" flags=\"2606412\">\r\n" + "\t\t\t<FullName>C:\\Projects\\Test\\MyTests\\bin\\MyTests.DLL</FullName>\r\n" +
" <Method name=\"set_Count\" sig=\"void (int)\" flags=\"2182\" iflags=\"0\">\r\n" + "\t\t\t<ModuleName>MyTests</ModuleName>\r\n" +
" <pt visit=\"0\" pos=\"9\" len=\"1\" fid=\"1\" sl=\"34\" sc=\"4\" el=\"34\" ec=\"5\" />\r\n" + "\t\t\t<Files>\r\n" +
" <pt visit=\"0\" pos=\"1\" len=\"8\" fid=\"1\" sl=\"33\" sc=\"5\" el=\"33\" ec=\"12\" />\r\n" + "\t\t\t\t<File uid=\"1\" fullPath=\"d:\\Projects\\test\\TestFixture1.cs\" />\r\n" +
" <pt visit=\"0\" pos=\"0\" len=\"1\" fid=\"1\" sl=\"32\" sc=\"8\" el=\"32\" ec=\"9\" />\r\n" + "\t\t\t</Files>\r\n" +
" </Method>\r\n" + "\t\t\t<Classes>\r\n" +
" <Method name=\"get_Count\" sig=\"int ()\" flags=\"2182\" iflags=\"0\">\r\n" + "\t\t\t\t<Class>\r\n" +
" <pt visit=\"0\" pos=\"6\" len=\"2\" fid=\"1\" sl=\"31\" sc=\"4\" el=\"31\" ec=\"5\" />\r\n" + "\t\t\t\t\t<FullName>MyTests.Class1</FullName>\r\n" +
" <pt visit=\"0\" pos=\"1\" len=\"5\" fid=\"1\" sl=\"30\" sc=\"5\" el=\"30\" ec=\"15\" />\r\n" + "\t\t\t\t\t<Methods>\r\n" +
" <pt visit=\"0\" pos=\"0\" len=\"1\" fid=\"1\" sl=\"29\" sc=\"8\" el=\"29\" ec=\"9\" />\r\n" + "\t\t\t\t\t\t<Method visited=\"true\" cyclomaticComplexity=\"1\" sequenceCoverage=\"100\" branchCoverage=\"100\" isConstructor=\"false\" isStatic=\"false\" isGetter=\"false\" isSetter=\"true\">\r\n" +
" </Method>\r\n" + "\t\t\t\t\t\t\t<MetadataToken>100663297</MetadataToken>\r\n" +
" <Method name=\"get_NotAProperty\" sig=\"void ()\" flags=\"134\" iflags=\"0\">\r\n" + "\t\t\t\t\t\t\t<Name>System.Void MyTests.MyClass1::set_Count(System.Int32)</Name>\r\n" +
" <pt visit=\"0\" pos=\"1\" len=\"1\" fid=\"1\" sl=\"26\" sc=\"3\" el=\"26\" ec=\"4\" />\r\n" + "\t\t\t\t\t\t\t<FileRef uid=\"1\" />\r\n" +
" <pt visit=\"0\" pos=\"0\" len=\"1\" fid=\"1\" sl=\"25\" sc=\"3\" el=\"25\" ec=\"4\" />\r\n" + "\t\t\t\t\t\t\t<SequencePoints>\r\n" +
" </Method>\r\n" + "\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"34\" sc=\"4\" el=\"34\" ec=\"5\" />\r\n" +
" <Method name=\"PropertyFlagsButJustAMethod\" sig=\"void ()\" flags=\"2182\" iflags=\"0\">\r\n" + "\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"33\" sc=\"5\" el=\"33\" ec=\"12\" />\r\n" +
" <pt visit=\"0\" pos=\"8\" len=\"2\" fid=\"1\" sl=\"22\" sc=\"3\" el=\"22\" ec=\"4\" />\r\n" + "\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"32\" sc=\"8\" el=\"32\" ec=\"9\" />\r\n" +
" <pt visit=\"0\" pos=\"7\" len=\"1\" fid=\"1\" sl=\"21\" sc=\"3\" el=\"21\" ec=\"4\" />\r\n" + "\t\t\t\t\t\t\t</SequencePoints>\r\n" +
" <pt visit=\"0\" pos=\"0\" len=\"7\" fid=\"1\" sl=\"20\" sc=\"3\" el=\"20\" ec=\"18\" />\r\n" + "\t\t\t\t\t\t</Method>\r\n" +
" </Method>\r\n" + "\t\t\t\t\t\t<Method visited=\"true\" cyclomaticComplexity=\"1\" sequenceCoverage=\"100\" branchCoverage=\"100\" isConstructor=\"false\" isStatic=\"false\" isGetter=\"true\" isSetter=\"false\">\r\n" +
" <Method name=\"InvalidFlags\" sig=\"void ()\" flags=\"\" iflags=\"0\">\r\n" + "\t\t\t\t\t\t\t<MetadataToken>100663297</MetadataToken>\r\n" +
" <pt visit=\"0\" pos=\"8\" len=\"2\" fid=\"1\" sl=\"22\" sc=\"3\" el=\"22\" ec=\"4\" />\r\n" + "\t\t\t\t\t\t\t<Name>System.Int32 MyTests.MyClass1::get_Count())</Name>\r\n" +
" <pt visit=\"0\" pos=\"7\" len=\"1\" fid=\"1\" sl=\"21\" sc=\"3\" el=\"21\" ec=\"4\" />\r\n" + "\t\t\t\t\t\t\t<FileRef uid=\"1\" />\r\n" +
" <pt visit=\"0\" pos=\"0\" len=\"7\" fid=\"1\" sl=\"20\" sc=\"3\" el=\"20\" ec=\"18\" />\r\n" + "\t\t\t\t\t\t\t<SequencePoints>\r\n" +
" </Method>\r\n" + "\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"31\" sc=\"4\" el=\"31\" ec=\"5\" />\r\n" +
" </Type>\r\n" + "\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"30\" sc=\"5\" el=\"30\" ec=\"15\" />\r\n" +
"</PartCoverReport>"; "\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"29\" sc=\"8\" el=\"29\" ec=\"9\" />\r\n" +
"\t\t\t\t\t\t\t</SequencePoints>\r\n" +
"\t\t\t\t\t\t</Method>\r\n" +
"\t\t\t\t\t\t<Method visited=\"true\" cyclomaticComplexity=\"1\" sequenceCoverage=\"100\" branchCoverage=\"100\" isConstructor=\"false\" isStatic=\"false\" isGetter=\"false\" isSetter=\"false\">\r\n" +
"\t\t\t\t\t\t\t<MetadataToken>100663297</MetadataToken>\r\n" +
"\t\t\t\t\t\t\t<Name>System.Void MyTests.MyClass1::get_NotAProperty())</Name>\r\n" +
"\t\t\t\t\t\t\t<FileRef uid=\"1\" />\r\n" +
"\t\t\t\t\t\t\t<SequencePoints>\r\n" +
"\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"21\" sc=\"3\" el=\"21\" ec=\"4\" />\r\n" +
"\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"20\" sc=\"3\" el=\"20\" ec=\"4\" />\r\n" +
"\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"19\" sc=\"3\" el=\"19\" ec=\"18\" />\r\n" +
"\t\t\t\t\t\t\t</SequencePoints>\r\n" +
"\t\t\t\t\t\t</Method>\r\n" +
"\t\t\t\t\t\t<Method visited=\"true\" cyclomaticComplexity=\"1\" sequenceCoverage=\"100\" branchCoverage=\"100\" isConstructor=\"false\" isStatic=\"false\" isGetter=\"true\" isSetter=\"false\">\r\n" +
"\t\t\t\t\t\t\t<MetadataToken>100663297</MetadataToken>\r\n" +
"\t\t\t\t\t\t\t<Name>System.Void MyTests.Tests.MyClass::PropertyFlagsButJustAMethod()</Name>\r\n" +
"\t\t\t\t\t\t\t<FileRef uid=\"1\" />\r\n" +
"\t\t\t\t\t\t\t<SequencePoints>\r\n" +
"\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"21\" sc=\"3\" el=\"21\" ec=\"4\" />\r\n" +
"\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"20\" sc=\"3\" el=\"20\" ec=\"4\" />\r\n" +
"\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"19\" sc=\"3\" el=\"19\" ec=\"18\" />\r\n" +
"\t\t\t\t\t\t\t</SequencePoints>\r\n" +
"\t\t\t\t\t\t</Method>\r\n" +
"\t\t\t\t\t\t<Method visited=\"true\" cyclomaticComplexity=\"1\" sequenceCoverage=\"100\" branchCoverage=\"100\" isConstructor=\"\" isStatic=\"false\" isGetter=\"\" isSetter=\"\">\r\n" +
"\t\t\t\t\t\t\t<MetadataToken>100663297</MetadataToken>\r\n" +
"\t\t\t\t\t\t\t<Name>System.Void MyTests.Tests.MyClass::InvalidFlags()</Name>\r\n" +
"\t\t\t\t\t\t\t<FileRef uid=\"1\" />\r\n" +
"\t\t\t\t\t\t\t<SequencePoints>\r\n" +
"\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"21\" sc=\"3\" el=\"21\" ec=\"4\" />\r\n" +
"\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"20\" sc=\"3\" el=\"20\" ec=\"4\" />\r\n" +
"\t\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"19\" sc=\"3\" el=\"19\" ec=\"18\" />\r\n" +
"\t\t\t\t\t\t\t</SequencePoints>\r\n" +
"\t\t\t\t\t\t</Method>\r\n" +
"\t\t\t\t\t</Methods>\r\n" +
"\t\t\t\t</Class>\r\n" +
"\t\t\t</Classes>\r\n" +
"\t\t</Module>\r\n" +
"\t</Modules>\r\n" +
"</CoverageSession>";
base.CreateCodeCoverageResults(xml); base.CreateCodeCoverageResults(xml);
} }
@ -57,7 +95,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage
public void MethodName_GetterMethod_ReturnsExpectedGetterName() public void MethodName_GetterMethod_ReturnsExpectedGetterName()
{ {
string name = GetterMethod.Name; string name = GetterMethod.Name;
string expectedName = "get_Count"; string expectedName = "System.Int32 MyTests.MyClass1::get_Count())";
Assert.AreEqual(expectedName, name); Assert.AreEqual(expectedName, name);
} }
@ -76,7 +114,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage
public void MethodName_NameOfMethodWithPropertyFlagsButInvalidName_ReturnsMethodName() public void MethodName_NameOfMethodWithPropertyFlagsButInvalidName_ReturnsMethodName()
{ {
string name = MethodWithPropertyFlagsButInvalidName.Name; string name = MethodWithPropertyFlagsButInvalidName.Name;
string expectedName = "PropertyFlagsButJustAMethod"; string expectedName = "System.Void MyTests.Tests.MyClass::PropertyFlagsButJustAMethod()";
Assert.AreEqual(expectedName, name); Assert.AreEqual(expectedName, name);
} }
@ -88,7 +126,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage
public void MethodName_SetterMethod_ReturnsSetterMethodName() public void MethodName_SetterMethod_ReturnsSetterMethodName()
{ {
string name = SetterMethod.Name; string name = SetterMethod.Name;
string expectedName = "set_Count"; string expectedName = "System.Void MyTests.MyClass1::set_Count(System.Int32)";
Assert.AreEqual(expectedName, name); Assert.AreEqual(expectedName, name);
} }
@ -107,7 +145,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage
public void MethodName_OrdinaryMethod_ReturnsMethodName() public void MethodName_OrdinaryMethod_ReturnsMethodName()
{ {
string name = OrdinaryMethod.Name; string name = OrdinaryMethod.Name;
string expectedName = "get_NotAProperty"; string expectedName = "System.Void MyTests.MyClass1::get_NotAProperty())";
Assert.AreEqual(expectedName, name); Assert.AreEqual(expectedName, name);
} }

4
src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsTestFixture.cs

@ -155,14 +155,14 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage
public void GetVisitedCodeLength_FirstMethod_ReturnsSummedLengthOfVisitedSequencePoints() public void GetVisitedCodeLength_FirstMethod_ReturnsSummedLengthOfVisitedSequencePoints()
{ {
int length = FirstModuleFirstMethod.GetVisitedCodeLength(); int length = FirstModuleFirstMethod.GetVisitedCodeLength();
Assert.AreEqual(3, length); Assert.AreEqual(2, length);
} }
[Test] [Test]
public void GetUnvisitedCodeLength_FirstMethod_ReturnsSummedLengthOfUnvisitedSequencePoints() public void GetUnvisitedCodeLength_FirstMethod_ReturnsSummedLengthOfUnvisitedSequencePoints()
{ {
int length = FirstModuleFirstMethod.GetUnvisitedCodeLength(); int length = FirstModuleFirstMethod.GetUnvisitedCodeLength();
Assert.AreEqual(4, length); Assert.AreEqual(1, length);
} }
} }
} }

2
src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsWithEmptyMethodElementTestFixture.cs

@ -53,7 +53,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage
public void MethodUnvisitedCodeLength_MethodWithNoSequencePoints_ReturnsBodySize() public void MethodUnvisitedCodeLength_MethodWithNoSequencePoints_ReturnsBodySize()
{ {
int unvisitedCodeLength = FirstModuleFirstMethod.GetUnvisitedCodeLength(); int unvisitedCodeLength = FirstModuleFirstMethod.GetUnvisitedCodeLength();
int expectedUnvisitedCodeLength = 42; int expectedUnvisitedCodeLength = 0;
Assert.AreEqual(expectedUnvisitedCodeLength, unvisitedCodeLength); Assert.AreEqual(expectedUnvisitedCodeLength, unvisitedCodeLength);
} }
} }

Loading…
Cancel
Save