Browse Source

Fix ArgumentNullException when accessing DefaultClass.AllMembers before members initialized.

pull/23/head
Matt Ward 14 years ago
parent
commit
85fdbf6b66
  1. 8
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/DefaultClass.cs
  2. 33
      src/Main/ICSharpCode.SharpDevelop.Dom/Tests/ICSharpCode.SharpDevelop.Dom.Tests/DefaultClassTests.cs
  3. 1
      src/Main/ICSharpCode.SharpDevelop.Dom/Tests/ICSharpCode.SharpDevelop.Dom.Tests/ICSharpCode.SharpDevelop.Dom.Tests.csproj

8
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/DefaultClass.cs

@ -646,10 +646,10 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -646,10 +646,10 @@ namespace ICSharpCode.SharpDevelop.Dom
public IEnumerable<IMember> AllMembers {
get {
IEnumerable<IMember> p = properties;
return p.Concat(methods)
.Concat(fields)
.Concat(events);
IEnumerable<IMember> p = Properties;
return p.Concat(Methods)
.Concat(Fields)
.Concat(Events);
}
}

33
src/Main/ICSharpCode.SharpDevelop.Dom/Tests/ICSharpCode.SharpDevelop.Dom.Tests/DefaultClassTests.cs

@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Linq;
using NUnit.Framework;
namespace ICSharpCode.SharpDevelop.Dom.Tests
{
[TestFixture]
public class DefaultClassTests
{
DefaultClass defaultClass;
DefaultCompilationUnit compilationUnit;
DefaultProjectContent projectContent;
void CreateDefaultClass(string fullyQualifiedName)
{
projectContent = new DefaultProjectContent();
compilationUnit = new DefaultCompilationUnit(projectContent);
defaultClass = new DefaultClass(compilationUnit, fullyQualifiedName);
}
[Test]
public void AllMembers_PropertiesFieldsMethodsEventsAreAllNull_ReturnsNoItemsWithoutThrowingNullException()
{
CreateDefaultClass("TestClass");
int count = defaultClass.AllMembers.Count();
Assert.AreEqual(0, count);
}
}
}

1
src/Main/ICSharpCode.SharpDevelop.Dom/Tests/ICSharpCode.SharpDevelop.Dom.Tests/ICSharpCode.SharpDevelop.Dom.Tests.csproj

@ -51,6 +51,7 @@ @@ -51,6 +51,7 @@
<Compile Include="ClassInheritanceTreeTests.cs" />
<Compile Include="CodeSnippetConverterTests.cs" />
<Compile Include="CSharpAmbienceTests.cs" />
<Compile Include="DefaultClassTests.cs" />
<Compile Include="ImplementInterfaceTests.cs" />
<Compile Include="IndexBeforeTextFinderTests.cs" />
<Compile Include="NRefactoryAstConverterTests.cs" />

Loading…
Cancel
Save