Browse Source

Fix packages.config not being added to project.

NuGet's PhysicalFileSystem now has two AddFile methods
and both of these need to be overridden.
pull/44/head
Matt Ward 13 years ago
parent
commit
3d0a095487
  1. 26
      src/AddIns/Misc/PackageManagement/Project/Src/SharpDevelopProjectSystem.cs
  2. 7
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableSharpDevelopProjectSystem.cs
  3. 32
      src/AddIns/Misc/PackageManagement/Test/Src/SharpDevelopProjectSystemTests.cs

26
src/AddIns/Misc/PackageManagement/Project/Src/SharpDevelopProjectSystem.cs

@ -187,10 +187,13 @@ namespace ICSharpCode.PackageManagement @@ -187,10 +187,13 @@ namespace ICSharpCode.PackageManagement
public override void AddFile(string path, Stream stream)
{
PhysicalFileSystemAddFile(path, stream);
if (ShouldAddFileToProject(path)) {
AddFileToProject(path);
}
LogAddedFileToProject(path);
AddFileToProject(path);
}
public override void AddFile(string path, Action<Stream> writeToStream)
{
PhysicalFileSystemAddFile(path, writeToStream);
AddFileToProject(path);
}
protected virtual void PhysicalFileSystemAddFile(string path, Stream stream)
@ -198,6 +201,19 @@ namespace ICSharpCode.PackageManagement @@ -198,6 +201,19 @@ namespace ICSharpCode.PackageManagement
base.AddFile(path, stream);
}
protected virtual void PhysicalFileSystemAddFile(string path, Action<Stream> writeToStream)
{
base.AddFile(path, writeToStream);
}
void AddFileToProject(string path)
{
if (ShouldAddFileToProject(path)) {
AddFileProjectItemToProject(path);
}
LogAddedFileToProject(path);
}
bool ShouldAddFileToProject(string path)
{
return !IsBinDirectory(path) && !FileExistsInProject(path);
@ -215,7 +231,7 @@ namespace ICSharpCode.PackageManagement @@ -215,7 +231,7 @@ namespace ICSharpCode.PackageManagement
return project.IsFileInProject(fullPath);
}
void AddFileToProject(string path)
void AddFileProjectItemToProject(string path)
{
FileProjectItem fileItem = CreateFileProjectItem(path);
projectService.AddProjectItem(project, fileItem);

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

@ -13,6 +13,7 @@ namespace PackageManagement.Tests.Helpers @@ -13,6 +13,7 @@ namespace PackageManagement.Tests.Helpers
{
public string PathPassedToPhysicalFileSystemAddFile;
public Stream StreamPassedToPhysicalFileSystemAddFile;
public Action<Stream> ActionPassedToPhysicalFileSystemAddFile;
public FakeFileService FakeFileService;
public FakePackageManagementProjectService FakeProjectService;
public FakeLogger FakeLogger;
@ -51,6 +52,12 @@ namespace PackageManagement.Tests.Helpers @@ -51,6 +52,12 @@ namespace PackageManagement.Tests.Helpers
StreamPassedToPhysicalFileSystemAddFile = stream;
}
protected override void PhysicalFileSystemAddFile(string path, Action<Stream> writeToStream)
{
PathPassedToPhysicalFileSystemAddFile = path;
ActionPassedToPhysicalFileSystemAddFile = writeToStream;
}
protected override void LogDeletedFile(string fileName)
{
FileNamePassedToLogDeletedFile = fileName;

32
src/AddIns/Misc/PackageManagement/Test/Src/SharpDevelopProjectSystemTests.cs

@ -1035,5 +1035,37 @@ namespace PackageManagement.Tests @@ -1035,5 +1035,37 @@ namespace PackageManagement.Tests
Assert.AreEqual(1, project.GetImports().Count);
}
[Test]
public void AddFile_NewFileAddedWithAction_AddsFileToFileSystem()
{
CreateTestProject();
CreateProjectSystem(project);
string expectedPath = @"d:\temp\abc.cs";
Action<Stream> expectedAction = stream => { };
projectSystem.AddFile(expectedPath, expectedAction);
Assert.AreEqual(expectedPath, projectSystem.PathPassedToPhysicalFileSystemAddFile);
Assert.AreEqual(expectedAction, projectSystem.ActionPassedToPhysicalFileSystemAddFile);
}
[Test]
public void AddFile_NewFileAddedWithAction_AddsFileToProject()
{
CreateTestProject(@"d:\projects\MyProject\MyProject.csproj");
project.ItemTypeToReturnFromGetDefaultItemType = ItemType.Compile;
CreateProjectSystem(project);
string fileName = @"d:\projects\MyProject\src\NewFile.cs";
Action<Stream> action = stream => { };
projectSystem.AddFile(fileName, action);
FileProjectItem fileItem = ProjectHelper.GetFile(project, fileName);
FileProjectItem expectedFileItem = new FileProjectItem(project, ItemType.Compile);
expectedFileItem.FileName = fileName;
FileProjectItemAssert.AreEqual(expectedFileItem, fileItem);
}
}
}

Loading…
Cancel
Save