You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
673 lines
20 KiB
673 lines
20 KiB
// 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.IO; |
|
using System.Runtime.Versioning; |
|
|
|
using ICSharpCode.PackageManagement; |
|
using ICSharpCode.SharpDevelop.Project; |
|
using NUnit.Framework; |
|
using PackageManagement.Tests.Helpers; |
|
|
|
namespace PackageManagement.Tests |
|
{ |
|
[TestFixture] |
|
public class SharpDevelopProjectSystemTests |
|
{ |
|
TestableSharpDevelopProjectSystem projectSystem; |
|
TestableProject project; |
|
|
|
void CreateProjectSystem(MSBuildBasedProject project) |
|
{ |
|
projectSystem = new TestableSharpDevelopProjectSystem(project); |
|
} |
|
|
|
void CreateTestProject() |
|
{ |
|
project = ProjectHelper.CreateTestProject(); |
|
} |
|
|
|
void CreateTestProject(string fileName) |
|
{ |
|
CreateTestProject(); |
|
project.FileName = fileName; |
|
} |
|
|
|
void AddFileToProject(string fileName) |
|
{ |
|
ProjectHelper.AddFile(project, fileName); |
|
} |
|
|
|
[Test] |
|
public void Root_NewInstanceCreated_ReturnsProjectDirectory() |
|
{ |
|
CreateTestProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
CreateProjectSystem(project); |
|
|
|
string expectedRoot = @"d:\projects\MyProject\"; |
|
Assert.AreEqual(expectedRoot, projectSystem.Root); |
|
} |
|
|
|
[Test] |
|
public void ProjectName_NewInstanceCreated_ReturnsProjectName() |
|
{ |
|
CreateTestProject(); |
|
project.Name = "MyProjectName"; |
|
CreateProjectSystem(project); |
|
|
|
Assert.AreEqual("MyProjectName", projectSystem.ProjectName); |
|
} |
|
|
|
[Test] |
|
public void GetPropertyValue_PassedDefinedPropertyName_ReturnsExpectedPropertyValue() |
|
{ |
|
CreateTestProject(); |
|
string expectedPropertyValue = "Test"; |
|
string propertyName = "TestProperty"; |
|
project.SetProperty(propertyName, expectedPropertyValue); |
|
CreateProjectSystem(project); |
|
|
|
string propertyValue = projectSystem.GetPropertyValue(propertyName); |
|
|
|
Assert.AreEqual(expectedPropertyValue, propertyValue); |
|
} |
|
|
|
[Test] |
|
public void TargetFramework_TargetFrameworkVersion40DefinedInProject_ReturnsFullDotNetFramework40() |
|
{ |
|
CreateTestProject(); |
|
project.SetProperty("TargetFrameworkIdentifier", null); |
|
project.SetProperty("TargetFrameworkVersion", "v4.0"); |
|
project.SetProperty("TargetFrameworkProfile", null); |
|
CreateProjectSystem(project); |
|
|
|
FrameworkName expectedName = new FrameworkName(".NETFramework, Profile=Full, Version=v4.0"); |
|
|
|
Assert.AreEqual(expectedName, projectSystem.TargetFramework); |
|
} |
|
|
|
[Test] |
|
public void TargetFramework_TargetFrameworkVersion35ClientProfileDefinedInProject_ReturnsClientProfileDotNetFramework35() |
|
{ |
|
CreateTestProject(); |
|
project.SetProperty("TargetFrameworkIdentifier", null); |
|
project.SetProperty("TargetFrameworkVersion", "v3.5"); |
|
project.SetProperty("TargetFrameworkProfile", "Client"); |
|
CreateProjectSystem(project); |
|
|
|
FrameworkName expectedName = new FrameworkName(".NETFramework, Profile=Client, Version=v3.5"); |
|
|
|
Assert.AreEqual(expectedName, projectSystem.TargetFramework); |
|
} |
|
|
|
[Test] |
|
public void TargetFramework_TargetFrameworkVersionIsSilverlight20DefinedInProject_ReturnsSilverlight() |
|
{ |
|
CreateTestProject(); |
|
project.SetProperty("TargetFrameworkIdentifier", "Silverlight"); |
|
project.SetProperty("TargetFrameworkVersion", "v2.0"); |
|
project.SetProperty("TargetFrameworkProfile", null); |
|
CreateProjectSystem(project); |
|
|
|
FrameworkName expectedName = new FrameworkName("Silverlight, Profile=Full, Version=v2.0"); |
|
|
|
Assert.AreEqual(expectedName, projectSystem.TargetFramework); |
|
} |
|
|
|
[Test] |
|
public void IsSupportedFile_PassedCSharpFileName_ReturnsTrue() |
|
{ |
|
CreateTestProject(); |
|
CreateProjectSystem(project); |
|
|
|
string fileName = @"d:\temp\abc.cs"; |
|
bool result = projectSystem.IsSupportedFile(fileName); |
|
|
|
Assert.IsTrue(result); |
|
} |
|
|
|
[Test] |
|
public void IsSupportedFile_PassedAppConfigFileName_ReturnsFalse() |
|
{ |
|
CreateTestProject(); |
|
CreateProjectSystem(project); |
|
|
|
string fileName = @"d:\temp\app.config"; |
|
bool result = projectSystem.IsSupportedFile(fileName); |
|
|
|
Assert.IsFalse(result); |
|
} |
|
|
|
[Test] |
|
public void IsSupportedFile_PassedAppConfigFileNameInUpperCase_ReturnsFalse() |
|
{ |
|
CreateTestProject(); |
|
CreateProjectSystem(project); |
|
|
|
string fileName = @"c:\projects\APP.CONFIG"; |
|
bool result = projectSystem.IsSupportedFile(fileName); |
|
|
|
Assert.IsFalse(result); |
|
} |
|
|
|
[Test] |
|
public void ReferenceExists_ProjectHasReferenceAndFullPathToAssemblyPassedToMethod_ReturnsTrue() |
|
{ |
|
CreateTestProject(); |
|
ProjectHelper.AddReference(project, "MyAssembly"); |
|
CreateProjectSystem(project); |
|
string fileName = @"D:\Projects\Test\MyAssembly.dll"; |
|
|
|
bool result = projectSystem.ReferenceExists(fileName); |
|
|
|
Assert.IsTrue(result); |
|
} |
|
|
|
[Test] |
|
public void ReferenceExists_ProjectHasNoReferences_ReturnsFalse() |
|
{ |
|
CreateTestProject(); |
|
CreateProjectSystem(project); |
|
string fileName = @"D:\Projects\Test\MyAssembly.dll"; |
|
|
|
bool result = projectSystem.ReferenceExists(fileName); |
|
|
|
Assert.IsFalse(result); |
|
} |
|
|
|
[Test] |
|
public void ReferenceExists_ProjectReferenceNameHasDifferentCase_ReturnsTrue() |
|
{ |
|
CreateTestProject(); |
|
ProjectHelper.AddReference(project, "myassembly"); |
|
CreateProjectSystem(project); |
|
string fileName = @"D:\Projects\Test\MYASSEMBLY.dll"; |
|
|
|
bool result = projectSystem.ReferenceExists(fileName); |
|
|
|
Assert.IsTrue(result); |
|
} |
|
|
|
[Test] |
|
public void AddReference_AddReferenceToNUnitFramework_ProjectIsSavedAfterAddingReference() |
|
{ |
|
CreateTestProject(); |
|
CreateProjectSystem(project); |
|
project.IsSaved = false; |
|
|
|
string fileName = @"d:\projects\packages\nunit\nunit.framework.dll"; |
|
projectSystem.AddReference(fileName, null); |
|
|
|
Assert.AreEqual(1, project.ItemsWhenSaved.Count); |
|
} |
|
|
|
[Test] |
|
public void AddReference_AddReferenceToNUnitFramework_ReferenceAddedToProject() |
|
{ |
|
CreateTestProject(); |
|
CreateProjectSystem(project); |
|
project.IsSaved = false; |
|
|
|
string fileName = @"d:\projects\packages\nunit\nunit.framework.dll"; |
|
projectSystem.AddReference(fileName, null); |
|
|
|
ReferenceProjectItem referenceItem = ProjectHelper.GetReference(project, "nunit.framework"); |
|
|
|
ReferenceProjectItem expectedReferenceItem = new ReferenceProjectItem(project); |
|
expectedReferenceItem.Include = "nunit.framework"; |
|
expectedReferenceItem.HintPath = fileName; |
|
|
|
ReferenceProjectItemAssert.AreEqual(expectedReferenceItem, referenceItem); |
|
} |
|
|
|
[Test] |
|
public void AddReference_ReferenceFileNameIsRelativePath_ReferenceAddedToProject() |
|
{ |
|
CreateTestProject(); |
|
project.FileName = @"d:\projects\MyProject\MyProject.csproj"; |
|
CreateProjectSystem(project); |
|
project.IsSaved = false; |
|
|
|
string fileName = @"packages\nunit\nunit.framework.dll"; |
|
projectSystem.AddReference(fileName, null); |
|
|
|
ReferenceProjectItem referenceItem = ProjectHelper.GetReference(project, "nunit.framework"); |
|
|
|
ReferenceProjectItem expectedReferenceItem = new ReferenceProjectItem(project); |
|
expectedReferenceItem.Include = "nunit.framework"; |
|
expectedReferenceItem.HintPath = fileName; |
|
|
|
ReferenceProjectItemAssert.AreEqual(expectedReferenceItem, referenceItem); |
|
} |
|
|
|
[Test] |
|
public void AddReference_AddReferenceToNUnitFramework_AddingReferenceIsLogged() |
|
{ |
|
CreateTestProject(); |
|
CreateProjectSystem(project); |
|
project.Name = "MyTestProject"; |
|
|
|
string fileName = @"d:\projects\packages\nunit\nunit.framework.dll"; |
|
projectSystem.AddReference(fileName, null); |
|
|
|
var expectedReferenceAndProjectName = new ReferenceAndProjectName() { |
|
Reference = "nunit.framework", |
|
Project = "MyTestProject" |
|
}; |
|
|
|
Assert.AreEqual(expectedReferenceAndProjectName, projectSystem.ReferenceAndProjectNamePassedToLogAddedReferenceToProject); |
|
} |
|
|
|
[Test] |
|
public void RemoveReference_ReferenceBeingRemovedHasFileExtension_ReferenceRemovedFromProject() |
|
{ |
|
CreateTestProject(); |
|
ProjectHelper.AddReference(project, "nunit.framework"); |
|
CreateProjectSystem(project); |
|
|
|
string fileName = @"d:\projects\packages\nunit\nunit.framework.dll"; |
|
projectSystem.RemoveReference(fileName); |
|
|
|
ReferenceProjectItem referenceItem = ProjectHelper.GetReference(project, "nunit.framework"); |
|
|
|
Assert.IsNull(referenceItem); |
|
} |
|
|
|
[Test] |
|
public void RemoveReference_ReferenceCaseAddedToProjectDifferentToReferenceNameBeingRemoved_ReferenceRemovedFromProject() |
|
{ |
|
CreateTestProject(); |
|
ProjectHelper.AddReference(project, "nunit.framework"); |
|
CreateProjectSystem(project); |
|
|
|
string fileName = @"NUNIT.FRAMEWORK.DLL"; |
|
projectSystem.RemoveReference(fileName); |
|
|
|
ReferenceProjectItem referenceItem = ProjectHelper.GetReference(project, "nunit.framework"); |
|
|
|
Assert.IsNull(referenceItem); |
|
} |
|
|
|
[Test] |
|
public void RemoveReference_ProjectHasNoReference_ArgumentNullExceptionNotThrown() |
|
{ |
|
CreateTestProject(); |
|
CreateProjectSystem(project); |
|
|
|
string fileName = @"NUNIT.FRAMEWORK.DLL"; |
|
Assert.DoesNotThrow(() => projectSystem.RemoveReference(fileName)); |
|
} |
|
|
|
[Test] |
|
public void RemoveReference_ReferenceExistsInProject_ProjectIsSavedAfterReferenceRemoved() |
|
{ |
|
CreateTestProject(); |
|
ProjectHelper.AddReference(project, "nunit.framework"); |
|
CreateProjectSystem(project); |
|
|
|
string fileName = @"d:\projects\packages\nunit\nunit.framework.dll"; |
|
projectSystem.RemoveReference(fileName); |
|
|
|
Assert.AreEqual(0, project.ItemsWhenSaved.Count); |
|
} |
|
|
|
[Test] |
|
public void RemoveReference_ReferenceBeingRemovedHasFileExtension_ReferenceRemovalIsLogged() |
|
{ |
|
CreateTestProject(); |
|
project.Name = "MyTestProject"; |
|
ProjectHelper.AddReference(project, "nunit.framework"); |
|
CreateProjectSystem(project); |
|
|
|
string fileName = @"d:\projects\packages\nunit\nunit.framework.dll"; |
|
projectSystem.RemoveReference(fileName); |
|
|
|
var expectedReferenceAndProjectName = new ReferenceAndProjectName { |
|
Reference = "nunit.framework", |
|
Project = "MyTestProject" |
|
}; |
|
|
|
Assert.AreEqual(expectedReferenceAndProjectName, projectSystem.ReferenceAndProjectNamePassedToLogRemovedReferenceFromProject); |
|
} |
|
|
|
[Test] |
|
public void AddFile_NewFile_AddsFileToFileSystem() |
|
{ |
|
CreateTestProject(); |
|
CreateProjectSystem(project); |
|
|
|
string expectedPath = @"d:\temp\abc.cs"; |
|
Stream expectedStream = new MemoryStream(); |
|
projectSystem.AddFile(expectedPath, expectedStream); |
|
|
|
Assert.AreEqual(expectedPath, projectSystem.PathPassedToPhysicalFileSystemAddFile); |
|
Assert.AreEqual(expectedStream, projectSystem.StreamPassedToPhysicalFileSystemAddFile); |
|
} |
|
|
|
[Test] |
|
public void AddFile_NewFile_AddsFileToProject() |
|
{ |
|
CreateTestProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
project.ItemTypeToReturnFromGetDefaultItemType = ItemType.Compile; |
|
CreateProjectSystem(project); |
|
|
|
string fileName = @"d:\projects\MyProject\src\NewFile.cs"; |
|
projectSystem.AddFile(fileName, null); |
|
FileProjectItem fileItem = ProjectHelper.GetFile(project, fileName); |
|
|
|
FileProjectItem expectedFileItem = new FileProjectItem(project, ItemType.Compile); |
|
expectedFileItem.FileName = fileName; |
|
|
|
FileProjectItemAssert.AreEqual(expectedFileItem, fileItem); |
|
} |
|
|
|
[Test] |
|
public void AddFile_NewResxFile_AddsFileToProjectWithCorrectItemType() |
|
{ |
|
CreateTestProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
project.ItemTypeToReturnFromGetDefaultItemType = ItemType.EmbeddedResource; |
|
CreateProjectSystem(project); |
|
|
|
string fileName = @"d:\projects\MyProject\src\NewFile.resx"; |
|
projectSystem.AddFile(fileName, null); |
|
FileProjectItem fileItem = ProjectHelper.GetFile(project, fileName); |
|
|
|
FileProjectItem expectedFileItem = new FileProjectItem(project, ItemType.EmbeddedResource); |
|
expectedFileItem.FileName = fileName; |
|
|
|
FileProjectItemAssert.AreEqual(expectedFileItem, fileItem); |
|
} |
|
|
|
[Test] |
|
public void AddFile_RelativeFileNameUsed_AddsFileToProject() |
|
{ |
|
CreateTestProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
project.ItemTypeToReturnFromGetDefaultItemType = ItemType.Compile; |
|
CreateProjectSystem(project); |
|
|
|
string relativeFileName = @"src\NewFile.cs"; |
|
string fileName = @"d:\projects\MyProject\src\NewFile.cs"; |
|
projectSystem.AddFile(relativeFileName, null); |
|
FileProjectItem fileItem = ProjectHelper.GetFile(project, fileName); |
|
|
|
FileProjectItem expectedFileItem = new FileProjectItem(project, ItemType.Compile); |
|
expectedFileItem.FileName = fileName; |
|
|
|
FileProjectItemAssert.AreEqual(expectedFileItem, fileItem); |
|
} |
|
|
|
[Test] |
|
public void AddFile_RelativeFileNameWithNoPathUsed_AddsFileToProject() |
|
{ |
|
CreateTestProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
project.ItemTypeToReturnFromGetDefaultItemType = ItemType.Compile; |
|
CreateProjectSystem(project); |
|
|
|
string relativeFileName = @"NewFile.cs"; |
|
string fileName = @"d:\projects\MyProject\NewFile.cs"; |
|
projectSystem.AddFile(relativeFileName, null); |
|
FileProjectItem fileItem = ProjectHelper.GetFile(project, fileName); |
|
|
|
FileProjectItem expectedFileItem = new FileProjectItem(project, ItemType.Compile); |
|
expectedFileItem.FileName = fileName; |
|
|
|
FileProjectItemAssert.AreEqual(expectedFileItem, fileItem); |
|
} |
|
|
|
[Test] |
|
public void AddFile_NewFile_ProjectIsSavedAfterFileAddedToProject() |
|
{ |
|
CreateTestProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
project.IsSaved = false; |
|
CreateProjectSystem(project); |
|
|
|
string fileName = @"d:\projects\MyProject\src\NewFile.cs"; |
|
projectSystem.AddFile(fileName, null); |
|
|
|
Assert.AreEqual(1, project.ItemsWhenSaved.Count); |
|
} |
|
|
|
[Test] |
|
public void AddFile_NewFileToBeAddedInBinFolder_FileIsNotAddedToProject() |
|
{ |
|
CreateTestProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
CreateProjectSystem(project); |
|
|
|
string fileName = @"bin\NewFile.dll"; |
|
projectSystem.AddFile(fileName, null); |
|
|
|
FileProjectItem fileItem = ProjectHelper.GetFileFromInclude(project, fileName); |
|
|
|
Assert.IsNull(fileItem); |
|
} |
|
|
|
[Test] |
|
public void AddFile_NewFileToBeAddedInBinFolderWithBinFolderNameInUpperCase_FileIsNotAddedToProject() |
|
{ |
|
CreateTestProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
CreateProjectSystem(project); |
|
|
|
string fileName = @"BIN\NewFile.dll"; |
|
projectSystem.AddFile(fileName, null); |
|
|
|
FileProjectItem fileItem = ProjectHelper.GetFileFromInclude(project, fileName); |
|
|
|
Assert.IsNull(fileItem); |
|
} |
|
|
|
[Test] |
|
public void AddFile_FileAlreadyExistsInProject_FileIsNotAddedToProject() |
|
{ |
|
CreateTestProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
project.ItemTypeToReturnFromGetDefaultItemType = ItemType.Compile; |
|
CreateProjectSystem(project); |
|
AddFileToProject(@"d:\projects\MyProject\src\NewFile.cs"); |
|
|
|
projectSystem.AddFile(@"src\NewFile.cs", null); |
|
|
|
int projectItemsCount = project.Items.Count; |
|
Assert.AreEqual(1, projectItemsCount); |
|
} |
|
|
|
[Test] |
|
public void AddFile_NewFile_FileAddedToProjectIsLogged() |
|
{ |
|
CreateTestProject(@"d:\temp\MyProject.csproj"); |
|
project.Name = "MyTestProject"; |
|
CreateProjectSystem(project); |
|
|
|
projectSystem.AddFile(@"src\files\abc.cs", null); |
|
|
|
var expectedFileNameAndProjectName = new FileNameAndProjectName { |
|
FileName = @"src\files\abc.cs", |
|
ProjectName = "MyTestProject" |
|
}; |
|
|
|
Assert.AreEqual(expectedFileNameAndProjectName, projectSystem.FileNameAndProjectNamePassedToLogAddedFileToProject); |
|
} |
|
|
|
[Test] |
|
public void AddFile_NewFileAlreadyExistsInProject_FileIsStillLogged() |
|
{ |
|
CreateTestProject(@"d:\temp\MyProject.csproj"); |
|
project.Name = "MyTestProject"; |
|
AddFileToProject(@"src\files\abc.cs"); |
|
CreateProjectSystem(project); |
|
|
|
projectSystem.AddFile(@"src\files\abc.cs", null); |
|
|
|
var expectedFileNameAndProjectName = new FileNameAndProjectName { |
|
FileName = @"src\files\abc.cs", |
|
ProjectName = "MyTestProject" |
|
}; |
|
|
|
Assert.AreEqual(expectedFileNameAndProjectName, projectSystem.FileNameAndProjectNamePassedToLogAddedFileToProject); |
|
} |
|
|
|
[Test] |
|
public void DeleteFile_DeletesFileFromFileSystem_CallsFileServiceRemoveFile() |
|
{ |
|
CreateTestProject(@"d:\temp\MyProject.csproj"); |
|
AddFileToProject(@"d:\temp\test.cs"); |
|
CreateProjectSystem(project); |
|
|
|
projectSystem.DeleteFile("test.cs"); |
|
|
|
Assert.AreEqual(@"d:\temp\test.cs", projectSystem.FakeFileService.PathPassedToRemoveFile); |
|
} |
|
|
|
[Test] |
|
public void DeleteFile_DeletesFileFromFileSystem_ProjectIsSavedAfterFileRemoved() |
|
{ |
|
CreateTestProject(@"d:\temp\MyProject.csproj"); |
|
project.IsSaved = false; |
|
AddFileToProject(@"d:\temp\test.cs"); |
|
CreateProjectSystem(project); |
|
|
|
projectSystem.DeleteFile("test.cs"); |
|
|
|
Assert.AreEqual(0, project.ItemsWhenSaved.Count); |
|
} |
|
|
|
[Test] |
|
public void DeleteFile_DeletesFileFromFileSystem_FileDeletionLogged() |
|
{ |
|
CreateTestProject(@"d:\temp\MyProject.csproj"); |
|
AddFileToProject(@"d:\temp\test.cs"); |
|
CreateProjectSystem(project); |
|
|
|
projectSystem.DeleteFile("test.cs"); |
|
|
|
Assert.AreEqual("test.cs", projectSystem.FileNamePassedToLogDeletedFile); |
|
} |
|
|
|
[Test] |
|
public void DeleteFile_DeletesFileFromFileSystem_FolderInformationNotLogged() |
|
{ |
|
CreateTestProject(@"d:\temp\MyProject.csproj"); |
|
AddFileToProject(@"d:\temp\test.cs"); |
|
CreateProjectSystem(project); |
|
|
|
projectSystem.DeleteFile("test.cs"); |
|
|
|
Assert.IsNull(projectSystem.FileNameAndDirectoryPassedToLogDeletedFileFromDirectory); |
|
} |
|
|
|
[Test] |
|
public void DeleteFile_DeletesFileFromSubFolder_FileDeletionLogged() |
|
{ |
|
CreateTestProject(@"d:\temp\MyProject.csproj"); |
|
AddFileToProject(@"d:\temp\src\Files\test.cs"); |
|
CreateProjectSystem(project); |
|
|
|
projectSystem.DeleteFile(@"src\Files\test.cs"); |
|
|
|
var expectedFileNameAndFolder = new FileNameAndDirectory() { |
|
FileName = "test.cs", |
|
Folder = @"src\Files" |
|
}; |
|
|
|
var actualFileNameAndFolder = projectSystem.FileNameAndDirectoryPassedToLogDeletedFileFromDirectory; |
|
|
|
Assert.AreEqual(expectedFileNameAndFolder, actualFileNameAndFolder); |
|
} |
|
|
|
[Test] |
|
public void DeleteFile_DeletesFileFromSubFolder_FileDeletionWithoutFolderInformationIsNotLogged() |
|
{ |
|
CreateTestProject(@"d:\temp\MyProject.csproj"); |
|
AddFileToProject(@"d:\temp\src\Files\test.cs"); |
|
CreateProjectSystem(project); |
|
|
|
projectSystem.DeleteFile(@"src\Files\test.cs"); |
|
|
|
Assert.IsNull(projectSystem.FileNamePassedToLogDeletedFile); |
|
} |
|
|
|
[Test] |
|
public void DeleteDirectory_DeletesDirectoryFromFileSystem_CallsFileServiceRemoveDirectory() |
|
{ |
|
CreateTestProject(@"d:\temp\MyProject.csproj"); |
|
AddFileToProject(@"d:\temp\test\test.cs"); |
|
CreateProjectSystem(project); |
|
|
|
projectSystem.DeleteDirectory("test"); |
|
|
|
string path = @"d:\temp\test"; |
|
Assert.AreEqual(path, projectSystem.FakeFileService.PathPassedToRemoveDirectory); |
|
} |
|
|
|
[Test] |
|
public void DeleteDirectory_DeletesDirectoryFromFileSystem_ProjectIsSavedAfterDirectoryDeleted() |
|
{ |
|
CreateTestProject(@"d:\temp\MyProject.csproj"); |
|
project.IsSaved = false; |
|
AddFileToProject(@"d:\temp\test\test.cs"); |
|
CreateProjectSystem(project); |
|
|
|
projectSystem.DeleteDirectory("test"); |
|
|
|
Assert.AreEqual(0, project.ItemsWhenSaved.Count); |
|
} |
|
|
|
[Test] |
|
public void DeleteDirectory_DeletesDirectoryFromFileSystem_DirectoryIsLogged() |
|
{ |
|
CreateTestProject(@"d:\temp\MyProject.csproj"); |
|
project.IsSaved = false; |
|
AddFileToProject(@"d:\temp\test\test.cs"); |
|
CreateProjectSystem(project); |
|
|
|
projectSystem.DeleteDirectory("test"); |
|
|
|
Assert.AreEqual("test", projectSystem.DirectoryPassedToLogDeletedDirectory); |
|
} |
|
|
|
[Test] |
|
public void AddFrameworkReference_SystemXmlToBeAdded_ReferenceAddedToProject() |
|
{ |
|
CreateTestProject(); |
|
CreateProjectSystem(project); |
|
|
|
projectSystem.AddFrameworkReference("System.Xml"); |
|
|
|
ReferenceProjectItem referenceItem = ProjectHelper.GetReference(project, "System.Xml"); |
|
|
|
ReferenceProjectItem expectedReferenceItem = new ReferenceProjectItem(project); |
|
expectedReferenceItem.Include = "System.Xml"; |
|
|
|
ReferenceProjectItemAssert.AreEqual(expectedReferenceItem, referenceItem); |
|
} |
|
|
|
[Test] |
|
public void AddFrameworkReference_SystemXmlToBeAdded_ProjectIsSaved() |
|
{ |
|
CreateTestProject(); |
|
CreateProjectSystem(project); |
|
|
|
projectSystem.AddFrameworkReference("System.Xml"); |
|
|
|
bool saved = project.IsSaved; |
|
|
|
Assert.IsTrue(saved); |
|
} |
|
|
|
[Test] |
|
public void AddFrameworkReference_SystemXmlToBeAdded_AddedReferenceIsLogged() |
|
{ |
|
CreateTestProject(); |
|
CreateProjectSystem(project); |
|
project.Name = "MyTestProject"; |
|
|
|
projectSystem.AddFrameworkReference("System.Xml"); |
|
|
|
var expectedReferenceAndProjectName = new ReferenceAndProjectName() { |
|
Reference = "System.Xml", |
|
Project = "MyTestProject" |
|
}; |
|
|
|
Assert.AreEqual(expectedReferenceAndProjectName, projectSystem.ReferenceAndProjectNamePassedToLogAddedReferenceToProject); |
|
} |
|
} |
|
}
|
|
|