Browse Source

Support enumerating project references and removing references from PowerShell scripts.

pull/15/head
Matt Ward 15 years ago
parent
commit
9b465c972b
  1. 1
      src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
  2. 41
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Project.cs
  3. 5
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectObject.cs
  4. 4
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Properties.cs
  5. 22
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Property.cs
  6. 30
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Reference.cs
  7. 33
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/References.cs
  8. 4
      src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj
  9. 82
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectTests.cs
  10. 87
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/PropertyTests.cs
  11. 62
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ReferenceTests.cs
  12. 123
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ReferencesTests.cs
  13. 7
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/ProjectHelper.cs
  14. 33
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableDTEProject.cs
  15. 14
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableProject.cs
  16. 2
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageInstallScriptTests.cs

1
src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj

@ -75,6 +75,7 @@
<Compile Include="Src\EnvDTE\ProjectObject.cs" /> <Compile Include="Src\EnvDTE\ProjectObject.cs" />
<Compile Include="Src\EnvDTE\Properties.cs" /> <Compile Include="Src\EnvDTE\Properties.cs" />
<Compile Include="Src\EnvDTE\Property.cs" /> <Compile Include="Src\EnvDTE\Property.cs" />
<Compile Include="Src\EnvDTE\Reference.cs" />
<Compile Include="Src\EnvDTE\References.cs" /> <Compile Include="Src\EnvDTE\References.cs" />
<Compile Include="Src\EnvDTE\Solution.cs" /> <Compile Include="Src\EnvDTE\Solution.cs" />
<Compile Include="Src\IAddPackageReferenceView.cs" /> <Compile Include="Src\IAddPackageReferenceView.cs" />

41
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Project.cs

@ -2,26 +2,57 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections.Generic;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.PackageManagement.EnvDTE namespace ICSharpCode.PackageManagement.EnvDTE
{ {
public class Project public class Project
{ {
MSBuildBasedProject project; IPackageManagementProjectService projectService;
public Project(MSBuildBasedProject project) public Project(MSBuildBasedProject project)
: this(project, new PackageManagementProjectService())
{ {
this.project = project; }
Object = new ProjectObject(project);
Properties = new Properties(project); public Project(MSBuildBasedProject project, IPackageManagementProjectService projectService)
{
this.MSBuildProject = project;
this.projectService = projectService;
Object = new ProjectObject(this);
Properties = new Properties(this);
} }
public string Name { public string Name {
get { return "Test"; } get { return MSBuildProject.Name; }
} }
public ProjectObject Object { get; private set; } public ProjectObject Object { get; private set; }
public Properties Properties { get; private set; } public Properties Properties { get; private set; }
internal MSBuildBasedProject MSBuildProject { get; private set; }
internal void Save()
{
projectService.Save(MSBuildProject);
}
internal void AddReference(string path)
{
var referenceItem = new ReferenceProjectItem(MSBuildProject, path);
projectService.AddProjectItem(MSBuildProject, referenceItem);
}
internal IEnumerable<ProjectItem> GetReferences()
{
return MSBuildProject.GetItemsOfType(ItemType.Reference);
}
internal void RemoveReference(ReferenceProjectItem referenceItem)
{
projectService.RemoveProjectItem(MSBuildProject, referenceItem);
}
} }
} }

5
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectObject.cs

