Browse Source

Fix scaffolding controller actions.

pull/28/head
Matt Ward 14 years ago
parent
commit
fe401c77f4
  1. 10
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeType.cs
  2. 9
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItem.cs
  3. 71
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeTypeTests.cs

10
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeType.cs

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
using System;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.PackageManagement.EnvDTE
{
@ -67,5 +68,14 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -67,5 +68,14 @@ namespace ICSharpCode.PackageManagement.EnvDTE
public virtual CodeNamespace Namespace {
get { return new CodeNamespace(ProjectContent, Class.Namespace); }
}
public virtual ProjectItem ProjectItem {
get {
if (ProjectContent.Project != null) {
return new ProjectItem((MSBuildBasedProject)ProjectContent.Project, Class);
}
return null;
}
}
}
}

9
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItem.cs

@ -4,9 +4,11 @@ @@ -4,9 +4,11 @@
using System;
using System.ComponentModel;
using System.IO;
using ICSharpCode.Core;
using SD = ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
using SD = ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.PackageManagement.EnvDTE
{
@ -27,6 +29,11 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -27,6 +29,11 @@ namespace ICSharpCode.PackageManagement.EnvDTE
Kind = GetKindFromFileProjectItemType();
}
internal ProjectItem(MSBuildBasedProject project, IClass c)
: this(new Project(project), project.FindFile(c.CompilationUnit.FileName))
{
}
string GetKindFromFileProjectItemType()
{
if (IsDirectory) {

71
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeTypeTests.cs

@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
using System;
using ICSharpCode.PackageManagement.EnvDTE;
using ICSharpCode.SharpDevelop.Dom;
using SDProject = ICSharpCode.SharpDevelop.Project;
using NUnit.Framework;
using PackageManagement.Tests.Helpers;
@ -30,11 +31,24 @@ namespace PackageManagement.Tests.EnvDTE @@ -30,11 +31,24 @@ namespace PackageManagement.Tests.EnvDTE
codeType = new CodeType(helper.ProjectContentHelper.ProjectContent, helper.Class);
}
TestableProject AddProjectToProjectContent()
{
TestableProject project = ProjectHelper.CreateTestProject();
helper.ProjectContentHelper.SetProjectForProjectContent(project);
return project;
}
void AddAttributeToClass(string name)
{
helper.AddAttributeToClass(name);
}
SDProject.FileProjectItem AddFileToProjectAndProjectContent(TestableProject project, string fileName)
{
helper.CompilationUnitHelper.SetFileName(fileName);
return project.AddFile(fileName);
}
[Test]
public void Attributes_ClassHasOneAttribute_ReturnsOneAttribute()
{
@ -50,5 +64,62 @@ namespace PackageManagement.Tests.EnvDTE @@ -50,5 +64,62 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual(1, attributes.Count);
Assert.AreEqual("Test", attribute.Name);
}
[Test]
public void ProjectItem_ProjectContentHasNullProject_ReturnsNull()
{
CreateProjectContent();
CreateClass("Class1");
CreateCodeType();
ProjectItem item = codeType.ProjectItem;
Assert.IsNull(item);
}
[Test]
public void ProjectItem_ProjectContentHasProject_ReturnsNonNullProjectItem()
{
CreateProjectContent();
TestableProject project = AddProjectToProjectContent();
AddFileToProjectAndProjectContent(project, @"d:\projects\MyProject\class1.cs");
CreateClass("Class1");
CreateCodeType();
ProjectItem item = codeType.ProjectItem;
Assert.IsNotNull(item);
}
[Test]
public void ProjectItem_ProjectContentHasProject_ReturnsProjectItemThatUsesProject()
{
CreateProjectContent();
TestableProject project = AddProjectToProjectContent();
project.FileName = @"d:\projects\MyProject\MyProject.csproj";
AddFileToProjectAndProjectContent(project, @"d:\projects\MyProject\class1.cs");
CreateClass("Class1");
CreateCodeType();
ProjectItem item = codeType.ProjectItem;
Assert.AreEqual(@"d:\projects\MyProject\MyProject.csproj", item.ContainingProject.FileName);
}
[Test]
public void ProjectItem_ProjectContentHasProject_ReturnsProjectItemThatUsesProjectFileItem()
{
CreateProjectContent();
TestableProject project = AddProjectToProjectContent();
string fileName = @"d:\projects\MyProject\test.cs";
SDProject.FileProjectItem fileProjectItem = AddFileToProjectAndProjectContent(project, fileName);
CreateClass("Class1");
CreateCodeType();
ProjectItem item = codeType.ProjectItem;
Assert.AreEqual("test.cs", item.Name);
}
}
}

Loading…
Cancel
Save