@ -8,11 +8,8 @@ namespace ICSharpCode.PackageManagement.EnvDTE
{ {
public class ProjectObject public class ProjectObject
{ {
MSBuildBasedProject project; public ProjectObject(Project project)
public ProjectObject(MSBuildBasedProject project)
{ {
this.project = project;
References = new References(project); References = new References(project);
} }

4
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Properties.cs

@ -8,9 +8,9 @@ namespace ICSharpCode.PackageManagement.EnvDTE
{ {
public class Properties public class Properties
{ {
MSBuildBasedProject project; Project project;
public Properties(MSBuildBasedProject project) public Properties(Project project)
{ {
this.project = project; this.project = project;
} }

22
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Property.cs

@ -8,33 +8,26 @@ namespace ICSharpCode.PackageManagement.EnvDTE
{ {
public class Property public class Property
{ {
IPackageManagementProjectService projectService; Project project;
MSBuildBasedProject project;
string name; string name;
public Property(MSBuildBasedProject project, string name) public Property(Project project, string name)
: this(project, name, new PackageManagementProjectService())
{
}
public Property(MSBuildBasedProject project, string name, IPackageManagementProjectService projectService)
{ {
this.project = project; this.project = project;
this.name = name; this.name = name;
this.projectService = projectService;
} }
public object Value { public object Value {
get { return GetProperty(name); } get { return GetProperty(name); }
set { set {
SetProperty(name, value); SetProperty(name, value);
SaveProject(); project.Save();
} }
} }
string GetProperty(string name) string GetProperty(string name)
{ {
string value = project.GetUnevalatedProperty(name); string value = project.MSBuildProject.GetUnevalatedProperty(name);
return EmptyStringIfNull(value); return EmptyStringIfNull(value);
} }
@ -49,12 +42,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE
void SetProperty(string name, object value) void SetProperty(string name, object value)
{ {
bool escapeValue = false; bool escapeValue = false;
project.SetProperty(name, value as string, escapeValue); project.MSBuildProject.SetProperty(name, value as string, escapeValue);
}
void SaveProject()
{
projectService.Save(project);
} }
} }
} }

30
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Reference.cs

@ -0,0 +1,30 @@
// 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 ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.PackageManagement.EnvDTE
{
public class Reference
{
ReferenceProjectItem referenceProjectItem;
Project project;
public Reference(Project project, ReferenceProjectItem referenceProjectItem)
{
this.project = project;
this.referenceProjectItem = referenceProjectItem;
}
public string Name {
get { return referenceProjectItem.Name; }
}
public void Remove()
{
project.RemoveReference(referenceProjectItem);
project.Save();
}
}
}

33
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/References.cs

@ -2,14 +2,17 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections;
using System.Collections.Generic;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.PackageManagement.EnvDTE namespace ICSharpCode.PackageManagement.EnvDTE
{ {
public class References public class References : IEnumerable<Reference>
{ {
MSBuildBasedProject project; MSBuildBasedProject msbuildProject;
IPackageManagementProjectService projectService; IPackageManagementProjectService projectService;
Project project;
public References(MSBuildBasedProject project) public References(MSBuildBasedProject project)
: this(project, new PackageManagementProjectService()) : this(project, new PackageManagementProjectService())
@ -20,20 +23,36 @@ namespace ICSharpCode.PackageManagement.EnvDTE
MSBuildBasedProject project, MSBuildBasedProject project,
IPackageManagementProjectService projectService) IPackageManagementProjectService projectService)
{ {
this.project = project; this.msbuildProject = project;
this.projectService = projectService; this.projectService = projectService;
} }
public References(Project project)
{
this.project = project;
}
public void Add(string path) public void Add(string path)
{ {
var referenceItem = new ReferenceProjectItem(project, path); project.AddReference(path);
projectService.AddProjectItem(project, referenceItem); project.Save();
SaveProject();
} }
void SaveProject() void SaveProject()
{ {
projectService.Save(project); project.Save();
}
public IEnumerator<Reference> GetEnumerator()
{
foreach (ReferenceProjectItem referenceProjectItem in project.GetReferences()) {
yield return new Reference(project, referenceProjectItem);
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
} }
} }
} }

4
src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj

@ -72,6 +72,9 @@
<Compile Include="Src\AddPackageReferenceCommandTests.cs" /> <Compile Include="Src\AddPackageReferenceCommandTests.cs" />
<Compile Include="Src\EnvDTE\DTETests.cs" /> <Compile Include="Src\EnvDTE\DTETests.cs" />
<Compile Include="Src\EnvDTE\ProjectTests.cs" /> <Compile Include="Src\EnvDTE\ProjectTests.cs" />
<Compile Include="Src\EnvDTE\PropertyTests.cs" />
<Compile Include="Src\EnvDTE\ReferencesTests.cs" />
<Compile Include="Src\EnvDTE\ReferenceTests.cs" />
<Compile Include="Src\Helpers\ExceptionThrowingPackageManagementProject.cs" /> <Compile Include="Src\Helpers\ExceptionThrowingPackageManagementProject.cs" />
<Compile Include="Src\Helpers\ExceptionThrowingRegisteredPackageRepositories.cs" /> <Compile Include="Src\Helpers\ExceptionThrowingRegisteredPackageRepositories.cs" />
<Compile Include="Src\Helpers\FakeAddPackageReferenceView.cs" /> <Compile Include="Src\Helpers\FakeAddPackageReferenceView.cs" />
@ -85,6 +88,7 @@
<Compile Include="Src\Helpers\FakePackageViewModelFactory.cs" /> <Compile Include="Src\Helpers\FakePackageViewModelFactory.cs" />
<Compile Include="Src\Helpers\FakePowerShellSession.cs" /> <Compile Include="Src\Helpers\FakePowerShellSession.cs" />
<Compile Include="Src\Helpers\TestableAddPackageReferenceCommand.cs" /> <Compile Include="Src\Helpers\TestableAddPackageReferenceCommand.cs" />
<Compile Include="Src\Helpers\TestableDTEProject.cs" />
<Compile Include="Src\PackageFromRepositoryTests.cs" /> <Compile Include="Src\PackageFromRepositoryTests.cs" />
<Compile Include="Src\PackageManagementEventsTests.cs" /> <Compile Include="Src\PackageManagementEventsTests.cs" />
<Compile Include="Src\PackageManagementLoggerTests.cs" /> <Compile Include="Src\PackageManagementLoggerTests.cs" />

82
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectTests.cs

@ -22,88 +22,14 @@ namespace PackageManagement.Tests.EnvDTE
} }
[Test] [Test]
public void ObjectReferencesAdd_AddGacAssemblyReference_ReferenceAddedToMSBuildProject() public void Name_ProjectNameIsMyApp_ReturnsMyApp()
{ {
CreateProject(); CreateProject();
project.Object.References.Add("System.Data"); msbuildProject.Name = "MyApp";
var reference = msbuildProject.Items[0] as ReferenceProjectItem; string name = project.Name;
string referenceName = reference.Name;
Assert.AreEqual("System.Data", referenceName); Assert.AreEqual("MyApp", name);
}
[Test]
public void ObjectReferencesAdd_AddGacAssemblyReference_MSBuildProjectIsSaved()
{
CreateProject();
project.Object.References.Add("System.Xml");
bool saved = msbuildProject.IsSaved;
Assert.IsTrue(saved);
}
[Test]
public void PropertiesItemValue_GetPostBuildEvent_ReturnsProjectsPostBuildEvent()
{
CreateProject();
msbuildProject.SetProperty("PostBuildEvent", "Test");
var postBuildEventProperty = project.Properties.Item("PostBuildEvent").Value;
Assert.AreEqual("Test", postBuildEventProperty);
}
[Test]
public void PropertiesItemValue_GetPostBuildEvent_ReturnsUnevaluatedPostBuildEvent()
{
CreateProject();
msbuildProject.SetProperty("PostBuildEvent", "$(SolutionDir)", false);
var postBuildEventProperty = project.Properties.Item("PostBuildEvent").Value;
Assert.AreEqual("$(SolutionDir)", postBuildEventProperty);
}
[Test]
public void PropertiesItemValue_GetNullProperty_ReturnsEmptyString()
{
CreateProject();
var property = project.Properties.Item("TestTestTest").Value;
Assert.AreEqual(String.Empty, property);
}
[Test]
public void PropertiesItemValue_SetPostBuildEvent_UpdatesProjectsPostBuildEvent()
{
CreateProject();
project.Properties.Item("PostBuildEvent").Value = "Test";
string postBuildEventProperty = msbuildProject.GetEvaluatedProperty("PostBuildEvent");
Assert.AreEqual("Test", postBuildEventProperty);
}
[Test]
public void PropertiesItemValue_SetPostBuildEvent_DoesNotEscapeText()
{
CreateProject();
project.Properties.Item("PostBuildEvent").Value = "$(SolutionDir)";
string postBuildEventProperty = msbuildProject.GetUnevalatedProperty("PostBuildEvent");
Assert.AreEqual("$(SolutionDir)", postBuildEventProperty);
}
[Test]
public void PropertiesItemValue_SetPostBuildEvent_MSBuildProjectIsSaved()
{
CreateProject();
project.Properties.Item("PostBuildEvent").Value = "test";
bool saved = msbuildProject.IsSaved;
Assert.IsTrue(saved);
} }
} }
} }

87
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/PropertyTests.cs

@ -0,0 +1,87 @@
// 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 ICSharpCode.PackageManagement.EnvDTE;
using NUnit.Framework;
using PackageManagement.Tests.Helpers;
namespace PackageManagement.Tests.EnvDTE
{
[TestFixture]
public class PropertyTests
{
Properties properties;
TestableDTEProject project;
TestableProject msbuildProject;
void CreateProperties()
{
project = new TestableDTEProject();
msbuildProject = project.TestableProject;
properties = new Properties(project);
}
[Test]
public void Value_GetPostBuildEvent_ReturnsProjectsPostBuildEvent()
{
CreateProperties();
msbuildProject.SetProperty("PostBuildEvent", "Test");
var postBuildEventProperty = properties.Item("PostBuildEvent").Value;
Assert.AreEqual("Test", postBuildEventProperty);
}
[Test]
public void Value_GetPostBuildEvent_ReturnsUnevaluatedPostBuildEvent()
{
CreateProperties();
msbuildProject.SetProperty("PostBuildEvent", "$(SolutionDir)", false);
var postBuildEventProperty = properties.Item("PostBuildEvent").Value;
Assert.AreEqual("$(SolutionDir)", postBuildEventProperty);
}
[Test]
public void Value_GetNullProperty_ReturnsEmptyString()
{
CreateProperties();
var property = properties.Item("TestTestTest").Value;
Assert.AreEqual(String.Empty, property);
}
[Test]
public void Value_SetPostBuildEvent_UpdatesProjectsPostBuildEvent()
{
CreateProperties();
properties.Item("PostBuildEvent").Value = "Test";
string postBuildEventProperty = msbuildProject.GetEvaluatedProperty("PostBuildEvent");
Assert.AreEqual("Test", postBuildEventProperty);
}
[Test]
public void Value_SetPostBuildEvent_DoesNotEscapeText()
{
CreateProperties();
properties.Item("PostBuildEvent").Value = "$(SolutionDir)";
string postBuildEventProperty = msbuildProject.GetUnevalatedProperty("PostBuildEvent");
Assert.AreEqual("$(SolutionDir)", postBuildEventProperty);
}
[Test]
public void ItemValue_SetPostBuildEvent_MSBuildProjectIsSaved()
{
CreateProperties();
project.Properties.Item("PostBuildEvent").Value = "test";
bool saved = msbuildProject.IsSaved;
Assert.IsTrue(saved);
}
}
}

62
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ReferenceTests.cs

@ -0,0 +1,62 @@
// 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 ICSharpCode.PackageManagement.Design;
using ICSharpCode.PackageManagement.EnvDTE;
using NUnit.Framework;
using PackageManagement.Tests.Helpers;
namespace PackageManagement.Tests.EnvDTE
{
[TestFixture]
public class ReferenceTests
{
Reference reference;
TestableProject msbuildProject;
FakePackageManagementProjectService fakeProjectService;
TestableDTEProject project;
void CreateReference(string name)
{
project = new TestableDTEProject();
msbuildProject = project.TestableProject;
var referenceProjectItem = msbuildProject.AddReference(name);
fakeProjectService = project.FakeProjectService;
reference = new Reference(project, referenceProjectItem);
}
[Test]
public void Name_ReferenceNameIsSystemXml_ReturnsSystemXml()
{
CreateReference("System.Xml");
string name = reference.Name;
Assert.AreEqual("System.Xml", name);
}
[Test]
public void Remove_RemoveSystemXmlReferenceFromProject_ProjectReferenceRemoved()
{
CreateReference("System.Xml");
reference.Remove();
int count = msbuildProject.Items.Count;
Assert.AreEqual(0, count);
}
[Test]
public void Remove_RemoveSystemXmlReferenceFromProject_ProjectIsSaved()
{
CreateReference("System.Xml");
reference.Remove();
bool saved = msbuildProject.IsSaved;
Assert.IsTrue(saved);
}
}
}

123
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ReferencesTests.cs

@ -0,0 +1,123 @@
// 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.Collections;
using System.Collections.Generic;
using ICSharpCode.PackageManagement.Design;
using ICSharpCode.PackageManagement.EnvDTE;
using ICSharpCode.SharpDevelop.Project;
using NUnit.Framework;
using PackageManagement.Tests.Helpers;
namespace PackageManagement.Tests.EnvDTE
{
[TestFixture]
public class ReferencesTests
{
References references;
FakePackageManagementProjectService fakeProjectService;
TestableProject msbuildProject;
TestableDTEProject project;
void CreateReferences()
{
project = new TestableDTEProject();
msbuildProject = project.TestableProject;
fakeProjectService = project.FakeProjectService;
references = project.Object.References;
}
void ReferenceCollectionAssertAreEqual(string[] expectedReferences, List<Reference> referenceList)
{
var actualReferences = new List<string>();
referenceList.ForEach(r => actualReferences.Add(r.Name));
CollectionAssert.AreEqual(expectedReferences, actualReferences);
}
void ReferenceCollectionAssertAreEqual(string[] expectedReferences, IEnumerable referenceList)
{
var actualReferences = new List<string>();
foreach (Reference reference in referenceList) {
actualReferences.Add(reference.Name);
}
CollectionAssert.AreEqual(expectedReferences, actualReferences);
}
[Test]
public void Add_AddGacAssemblyReference_ReferenceAddedToMSBuildProject()
{
CreateReferences();
references.Add("System.Data");
var reference = msbuildProject.Items[0] as ReferenceProjectItem;
string referenceName = reference.Name;
Assert.AreEqual("System.Data", referenceName);
}
[Test]
public void Add_AddGacAssemblyReference_MSBuildProjectIsSaved()
{
CreateReferences();
references.Add("System.Xml");
bool saved = msbuildProject.IsSaved;
Assert.IsTrue(saved);
}
[Test]
public void GetEnumerator_ProjectHasTwoReferences_TwoReferencesReturned()
{
CreateReferences();
msbuildProject.AddReference("System.Data");
msbuildProject.AddReference("System.Xml");
var referenceList = new List<Reference>();
referenceList.AddRange(references);
var expectedReferences = new string[] {
"System.Data",
"System.Xml"
};
ReferenceCollectionAssertAreEqual(expectedReferences, referenceList);
}
[Test]
public void GetEnumerator_ProjectHasFileItemBeforeReferenceItem_OneReferenceReturned()
{
CreateReferences();
msbuildProject.AddFile(@"src\Test.cs");
msbuildProject.AddReference("System.Xml");
var referenceList = new List<Reference>();
referenceList.AddRange(references);
var expectedReferences = new string[] {
"System.Xml"
};
ReferenceCollectionAssertAreEqual(expectedReferences, referenceList);
}
[Test]
public void GetEnumerator_UseUntypedEnumeratorProjectHasOneReference_OneReferenceReturned()
{
CreateReferences();
msbuildProject.AddReference("System.Xml");
var enumerable = references as IEnumerable;
var expectedReferences = new string[] {
"System.Xml"
};
ReferenceCollectionAssertAreEqual(expectedReferences, enumerable);
}
}
}

7
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/ProjectHelper.cs

@ -2,7 +2,6 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using DTE = ICSharpCode.PackageManagement.EnvDTE;
using ICSharpCode.SharpDevelop.Internal.Templates; using ICSharpCode.SharpDevelop.Internal.Templates;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
@ -80,11 +79,5 @@ namespace PackageManagement.Tests.Helpers
} }
return null; return null;
} }
public static DTE.Project CreateDTEProject()
{
TestableProject msbuildProject = CreateTestProject();
return new DTE.Project(msbuildProject);
}
} }
} }

33
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableDTEProject.cs

@ -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 ICSharpCode.PackageManagement.Design;
using ICSharpCode.PackageManagement.EnvDTE;
using ICSharpCode.SharpDevelop.Project;
namespace PackageManagement.Tests.Helpers
{
public class TestableDTEProject : Project
{
public TestableProject TestableProject;
public FakePackageManagementProjectService FakeProjectService;
public TestableDTEProject()
: this(ProjectHelper.CreateTestProject())
{
}
public TestableDTEProject(TestableProject project)
: this(project, new FakePackageManagementProjectService())
{
}
public TestableDTEProject(TestableProject project, FakePackageManagementProjectService projectService)
: base(project, projectService)
{
this.TestableProject = project;
this.FakeProjectService = projectService;
}
}
}

14
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableProject.cs

@ -29,5 +29,19 @@ namespace PackageManagement.Tests.Helpers
{ {
return ItemTypeToReturnFromGetDefaultItemType; return ItemTypeToReturnFromGetDefaultItemType;
} }
public ReferenceProjectItem AddReference(string include)
{
var referenceProjectItem = new ReferenceProjectItem(this, include);
ProjectService.AddProjectItem(this, referenceProjectItem);
return referenceProjectItem;
}
public FileProjectItem AddFile(string include)
{
var fileProjectItem = new FileProjectItem(this, ItemType.Compile, include);
ProjectService.AddProjectItem(this, fileProjectItem);
return fileProjectItem;
}
} }
} }

2
src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageInstallScriptTests.cs

@ -34,7 +34,7 @@ namespace PackageManagement.Tests.Scripting
public void Execute_PackageInstallDirectoryIsSet_ProjectSessionVariableIsSet() public void Execute_PackageInstallDirectoryIsSet_ProjectSessionVariableIsSet()
{ {
CreateScript(); CreateScript();
var expectedProject = ProjectHelper.CreateDTEProject(); var expectedProject = new TestableDTEProject();
var project = new FakePackageManagementProject(); var project = new FakePackageManagementProject();
project.DTEProject = expectedProject; project.DTEProject = expectedProject;
script.Project = project; script.Project = project;

Loading…
Cancel
Save